diff --git a/.gitmodules b/.gitmodules index 2ba2658..359f3e3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,3 @@ -[submodule "stem"] - path = stem-client - url = https://git.torproject.org/stem.git -[submodule "js-client/sjcl"] - path = js-client/sjcl - url = https://github.com/bitwiseshiftleft/sjcl -[submodule "js-client/tweetnacl-js"] - path = js-client/tweetnacl-js - url = https://github.com/dchest/tweetnacl-js -[submodule "js-client/tweetnacl-util-js"] - path = js-client/tweetnacl-util-js - url = https://github.com/dchest/tweetnacl-util-js +[submodule "js-client/vendor/sjcl"] + path = js-client/vendor/sjcl + url = https://github.com/bitwiseshiftleft/sjcl.git diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 0000000..d33fdbc --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,10 @@ +version: 2 + +sphinx: + configuration: docs/source/conf.py + +formats: all + +python: + version: 3.7 + diff --git a/data/consensus_micro_parsed.txt b/data/consensus_micro_parsed.txt new file mode 100644 index 0000000..0a4d445 --- /dev/null +++ b/data/consensus_micro_parsed.txt @@ -0,0 +1,830 @@ +{ + "flavor": "microdesc", + "headers": { + "network-status-version": { + "version": 3, + "flavor": "microdesc" + }, + "vote-status": "consensus", + "consensus-method": 28, + "valid-after": { + "date": "2020-04-23", + "time": "13:03:50", + "stamp": 1587647030.0 + }, + "fresh-until": { + "date": "2020-04-23", + "time": "13:04:00", + "stamp": 1587647040.0 + }, + "valid-until": { + "date": "2020-04-23", + "time": "13:04:10", + "stamp": 1587647050.0 + }, + "voting-delay": { + "vote": 2, + "dist": 2 + }, + "client-versions": [ + "" + ], + "server-versions": [ + "" + ], + "known-flags": [ + "Authority", + "Exit", + "Fast", + "Guard", + "HSDir", + "NoEdConsensus", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "recommended-client-protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1 + ], + "HSDir": [ + 1 + ], + "HSIntro": [ + 3 + ], + "HSRend": [ + 1 + ], + "Link": [ + 4 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 2 + ] + }, + "recommended-relay-protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1 + ], + "HSDir": [ + 1 + ], + "HSIntro": [ + 3 + ], + "HSRend": [ + 1 + ], + "Link": [ + 4 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 2 + ] + }, + "required-client-protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1 + ], + "HSDir": [ + 1 + ], + "HSIntro": [ + 3 + ], + "HSRend": [ + 1 + ], + "Link": [ + 4 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 2 + ] + }, + "required-relay-protocols": { + "Cons": [ + 1 + ], + "Desc": [ + 1 + ], + "DirCache": [ + 1 + ], + "HSDir": [ + 1 + ], + "HSIntro": [ + 3 + ], + "HSRend": [ + 1 + ], + "Link": [ + 3, + 4 + ], + "Microdesc": [ + 1 + ], + "Relay": [ + 1, + 2 + ] + }, + "shared-rand-previous-value": { + "NumReveals": 3, + "Value": "/2QHWbKWQJqYTGxPECy7+ksGKqcM4Bx4qKx3YKaZXUI=" + }, + "shared-rand-current-value": { + "NumReveals": 3, + "Value": "LSYbvpu2yBi8Ie+qZhu/nSZ82ORbVGIJUeCK0axx1gY=" + } + }, + "dir-sources": [ + { + "nickname": "test002a", + "identity": "12b3f62ed02c9b54816cebb06c5e259189220513", + "hostname": "127.0.0.1", + "address": "127.0.0.1", + "dirport": 7002, + "orport": 5002, + "contact": "auth2@test.test", + "vote-digest": "b6b5b2b4609d7969f6c4e8c39ac58a006130bbee" + }, + { + "nickname": "test001a", + "identity": "7e0219bb5a355b76a8e8adb17c772827bdadcd73", + "hostname": "127.0.0.1", + "address": "127.0.0.1", + "dirport": 7001, + "orport": 5001, + "contact": "auth1@test.test", + "vote-digest": "c2d0973074f7fca6b73d29123a0304b94a38b7d7" + }, + { + "nickname": "test000a", + "identity": "e459cc388963fe0c47b0c5c918b1166d1809a2d9", + "hostname": "127.0.0.1", + "address": "127.0.0.1", + "dirport": 7000, + "orport": 5000, + "contact": "auth0@test.test", + "vote-digest": "f8b88af1f50b15da61c77266fe3e81809d53f830" + } + ], + "routers": [ + { + "nickname": "test006r", + "identity": "DZZkh3UlCcgcxHqUEb2HozksADc", + "date": "2020-04-23", + "time": "13:03:18", + "stamp": 1587646998.0, + "address": "127.0.0.1", + "dirport": 7006, + "orport": 5006, + "micro-digest": "vsIfsfWipqVVIP/sPw71/GVuqFBACo8isd0QE5IHWRA", + "flags": [ + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 189, + "Unmeasured": 1 + } + }, + { + "nickname": "test004r", + "identity": "PE+93pE5LeQheWR29bZjhX3zqnQ", + "date": "2020-04-23", + "time": "13:03:18", + "stamp": 1587646998.0, + "address": "127.0.0.1", + "dirport": 7004, + "orport": 5004, + "micro-digest": "r5w5OtvIDxowqug0biGBmqR6Fm2D0lukwOdAS+3f0nI", + "flags": [ + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 174, + "Unmeasured": 1 + } + }, + { + "nickname": "test000a", + "identity": "S7wZlq4DvwY/2ZA/WrIzydmmRoY", + "date": "2020-04-23", + "time": "13:03:19", + "stamp": 1587646999.0, + "address": "127.0.0.1", + "dirport": 7000, + "orport": 5000, + "micro-digest": "sOncg9KObIVQCj2qbmTa166mzTNuYLq/78NnH4j9Rpg", + "flags": [ + "Authority", + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 224, + "Unmeasured": 1 + } + }, + { + "nickname": "test003r", + "identity": "fyG+MaPfsktC+PscyWbZlnKXHJ4", + "date": "2020-04-23", + "time": "13:03:17", + "stamp": 1587646997.0, + "address": "127.0.0.1", + "dirport": 7003, + "orport": 5003, + "micro-digest": "apfWPB1RoS+VCxl84H7LPEvhTzaZPJo4pDT5ykzNcVw", + "flags": [ + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 177, + "Unmeasured": 1 + } + }, + { + "nickname": "test002a", + "identity": "gwTBYQWI3XQvsEkcal8NUySwsVA", + "date": "2020-04-23", + "time": "13:03:19", + "stamp": 1587646999.0, + "address": "127.0.0.1", + "dirport": 7002, + "orport": 5002, + "micro-digest": "AxdJywx2p8PyFnLrIz/sSuEzqysJaSgQIV8Ar+MtZAk", + "flags": [ + "Authority", + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 237, + "Unmeasured": 1 + } + }, + { + "nickname": "test007r", + "identity": "mXQh1rmHcqj+uqptfh158WA5bfo", + "date": "2020-04-23", + "time": "13:03:18", + "stamp": 1587646998.0, + "address": "127.0.0.1", + "dirport": 7007, + "orport": 5007, + "micro-digest": "hXFJseLWgaqAea7Hpd5cBfEbTTISuFv92sTBLOJY6Mg", + "flags": [ + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 189, + "Unmeasured": 1 + } + }, + { + "nickname": "test005r", + "identity": "nu8OBtyhPu7L2+p0cdzQSZc5hbA", + "date": "2020-04-23", + "time": "13:03:18", + "stamp": 1587646998.0, + "address": "127.0.0.1", + "dirport": 7005, + "orport": 5005, + "micro-digest": "/oBdxYE6dEsNEuhT+eCKq5LbsJhz/5aE/CQlHeYQqy0", + "flags": [ + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 189, + "Unmeasured": 1 + } + }, + { + "nickname": "test001a", + "identity": "/Vd+YTRcdGVeZ7R61X23NSUf634", + "date": "2020-04-23", + "time": "13:03:19", + "stamp": 1587646999.0, + "address": "127.0.0.1", + "dirport": 7001, + "orport": 5001, + "micro-digest": "CgFLrWqo2d17GIiSmHkos8ptM6hAXZsPpahMNsgRtuc", + "flags": [ + "Authority", + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 159, + "Unmeasured": 1 + } + } + ], + "footer": { + "bandwidth-weights": { + "Wbd": 3333, + "Wbe": 0, + "Wbg": 0, + "Wbm": 10000, + "Wdb": 10000, + "Web": 10000, + "Wed": 3333, + "Wee": 10000, + "Weg": 3333, + "Wem": 10000, + "Wgb": 10000, + "Wgd": 3333, + "Wgg": 10000, + "Wgm": 10000, + "Wmb": 10000, + "Wmd": 3333, + "Wme": 0, + "Wmg": 0, + "Wmm": 10000 + }, + "directory-signatures": [ + { + "Algorithm": "sha256", + "identity": "12B3F62ED02C9B54816CEBB06C5E259189220513", + "signing-key-digest": "448B8141FECA90994DCDBE11A21FDAF2AF53D082", + "signature": "hC6pKTEp6qvpt2rym232DKtlwE+Um2m4X0aht60tXGpKfF6bjuLL5wacZHQP0d9ektNIJ0dQxSxzpeSvfHQS6wr3ptWuqz7IRIpycjjmaHW8J8r4An2eSJIl9JoZE1pjOSVG/vNXtJrLCcZTtnU//+dQh8sRW2JYGgPGxkc5HKvHBLbMiZfj5kAraTMojIcq84ZxuYuenmOPWtbHfzuGYc8N9ubGvXZDIwHC54/9eGtgwZJqEg2zzzBNIaQgHpwebNW4IkMftf0S4RjZ1hVcO328wd3shlvLG/70prKyW0mTVIZU+8FbFfsIo0HR9bpD2CaWYNvNoToCFnwGiGSecw==" + }, + { + "Algorithm": "sha256", + "identity": "7E0219BB5A355B76A8E8ADB17C772827BDADCD73", + "signing-key-digest": "2CA39E7AFCFC6422A80BF43DCD43A73872F86B87", + "signature": "aJ8Fq3xkSzJbSTOMQ8G3Y1YaC8fnyQFlq1woGbmeRLUArbBWkQHdS7rjjYBXSO4BSSB4xnLYKvqMvqvjGQ3g0zNXPegxQRSk99tpWgDkfdKcQyZw/2+XvLuDmsOfp7SCSEri41OV4oij+8pSqBkw8fEo4aXHQ8hdIfd5XnjEzM2t211JEolUO8tQjZ3dwNR8eHwL+6GOJYeP7uC+wpT14eUHTz1ztg///9yJl8pE30mCMwElKz5esyf1VUibVjEzQB2/y9COWHEm1Hx3anTGtwWmMI3+Dd6fbRFqGlmDZ3uIggIWTA2/yDHLvKzEEnSIHKuz9WvPG/5dg472sR32fA==" + }, + { + "Algorithm": "sha256", + "identity": "E459CC388963FE0C47B0C5C918B1166D1809A2D9", + "signing-key-digest": "FE1C48EDCC9F526DC7C40211D409F86BFFF35F40", + "signature": "v9/hw0lOQiEn7nzPIQoLTJqSn9t1NyFvpDDsB0I4zBwR021zIR3jQhdR5A1T6IJOLudW1l++I8oGPAxTB9GWdtndp5WN7f8TIGEtVypckI4GfD0obtx13q/UdZGTAFbPpX5wD9KUq+C0+DbfUJiG4iR/46SAw9dgqK2OBecVyjmE/4aI+io+6Sxp8TAbeQY2wlDJpTsosZwsYnugB1wRdgtjHUT+K+hMaqua6dTc9F93nIbk6Um08NuxkmisxrJZxjYy/lXO9XpNx9nQu4vfwP3R+XgpTcEu9VF6iov04Q4PRt/rpjln7yjRjU0JSMomCyrWXSoF0SPReEdKeF/gOQ==" + } + ] + } +} diff --git a/data/consensus_micro_raw.txt b/data/consensus_micro_raw.txt new file mode 100644 index 0000000..a379427 --- /dev/null +++ b/data/consensus_micro_raw.txt @@ -0,0 +1,102 @@ +network-status-version 3 microdesc +vote-status consensus +consensus-method 28 +valid-after 2020-04-23 13:03:50 +fresh-until 2020-04-23 13:04:00 +valid-until 2020-04-23 13:04:10 +voting-delay 2 2 +client-versions +server-versions +known-flags Authority Exit Fast Guard HSDir NoEdConsensus Running Stable V2Dir Valid +recommended-client-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 +recommended-relay-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 +required-client-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 +required-relay-protocols Cons=1 Desc=1 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=3-4 Microdesc=1 Relay=1-2 +shared-rand-previous-value 3 /2QHWbKWQJqYTGxPECy7+ksGKqcM4Bx4qKx3YKaZXUI= +shared-rand-current-value 3 LSYbvpu2yBi8Ie+qZhu/nSZ82ORbVGIJUeCK0axx1gY= +dir-source test002a 12B3F62ED02C9B54816CEBB06C5E259189220513 127.0.0.1 127.0.0.1 7002 5002 +contact auth2@test.test +vote-digest B6B5B2B4609D7969F6C4E8C39AC58A006130BBEE +dir-source test001a 7E0219BB5A355B76A8E8ADB17C772827BDADCD73 127.0.0.1 127.0.0.1 7001 5001 +contact auth1@test.test +vote-digest C2D0973074F7FCA6B73D29123A0304B94A38B7D7 +dir-source test000a E459CC388963FE0C47B0C5C918B1166D1809A2D9 127.0.0.1 127.0.0.1 7000 5000 +contact auth0@test.test +vote-digest F8B88AF1F50B15DA61C77266FE3E81809D53F830 +r test006r DZZkh3UlCcgcxHqUEb2HozksADc 2020-04-23 13:03:18 127.0.0.1 5006 7006 +m vsIfsfWipqVVIP/sPw71/GVuqFBACo8isd0QE5IHWRA +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=189 Unmeasured=1 +r test004r PE+93pE5LeQheWR29bZjhX3zqnQ 2020-04-23 13:03:18 127.0.0.1 5004 7004 +m r5w5OtvIDxowqug0biGBmqR6Fm2D0lukwOdAS+3f0nI +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=174 Unmeasured=1 +r test000a S7wZlq4DvwY/2ZA/WrIzydmmRoY 2020-04-23 13:03:19 127.0.0.1 5000 7000 +m sOncg9KObIVQCj2qbmTa166mzTNuYLq/78NnH4j9Rpg +s Authority Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=224 Unmeasured=1 +r test003r fyG+MaPfsktC+PscyWbZlnKXHJ4 2020-04-23 13:03:17 127.0.0.1 5003 7003 +m apfWPB1RoS+VCxl84H7LPEvhTzaZPJo4pDT5ykzNcVw +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=177 Unmeasured=1 +r test002a gwTBYQWI3XQvsEkcal8NUySwsVA 2020-04-23 13:03:19 127.0.0.1 5002 7002 +m AxdJywx2p8PyFnLrIz/sSuEzqysJaSgQIV8Ar+MtZAk +s Authority Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=237 Unmeasured=1 +r test007r mXQh1rmHcqj+uqptfh158WA5bfo 2020-04-23 13:03:18 127.0.0.1 5007 7007 +m hXFJseLWgaqAea7Hpd5cBfEbTTISuFv92sTBLOJY6Mg +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=189 Unmeasured=1 +r test005r nu8OBtyhPu7L2+p0cdzQSZc5hbA 2020-04-23 13:03:18 127.0.0.1 5005 7005 +m /oBdxYE6dEsNEuhT+eCKq5LbsJhz/5aE/CQlHeYQqy0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=189 Unmeasured=1 +r test001a /Vd+YTRcdGVeZ7R61X23NSUf634 2020-04-23 13:03:19 127.0.0.1 5001 7001 +m CgFLrWqo2d17GIiSmHkos8ptM6hAXZsPpahMNsgRtuc +s Authority Exit Fast Guard HSDir Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=159 Unmeasured=1 +directory-footer +bandwidth-weights Wbd=3333 Wbe=0 Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=3333 Wee=10000 Weg=3333 Wem=10000 Wgb=10000 Wgd=3333 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=3333 Wme=0 Wmg=0 Wmm=10000 +directory-signature sha256 12B3F62ED02C9B54816CEBB06C5E259189220513 448B8141FECA90994DCDBE11A21FDAF2AF53D082 +-----BEGIN SIGNATURE----- +hC6pKTEp6qvpt2rym232DKtlwE+Um2m4X0aht60tXGpKfF6bjuLL5wacZHQP0d9e +ktNIJ0dQxSxzpeSvfHQS6wr3ptWuqz7IRIpycjjmaHW8J8r4An2eSJIl9JoZE1pj +OSVG/vNXtJrLCcZTtnU//+dQh8sRW2JYGgPGxkc5HKvHBLbMiZfj5kAraTMojIcq +84ZxuYuenmOPWtbHfzuGYc8N9ubGvXZDIwHC54/9eGtgwZJqEg2zzzBNIaQgHpwe +bNW4IkMftf0S4RjZ1hVcO328wd3shlvLG/70prKyW0mTVIZU+8FbFfsIo0HR9bpD +2CaWYNvNoToCFnwGiGSecw== +-----END SIGNATURE----- +directory-signature sha256 7E0219BB5A355B76A8E8ADB17C772827BDADCD73 2CA39E7AFCFC6422A80BF43DCD43A73872F86B87 +-----BEGIN SIGNATURE----- +aJ8Fq3xkSzJbSTOMQ8G3Y1YaC8fnyQFlq1woGbmeRLUArbBWkQHdS7rjjYBXSO4B +SSB4xnLYKvqMvqvjGQ3g0zNXPegxQRSk99tpWgDkfdKcQyZw/2+XvLuDmsOfp7SC +SEri41OV4oij+8pSqBkw8fEo4aXHQ8hdIfd5XnjEzM2t211JEolUO8tQjZ3dwNR8 +eHwL+6GOJYeP7uC+wpT14eUHTz1ztg///9yJl8pE30mCMwElKz5esyf1VUibVjEz +QB2/y9COWHEm1Hx3anTGtwWmMI3+Dd6fbRFqGlmDZ3uIggIWTA2/yDHLvKzEEnSI +HKuz9WvPG/5dg472sR32fA== +-----END SIGNATURE----- +directory-signature sha256 E459CC388963FE0C47B0C5C918B1166D1809A2D9 FE1C48EDCC9F526DC7C40211D409F86BFFF35F40 +-----BEGIN SIGNATURE----- +v9/hw0lOQiEn7nzPIQoLTJqSn9t1NyFvpDDsB0I4zBwR021zIR3jQhdR5A1T6IJO +LudW1l++I8oGPAxTB9GWdtndp5WN7f8TIGEtVypckI4GfD0obtx13q/UdZGTAFbP +pX5wD9KUq+C0+DbfUJiG4iR/46SAw9dgqK2OBecVyjmE/4aI+io+6Sxp8TAbeQY2 +wlDJpTsosZwsYnugB1wRdgtjHUT+K+hMaqua6dTc9F93nIbk6Um08NuxkmisxrJZ +xjYy/lXO9XpNx9nQu4vfwP3R+XgpTcEu9VF6iov04Q4PRt/rpjln7yjRjU0JSMom +CyrWXSoF0SPReEdKeF/gOQ== +-----END SIGNATURE----- diff --git a/data/consensus_parsed.txt b/data/consensus_parsed.txt new file mode 100644 index 0000000..0f645da --- /dev/null +++ b/data/consensus_parsed.txt @@ -0,0 +1,902 @@ +{ + "flavor": "unflavored", + "headers": { + "network-status-version": { + "version": 3, + "flavor": "unflavored" + }, + "vote-status": "consensus", + "consensus-method": 28, + "valid-after": { + "date": "2020-04-20", + "time": "07:36:50", + "stamp": 1587368210.0 + }, + "fresh-until": { + "date": "2020-04-20", + "time": "07:37:00", + "stamp": 1587368220.0 + }, + "valid-until": { + "date": "2020-04-20", + "time": "07:37:10", + "stamp": 1587368230.0 + }, + "voting-delay": { + "vote": 2, + "dist": 2 + }, + "client-versions": [ + "" + ], + "server-versions": [ + "" + ], + "known-flags": [ + "Authority", + "Exit", + "Fast", + "Guard", + "HSDir", + "NoEdConsensus", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "recommended-client-protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1 + ], + "HSDir": [ + 1 + ], + "HSIntro": [ + 3 + ], + "HSRend": [ + 1 + ], + "Link": [ + 4 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 2 + ] + }, + "recommended-relay-protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1 + ], + "HSDir": [ + 1 + ], + "HSIntro": [ + 3 + ], + "HSRend": [ + 1 + ], + "Link": [ + 4 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 2 + ] + }, + "required-client-protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1 + ], + "HSDir": [ + 1 + ], + "HSIntro": [ + 3 + ], + "HSRend": [ + 1 + ], + "Link": [ + 4 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 2 + ] + }, + "required-relay-protocols": { + "Cons": [ + 1 + ], + "Desc": [ + 1 + ], + "DirCache": [ + 1 + ], + "HSDir": [ + 1 + ], + "HSIntro": [ + 3 + ], + "HSRend": [ + 1 + ], + "Link": [ + 3, + 4 + ], + "Microdesc": [ + 1 + ], + "Relay": [ + 1, + 2 + ] + }, + "shared-rand-previous-value": { + "NumReveals": 0, + "Value": "zxJao+gBmFMSezvz/VXkEWEQJD5b/z+7AXNCGoLFVW0=" + }, + "shared-rand-current-value": { + "NumReveals": 3, + "Value": "JmISyTQqJVDEYu65+XigBGZEoYdqlimCxnCBPquIcyc=" + } + }, + "dir-sources": [ + { + "nickname": "test002a", + "identity": "12b3f62ed02c9b54816cebb06c5e259189220513", + "hostname": "127.0.0.1", + "address": "127.0.0.1", + "dirport": 7002, + "orport": 5002, + "contact": "auth2@test.test", + "vote-digest": "c8c30c2f2462c7b5a232c4bd8e6e39df96ce6866" + }, + { + "nickname": "test001a", + "identity": "7e0219bb5a355b76a8e8adb17c772827bdadcd73", + "hostname": "127.0.0.1", + "address": "127.0.0.1", + "dirport": 7001, + "orport": 5001, + "contact": "auth1@test.test", + "vote-digest": "c97ec7a96a76ed366e5a30e49b5a8dabf4832f65" + }, + { + "nickname": "test000a", + "identity": "e459cc388963fe0c47b0c5c918b1166d1809a2d9", + "hostname": "127.0.0.1", + "address": "127.0.0.1", + "dirport": 7000, + "orport": 5000, + "contact": "auth0@test.test", + "vote-digest": "4eed924194cb5cc07fc7c450dfd98e30501161da" + } + ], + "routers": [ + { + "nickname": "test006r", + "identity": "DZZkh3UlCcgcxHqUEb2HozksADc", + "digest": "GW9HZ7kDARgbH8u31orhQDSS7+Y", + "date": "2020-04-20", + "time": "07:19:59", + "stamp": 1587367199.0, + "address": "127.0.0.1", + "dirport": 7006, + "orport": 5006, + "flags": [ + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 189, + "Unmeasured": 1 + }, + "exit-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + } + }, + { + "nickname": "test004r", + "identity": "PE+93pE5LeQheWR29bZjhX3zqnQ", + "digest": "EtQKag0fzSSrarsZB0ZBbxGF7HA", + "date": "2020-04-20", + "time": "07:19:59", + "stamp": 1587367199.0, + "address": "127.0.0.1", + "dirport": 7004, + "orport": 5004, + "flags": [ + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 174, + "Unmeasured": 1 + }, + "exit-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + } + }, + { + "nickname": "test000a", + "identity": "S7wZlq4DvwY/2ZA/WrIzydmmRoY", + "digest": "9UyBqUF6SN3HC5/i8QiTOG9nx0s", + "date": "2020-04-20", + "time": "07:31:01", + "stamp": 1587367861.0, + "address": "127.0.0.1", + "dirport": 7000, + "orport": 5000, + "flags": [ + "Authority", + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 158, + "Unmeasured": 1 + }, + "exit-policy": { + "type": "reject", + "PortList": [ + [ + 1, + 65535 + ] + ] + } + }, + { + "nickname": "test003r", + "identity": "fyG+MaPfsktC+PscyWbZlnKXHJ4", + "digest": "xVYLJ490kxGxfbNn2Hvl/GpZJEM", + "date": "2020-04-20", + "time": "07:20:14", + "stamp": 1587367214.0, + "address": "127.0.0.1", + "dirport": 7003, + "orport": 5003, + "flags": [ + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 177, + "Unmeasured": 1 + }, + "exit-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + } + }, + { + "nickname": "test002a", + "identity": "gwTBYQWI3XQvsEkcal8NUySwsVA", + "digest": "whpdrDjr77zJ6vpAp5HS+oNqeRQ", + "date": "2020-04-20", + "time": "07:31:01", + "stamp": 1587367861.0, + "address": "127.0.0.1", + "dirport": 7002, + "orport": 5002, + "flags": [ + "Authority", + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 196, + "Unmeasured": 1 + }, + "exit-policy": { + "type": "reject", + "PortList": [ + [ + 1, + 65535 + ] + ] + } + }, + { + "nickname": "test007r", + "identity": "mXQh1rmHcqj+uqptfh158WA5bfo", + "digest": "VktXjhSji1mCsT/W/gBU9NvbYNk", + "date": "2020-04-20", + "time": "07:19:59", + "stamp": 1587367199.0, + "address": "127.0.0.1", + "dirport": 7007, + "orport": 5007, + "flags": [ + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 189, + "Unmeasured": 1 + }, + "exit-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + } + }, + { + "nickname": "test005r", + "identity": "nu8OBtyhPu7L2+p0cdzQSZc5hbA", + "digest": "WQh2419G+nKtY0p6V8hmN3rS6fg", + "date": "2020-04-20", + "time": "07:20:22", + "stamp": 1587367222.0, + "address": "127.0.0.1", + "dirport": 7005, + "orport": 5005, + "flags": [ + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "Stable", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 189, + "Unmeasured": 1 + }, + "exit-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + } + }, + { + "nickname": "test001a", + "identity": "/Vd+YTRcdGVeZ7R61X23NSUf634", + "digest": "feX6QJWeiqOrPQweuMffQWuY3K8", + "date": "2020-04-20", + "time": "07:31:02", + "stamp": 1587367862.0, + "address": "127.0.0.1", + "dirport": 7001, + "orport": 5001, + "flags": [ + "Authority", + "Exit", + "Fast", + "Guard", + "HSDir", + "Running", + "V2Dir", + "Valid" + ], + "version": "Tor 0.3.5.10", + "protocols": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "w": { + "Bandwidth": 188, + "Unmeasured": 1 + }, + "exit-policy": { + "type": "reject", + "PortList": [ + [ + 1, + 65535 + ] + ] + } + } + ], + "footer": { + "bandwidth-weights": { + "Wbd": 3333, + "Wbe": 0, + "Wbg": 0, + "Wbm": 10000, + "Wdb": 10000, + "Web": 10000, + "Wed": 3333, + "Wee": 10000, + "Weg": 3333, + "Wem": 10000, + "Wgb": 10000, + "Wgd": 3333, + "Wgg": 10000, + "Wgm": 10000, + "Wmb": 10000, + "Wmd": 3333, + "Wme": 0, + "Wmg": 0, + "Wmm": 10000 + }, + "directory-signatures": [ + { + "Algorithm": "sha1", + "identity": "12B3F62ED02C9B54816CEBB06C5E259189220513", + "signing-key-digest": "448B8141FECA90994DCDBE11A21FDAF2AF53D082", + "signature": "aO5pbIg66t2w/jWgbZmhWrxuHIhv8Rae++ybBVWRtTTHZYdUUMgtfqQA9Cro/9qgeNHtZNBePapP6EWhQBKYzZxHEaRjhHJGlTYeJq1q2IxI3x6vSvabupLOnl3e++EPn0LR9IVUII1LmhsKp84ZpsbOuF8XoT1PfDsfcNhW898DmTGNuJ+R9P+rNOAvkKctAOjAYeNjiL4UH64iqOyA7MshB/oS1gmmmYhg5fBHhE8J24NNAcN32VEDoChwYYFHSj0uJiOv4vD09hHQxTimadEwNCl38hMbd/yLhBmlBi6jAKIAP71EJuaO3UkuK7DkQFj91kNmdyGYF9uIsxJ3iQ==" + }, + { + "Algorithm": "sha1", + "identity": "7E0219BB5A355B76A8E8ADB17C772827BDADCD73", + "signing-key-digest": "2CA39E7AFCFC6422A80BF43DCD43A73872F86B87", + "signature": "RWntGwBx/PUCkQChhrA41rPxfio6nel3nB4+7+3uQWOSm7HT60m5DN22ryQ14Qqsz0l/RK4GCwc1pXUBZvPnJ4wzW5ORcjgNaMi6KbRS6q+z0KT7yY+zF3cacY2GlBNVTWIV3FfggQth1AFTQRkHdOIW4ifQwQpernjozE08I/O3rlP19xtxpN06DqfpteSjFQhD+5xiSIclgkURCInVHCpbBl/KdGs/4LZ2JVciABDeYr3xpAcPYJ6u9CdFf5iAWFcsMO/oZ+9zmwj0qfqkEJhdHU4RX1DnECWWnBJU7wbAkGcagATEE/4aDRLdZSOktYFEJmyjbXuSI3r0B7uGwg==" + }, + { + "Algorithm": "sha1", + "identity": "E459CC388963FE0C47B0C5C918B1166D1809A2D9", + "signing-key-digest": "FE1C48EDCC9F526DC7C40211D409F86BFFF35F40", + "signature": "xUNpvtVSHnrwRMCYLUvjkN3kp0kmX3oxzEAcBXbcpYzdn757U5QefVBkq9ZC+6RsWHYE4tHsC5x2KW+GN1wnBkYyrTxSG1fG46sKpEYYSnEuCVa2nJpwMEl/EzsRT+20eZXIjj+FLKIrMrKV23k/LgbkN2fnvUpwGkWV7/RJ6a9MHGjWA/nO3hmNlF0mPLx+t3Z0Cao3PdiNOW/xVnQ6PKW1J3U4pWEe6DoQNzhSI+wYIF/kx2qv7K7fbPZ1RqUC5shNX2IZDkFcqVq1HoHpfzyLFaMY+JjWvUneQWucvMJOuLENCMLr79/elT23h2sHr3vPTIatzhTwSKXWLe92Yg==" + } + ] + } +} \ No newline at end of file diff --git a/data/consensus_raw.txt b/data/consensus_raw.txt new file mode 100644 index 0000000..70023d5 --- /dev/null +++ b/data/consensus_raw.txt @@ -0,0 +1,102 @@ +network-status-version 3 +vote-status consensus +consensus-method 28 +valid-after 2020-04-20 07:36:50 +fresh-until 2020-04-20 07:37:00 +valid-until 2020-04-20 07:37:10 +voting-delay 2 2 +client-versions +server-versions +known-flags Authority Exit Fast Guard HSDir NoEdConsensus Running Stable V2Dir Valid +recommended-client-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 +recommended-relay-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 +required-client-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 +required-relay-protocols Cons=1 Desc=1 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=3-4 Microdesc=1 Relay=1-2 +shared-rand-previous-value 0 zxJao+gBmFMSezvz/VXkEWEQJD5b/z+7AXNCGoLFVW0= +shared-rand-current-value 3 JmISyTQqJVDEYu65+XigBGZEoYdqlimCxnCBPquIcyc= +dir-source test002a 12B3F62ED02C9B54816CEBB06C5E259189220513 127.0.0.1 127.0.0.1 7002 5002 +contact auth2@test.test +vote-digest C8C30C2F2462C7B5A232C4BD8E6E39DF96CE6866 +dir-source test001a 7E0219BB5A355B76A8E8ADB17C772827BDADCD73 127.0.0.1 127.0.0.1 7001 5001 +contact auth1@test.test +vote-digest C97EC7A96A76ED366E5A30E49B5A8DABF4832F65 +dir-source test000a E459CC388963FE0C47B0C5C918B1166D1809A2D9 127.0.0.1 127.0.0.1 7000 5000 +contact auth0@test.test +vote-digest 4EED924194CB5CC07FC7C450DFD98E30501161DA +r test006r DZZkh3UlCcgcxHqUEb2HozksADc GW9HZ7kDARgbH8u31orhQDSS7+Y 2020-04-20 07:19:59 127.0.0.1 5006 7006 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=189 Unmeasured=1 +p accept 1-65535 +r test004r PE+93pE5LeQheWR29bZjhX3zqnQ EtQKag0fzSSrarsZB0ZBbxGF7HA 2020-04-20 07:19:59 127.0.0.1 5004 7004 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=174 Unmeasured=1 +p accept 1-65535 +r test000a S7wZlq4DvwY/2ZA/WrIzydmmRoY 9UyBqUF6SN3HC5/i8QiTOG9nx0s 2020-04-20 07:31:01 127.0.0.1 5000 7000 +s Authority Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=158 Unmeasured=1 +p reject 1-65535 +r test003r fyG+MaPfsktC+PscyWbZlnKXHJ4 xVYLJ490kxGxfbNn2Hvl/GpZJEM 2020-04-20 07:20:14 127.0.0.1 5003 7003 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=177 Unmeasured=1 +p accept 1-65535 +r test002a gwTBYQWI3XQvsEkcal8NUySwsVA whpdrDjr77zJ6vpAp5HS+oNqeRQ 2020-04-20 07:31:01 127.0.0.1 5002 7002 +s Authority Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=196 Unmeasured=1 +p reject 1-65535 +r test007r mXQh1rmHcqj+uqptfh158WA5bfo VktXjhSji1mCsT/W/gBU9NvbYNk 2020-04-20 07:19:59 127.0.0.1 5007 7007 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=189 Unmeasured=1 +p accept 1-65535 +r test005r nu8OBtyhPu7L2+p0cdzQSZc5hbA WQh2419G+nKtY0p6V8hmN3rS6fg 2020-04-20 07:20:22 127.0.0.1 5005 7005 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=189 Unmeasured=1 +p accept 1-65535 +r test001a /Vd+YTRcdGVeZ7R61X23NSUf634 feX6QJWeiqOrPQweuMffQWuY3K8 2020-04-20 07:31:02 127.0.0.1 5001 7001 +s Authority Exit Fast Guard HSDir Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=188 Unmeasured=1 +p reject 1-65535 +directory-footer +bandwidth-weights Wbd=3333 Wbe=0 Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=3333 Wee=10000 Weg=3333 Wem=10000 Wgb=10000 Wgd=3333 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=3333 Wme=0 Wmg=0 Wmm=10000 +directory-signature 12B3F62ED02C9B54816CEBB06C5E259189220513 448B8141FECA90994DCDBE11A21FDAF2AF53D082 +-----BEGIN SIGNATURE----- +aO5pbIg66t2w/jWgbZmhWrxuHIhv8Rae++ybBVWRtTTHZYdUUMgtfqQA9Cro/9qg +eNHtZNBePapP6EWhQBKYzZxHEaRjhHJGlTYeJq1q2IxI3x6vSvabupLOnl3e++EP +n0LR9IVUII1LmhsKp84ZpsbOuF8XoT1PfDsfcNhW898DmTGNuJ+R9P+rNOAvkKct +AOjAYeNjiL4UH64iqOyA7MshB/oS1gmmmYhg5fBHhE8J24NNAcN32VEDoChwYYFH +Sj0uJiOv4vD09hHQxTimadEwNCl38hMbd/yLhBmlBi6jAKIAP71EJuaO3UkuK7Dk +QFj91kNmdyGYF9uIsxJ3iQ== +-----END SIGNATURE----- +directory-signature 7E0219BB5A355B76A8E8ADB17C772827BDADCD73 2CA39E7AFCFC6422A80BF43DCD43A73872F86B87 +-----BEGIN SIGNATURE----- +RWntGwBx/PUCkQChhrA41rPxfio6nel3nB4+7+3uQWOSm7HT60m5DN22ryQ14Qqs +z0l/RK4GCwc1pXUBZvPnJ4wzW5ORcjgNaMi6KbRS6q+z0KT7yY+zF3cacY2GlBNV +TWIV3FfggQth1AFTQRkHdOIW4ifQwQpernjozE08I/O3rlP19xtxpN06DqfpteSj +FQhD+5xiSIclgkURCInVHCpbBl/KdGs/4LZ2JVciABDeYr3xpAcPYJ6u9CdFf5iA +WFcsMO/oZ+9zmwj0qfqkEJhdHU4RX1DnECWWnBJU7wbAkGcagATEE/4aDRLdZSOk +tYFEJmyjbXuSI3r0B7uGwg== +-----END SIGNATURE----- +directory-signature E459CC388963FE0C47B0C5C918B1166D1809A2D9 FE1C48EDCC9F526DC7C40211D409F86BFFF35F40 +-----BEGIN SIGNATURE----- +xUNpvtVSHnrwRMCYLUvjkN3kp0kmX3oxzEAcBXbcpYzdn757U5QefVBkq9ZC+6Rs +WHYE4tHsC5x2KW+GN1wnBkYyrTxSG1fG46sKpEYYSnEuCVa2nJpwMEl/EzsRT+20 +eZXIjj+FLKIrMrKV23k/LgbkN2fnvUpwGkWV7/RJ6a9MHGjWA/nO3hmNlF0mPLx+ +t3Z0Cao3PdiNOW/xVnQ6PKW1J3U4pWEe6DoQNzhSI+wYIF/kx2qv7K7fbPZ1RqUC +5shNX2IZDkFcqVq1HoHpfzyLFaMY+JjWvUneQWucvMJOuLENCMLr79/elT23h2sH +r3vPTIatzhTwSKXWLe92Yg== +-----END SIGNATURE----- diff --git a/data/consensus_tor_raw.txt b/data/consensus_tor_raw.txt new file mode 100644 index 0000000..0a2e467 --- /dev/null +++ b/data/consensus_tor_raw.txt @@ -0,0 +1,42798 @@ +network-status-version 3 +vote-status consensus +consensus-method 29 +valid-after 2020-04-20 13:00:00 +fresh-until 2020-04-20 14:00:00 +valid-until 2020-04-20 16:00:00 +voting-delay 300 300 +client-versions 0.3.5.10,0.4.1.9,0.4.2.7,0.4.3.3-alpha,0.4.3.4-rc +server-versions 0.3.5.10,0.4.1.9,0.4.2.7,0.4.3.3-alpha,0.4.3.4-rc +known-flags Authority BadExit Exit Fast Guard HSDir NoEdConsensus Running Stable StaleDesc V2Dir Valid +recommended-client-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 +recommended-relay-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 +required-client-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 +required-relay-protocols Cons=1 Desc=1 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=3-4 Microdesc=1 Relay=1-2 +params CircuitPriorityHalflifeMsec=30000 DoSCircuitCreationEnabled=1 DoSConnectionEnabled=1 DoSConnectionMaxConcurrentCount=50 DoSRefuseSingleHopClientRendezvous=1 NumDirectoryGuards=3 NumEntryGuards=1 NumNTorsPerTAP=100 Support022HiddenServices=0 UseNTorHandshake=1 UseOptimisticData=1 bwauthpid=1 cbttestfreq=10 hs_service_max_rdv_failures=1 hsdir_spread_store=4 pb_disablepct=0 sendme_emit_min_version=1 usecreatefast=0 +shared-rand-previous-value 9 qbQW58n0WTEkJNnM+gaaHe3GSSqUhiak4xIPCSADVps= +shared-rand-current-value 9 Vi5Qj732znJb4S0+3Z1Oet7+8buAGgi2Hz1LU9w8osM= +dir-source dannenberg 0232AF901C31A04EE9848595AF9BB7620D4C5B2E dannenberg.torauth.de 193.23.244.244 80 443 +contact Andreas Lehner +vote-digest 0656EAA70E9A2E20488D83DF3B777605AD322F14 +dir-source tor26 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4 86.59.21.38 86.59.21.38 80 443 +contact Peter Palfrader +vote-digest A032CB60EA5496DF5A1DCA02B2092739C9716C40 +dir-source longclaw 23D15D965BC35114467363C165C4F724B64B4F66 199.58.81.140 199.58.81.140 80 443 +contact Riseup Networks - 1nNzekuHGGzBYRzyjfjFEfeisNvxkn4RT +vote-digest C7D9E80F7CCD2B776626961E4F2AB21031359B07 +dir-source bastet 27102BC123E7AF1D4741AE047E160C91ADC76B21 204.13.164.118 204.13.164.118 80 443 +contact stefani 4096/F4B863AD6642E7EE +vote-digest 8485EBB33C29FDBB72F5C29AE92E99B21F1C6851 +dir-source maatuska 49015F787433103580E3B66A1707A00E60F2D15B 171.25.193.9 171.25.193.9 443 80 +contact 4096R/1E8BF34923291265 Linus Nordberg +vote-digest 967314BB3FE328964DAA267A00F1252A270C33E3 +dir-source moria1 D586D18309DED4CD6D57C18FDB97EFA96D330566 128.31.0.34 128.31.0.34 9131 9101 +contact 1024D/EB5A896A28988BF5 arma mit edu +vote-digest 686EDD65CA868C6D57A91EA428B30BA4458148F6 +dir-source dizum E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58 45.66.33.45 45.66.33.45 80 443 +contact FD790065EBBD5E7AE6D039620D7F81CD19147711 Alex de Joode +vote-digest A38BC0B846CA0D5FA78A368A5495F68807BF1185 +dir-source gabelmoo ED03BB616EB2F60BEC80151114BB25CEF515B226 131.188.40.189 131.188.40.189 80 443 +contact 4096R/261C5FBE77285F88FB0C343266C8C2D7C5AA446D Sebastian Hahn - 12NbRAjAG5U3LLWETSF7fSTcdaz32Mu5CN +vote-digest 84A637BD62F9332361A0224861358A86A114CA16 +dir-source Faravahar EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97 154.35.175.225 154.35.175.225 80 443 +contact 0x0B47D56D Sina Rabbani (inf0) +vote-digest E0FCC50340E79C95110284A8BD964FC799D419F5 +r reb00z AALMVwXahU5Odx8kCjhVZ/SjwT0 N18wbjN5Y6cr4Uq8uduK55Llfc4 2020-04-20 00:03:33 155.4.197.206 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3540 +p reject 1-65535 +r flageolet AAbeLnfjw+xeGCWwduUlf9IA7Qo 11fG9LpcmEL2b8fTNR4TLE+7bb8 2020-04-20 12:31:54 80.195.122.166 9090 9091 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p reject 1-65535 +r seele AAoQ1DAR6kkoo19hBAX5K0QztNw gu9JvDty7FJfMNkl/XpbaxULDr0 2020-04-20 04:53:45 67.174.243.193 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11 +p reject 1-65535 +r CalyxInstitute14 ABG9JIWtRdmE7EFZyI/AZuXjMA4 Vbihh2uENnISy65JDoTxy0jAQng 2020-04-20 04:26:24 162.247.74.201 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r 220VoltLive2 ABLiyQZzB7zWByF5wzs1Zl7MiCg HAmB8AYQUNIuU2+8QrtnWPDV/JI 2020-04-20 07:15:35 110.32.66.193 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=87 +p reject 1-65535 +r rotor25 ADQsDhVdRULlU5F4iy13nxRXjes WLicS0kjzs4bP+NfBvNb85Hvva0 2020-04-20 06:46:12 188.24.21.252 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3220 +p reject 1-65535 +r snap277 ADrjDGn2XsOdanMwLGUYewf2meY fRJWcovsMex0vnKuoXE1eY2F5Oo 2020-04-20 10:44:12 86.121.99.26 42351 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=187 +p reject 1-65535 +r ChapmanShoop ADvp/o0hvaKwH8l4unbdLUxHXt4 498oqpEt898B84ZWvA4LfqLKYLw 2020-04-19 22:02:59 157.245.189.45 443 80 +a [2604:a880:2:d1::173:b001]:443 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8000 +p accept 53,80,443 +r xX0seamus0Xx ADv6G2zFy+/V0Agvj8mvKohoqPs JKuK0LnZZxyXZaFmPpo7on4RoJM 2020-04-20 01:03:13 188.214.132.49 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=45100 +p reject 1-65535 +r VSIFskylab AD14gl4Llgnuz/Xk4FKXF3cuU8c TSEvjjg9Nx/UchzU2/W7HvSVBps 2020-04-20 06:01:49 104.218.63.73 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6830 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r suspicioussytems AEHYeZkN7D0yZoi1fO7LLu6saII vGfBfbNtsne8u7BZlUEMwXALNhk 2020-04-20 10:35:29 5.9.142.238 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1680 +p reject 1-65535 +r helga AFnZKULbO4TlLrTYfp97GVz00AU wGQJPY5dwjyFokF/o20VEBC40Ic 2020-04-20 01:09:16 88.99.216.194 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r Athena AF7ZchP3JYZ+QiuNwEQzYbuyTjw dWF3Pk8mEdwWE5GwBbJIv6H24bA 2020-04-20 06:51:18 104.244.79.75 443 9030 +a [2605:6400:30:fb10:d07b:edfd:2c84:bb4a]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13600 +p reject 1-65535 +r comeandgo AHI68cQFJheb/uqxVQQ7V7zZwaw fOgifKkwVB5uFCGry0eFho6zipg 2020-04-20 04:20:16 61.239.100.129 443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=502 +p reject 1-65535 +r Quintex13 AHe8unJE2z5qXtJ0boYXAGZoSIc CWymgAaFhAmIcFBEJ5IFEyaudVQ 2020-04-20 11:49:41 199.249.230.103 443 80 +a [2620:7:6001::103]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15100 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Relay5000 AIUFfBe9LhgJ4oSCXwb5TnL7QYw F9uVkEeexoY4zrBs6Ru4rFr9vmk 2020-04-20 08:29:23 148.251.75.247 4080 8000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=112000 +p reject 1-65535 +r Unnamed AIZhsnCbMuM50PlGGaN8536SNNc hf0XLYruzdUg3bebUKxoCDqR4fc 2020-04-20 12:35:28 167.114.92.56 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12200 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r baryon AJV5LMAHWPJFeVVWyVfCCj/34b4 JYxpHFkg/HhsQ3xN35+8GA6MQh0 2020-04-19 20:47:12 46.101.220.117 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=800 +p reject 1-65535 +r BlackBeluga AJYtLdC5vzpq8dXrIBEyOIrKFCQ PUR8+UvpL8Q92YnVqi6xS4wbWJw 2020-04-20 04:28:57 5.189.155.39 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=860 +p reject 1-65535 +r jactr AJhR35M3VLAN3odvzkCIzhtJQME E6r9F/hulmsCVjMG89MjDe6St+o 2020-04-19 23:08:14 84.40.112.70 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22 +p reject 1-65535 +r snap277 AKqQFKpuORffpFGfRYCS8ZlGa0k ai7D0pUP2ncMZSWR6HF0IRww54I 2020-04-20 10:09:00 85.86.11.32 41507 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2000 +p reject 1-65535 +r mharelay ALV79hT37TBRBztdRSb/CyOvIXs 9DbptG/Znu1WksdUrOLJT4FqTHA 2020-04-19 21:42:24 158.174.145.139 9001 0 +a [2001:9b1:403c::1337]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28000 +p reject 1-65535 +r king ALxxozgJn5o4fDvzFKW9T7SKb7k IGpoOkwB+U73WZD3seAycO+silI 2020-04-20 05:51:44 51.89.213.81 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10100 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r effiorg1984 AMzmqE5tY6GkLhBYObyO1dSxZmk jaC/3iANjQJHS3S6E2JAJZKH1Fg 2020-04-19 23:06:38 89.236.112.100 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9730 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r dragonhoard AOFknmn/kdfwHnSl5i7xT32ZFeQ AFsk4kRB5s6XEtXg+Qref9cSgQs 2020-04-19 19:25:33 116.203.50.182 8080 8008 +a [2a01:4f8:1c1c:b16b::1]:8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r SemTempoIrmao AOid3vlEtC/WUvgMJIDV4g3xMZQ K9AVke41ewKV9RXtM9kDjgDsrP4 2020-04-20 07:23:02 193.234.225.67 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10600 +p reject 1-65535 +r king AO1a+PIkGzmbZniZOlhenJagvtE 3zKAHrZeZKJyv6Gsv+xMCW5Wz2g 2020-04-20 05:02:54 51.89.147.71 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7750 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r MYLEXr2 AQt3KEVEEfSFzinUx5oUU0FRwsQ xB6lYgip3YH+TwJn3uhBHX9oKSA 2020-04-20 05:54:40 77.123.42.148 446 801 +a [2001:470:1f15:325:f66d:4ff:fee7:954c]:446 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1860 +p reject 1-65535 +r DigiGesTor1e1 ARG6m2BGaeY2/9W1A/OCpLetboA kR2xwbg6bn+EnctOm8cphEHuAqM 2020-04-20 00:17:35 176.10.104.240 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35100 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r motauri ARgbMb5YYMfWbaiPiK1SLAZHD9k S9TwH5N8XWWcN74MEq/16BQUkvU 2020-04-19 23:14:24 95.143.193.125 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=410 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5000-5750,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Bingamon ARodfXiXW7/Th67MOrbZXRgZlE8 p1qRFT+e3McbV3mSdaxR0K8VrLI 2020-04-20 04:13:04 103.70.57.184 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=153 +p reject 1-65535 +r biochemistmoscow ASgRXsTMNXheAF8L8v7ffs3E8Ds 2m0lWnUIZ67S9I5TBo70COlgVC0 2020-04-20 03:15:57 188.32.168.141 12630 12631 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1850 +p reject 1-65535 +r bang1 ATZpawJaxVA4R9c2/p89ZesnpZY dHXkVK7fr4smAxrTIt41wicyVWQ 2020-04-20 01:06:19 134.209.159.74 443 80 +a [2400:6180:100:d0::8bb:6001]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=933 +p reject 1-65535 +r insist AUvQljY3O3jMKLpw42xxkOPeI2o C5Dp8xHBS/qM2sJ2s3O0loevl3M 2020-04-20 07:53:12 193.183.210.46 993 992 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18300 +p reject 1-65535 +r 8ac97a37 AU4kwM0h0rmCnoQdXsHTxBX4Zr8 L5YB2nAV1jA1yXmYPVpEvrCxqxE 2020-04-20 04:41:35 138.201.122.55 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=138000 +p reject 1-65535 +r marsmellow AU7iS8vaFg8jayVHpGObJ+MDoec lCTRGBjGpyLXu97lIRIU5wstLgQ 2020-04-20 04:45:50 62.251.89.74 9001 0 +a [2001:985:a751:1:428d:5cff:fe5f:7f92]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=254 +p reject 1-65535 +r Minducus AVGMBBeEPpcJsVs7AEvINM3mepI LLpz7T8m2fedu98CB1QrOXteNq8 2020-04-20 00:00:00 204.228.147.42 9001 0 +s Fast Running Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=371 +p reject 1-65535 +r Unnamed AVlYgY+gHPk36j9m/LgT2LOEDts 9bRJeI4PKP/RtsQtXMIkHc4Bm/U 2020-04-20 11:57:59 205.185.116.89 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4040 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r d0dak AWCT7kuumvRz/AyBGp0Q/aqco0s 7zFHPC4gQ6dvco9oPC1xiExwwSY 2020-04-20 09:13:14 62.65.106.163 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=914 +p reject 1-65535 +r noce AWZNQagfgXo+cUANa/1AlHqkCvs ovx/kA00AFtNaZDVOv2X2I60pao 2020-04-20 04:03:15 216.127.173.78 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4800 +p reject 1-65535 +r LastResort AXIqYNwOqmTXkFrWCjJCxgkec9E fPDUBdQzWNbu3ljQsRcJ7efWyaI 2020-04-20 07:25:48 185.112.146.155 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=250 +p reject 1-65535 +r CheenaTorExit1 AXKfEKgd3YqS13CyEzCC61bHXiY Uyx3Vw9SPvz9M8sICDw6hxDzpVg 2020-04-20 12:36:48 178.17.170.135 9001 9030 +a [2a00:1dc0:caff:3a::dcbe]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3880 +p reject 22,25,119,135-139,445,465,563,587,1214,4661-4666,5555,5984,6346-6429,6699,6881-6999 +r hedden AXOnqLqdMgQ2QbaXJtMqmt/ibRY OJdS34WawtWTElwHLNKbJMv6kbM 2020-04-19 23:53:59 93.174.93.133 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p accept 20-23,43,53,79-81,88,110,143,194,220,443,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r k0nslNET15 AXteKKs1Wkneb6p7EjMtPPtf59Q Oi+uKV3t+swKL/2BbnTx01VZDKI 2020-04-19 19:52:59 198.12.66.116 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29900 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r Unnamed AZCP+2rU9ziXs9UKF8R+pHUUGmw 1lCzA8vLEoYOHUeCeE9JuY4jYbY 2020-04-20 12:38:33 199.195.248.240 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10600 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed AZgfCa8I6x7Gn5GzHYm2x2dXYgo guEfa3biwUhHyqXZ3MjbM6Czuy0 2020-04-20 07:23:11 54.36.112.244 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=640 +p reject 1-65535 +r Unnamed AZlHo+aYTF5PSCfjvqoJ9ldttvE 5eDPI63XG876BZj1gJiufC+gmW0 2020-04-20 11:15:06 151.80.194.90 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ProjectTokyo1 AZ4g41JIG9RaPOfWaRoQ+1MYUPs pvPbIH7PwJImVek2oxKlUgPWy78 2020-04-20 12:27:12 111.233.137.126 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=199 +p reject 1-65535 +r PyotrTorpotkinTwo AZ/rIs4Ey9BIm38kvgOFGLZPoiM XFeXUX4qrxlyJZYXsSoKT0X+eFk 2020-04-20 06:39:56 142.44.243.133 9001 9030 +a [2607:5300:201:3100::3e59]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9510 +p reject 1-65535 +r ForEdSnowden AaHRX5/GftBfopZv+IMGftUCzwg qDnF2ZOMHitp66IS/bORld1oRDQ 2020-04-20 09:58:50 51.15.133.16 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2500 +p reject 1-65535 +r snap277 AazsVV4byT7SFY10anLyO0p/tGg K+FCQYlTdU9RIo9rkreJOrToHig 2020-04-20 10:35:53 77.96.94.110 37403 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1010 +p reject 1-65535 +r rixtyminutes Aa4t4xQnbIL8zDYDocLzI45lRMk EFXyhRTrj5zzFl1iEDqr41squzM 2020-04-19 22:22:18 149.56.233.142 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21200 +p reject 1-65535 +r Hydra14 AbcMfEl/yGZ9teuCxA2PkhTWpIQ nDrDca0znS4aWykgPC3LrjKIvoQ 2020-04-19 22:56:31 51.15.225.216 9001 9030 +a [2001:bc8:47a4:1734::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p reject 1-65535 +r da3dalus AcLfa9JAJazCA9c6J6tyTe0crd0 UD36gsaD8hnDESst6oiHYQ262PM 2020-04-20 08:59:11 79.143.191.62 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2520 +p reject 1-65535 +r idisdlagjnldf AcdCMB4o7RVNUpabn2acaBMiRms DRUsrjRkJxWt2A/8UN5QmudPaO8 2020-04-20 09:05:57 91.203.5.213 80 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r Unnamed AdcItBd93de58aQaMIHzMPuO8Dg 8W4zj2S+Y6i/1rpo97ulHGiD5VI 2020-04-20 00:23:51 185.243.112.87 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=321 +p reject 1-65535 +r king AeQfZ1deTSVRwwDlyaqCN6Bcjbk /bsfb2cGuob+ZEzvSyqRgY+JqRw 2020-04-20 08:40:25 51.75.175.31 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r aerona AeedEdrxsvUiztFfMwTDdlb5jH4 IKWmEWKwKKObs3r445gxBuJbRVg 2020-04-20 07:24:38 145.239.72.73 9001 9030 +a [2001:41d0:302:2200::1ac4]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21800 +p reject 1-65535 +r kr3pper4 AfS/j7Q1CmkPIh46g/UwN4Nv4BM PhSwh+0MftOYJ67HGb4VMVOzfBM 2020-04-20 12:31:17 83.79.221.148 9004 9034 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68000 +p reject 1-65535 +r Ubermensch Afc9vZtWwx49Oq65X4zx3rfZpy8 nvcVSaEyhNWfntW7/iV/lPPSwcM 2020-04-20 02:47:26 158.69.35.227 9001 9030 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11500 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r niftyentry77 Af3I6S0ygIR9hW2h+b/CtM0sLug fwgkS0J0EI7ICXDS5iP6phN7hVk 2020-04-20 10:51:23 185.220.101.217 10077 20077 +a [2a0b:f4c2:2::217]:10077 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19200 +p reject 1-65535 +r daskapital Af4hN8QuSAJQeh/ZewFYEW/Xiow HQFabk7/KmaV7OcTzFNac9Ae5to 2020-04-20 06:36:25 85.214.141.131 443 80 +a [2a01:238:438c:5200:1a03:ed1f:ae7e:e9fa]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p reject 1-65535 +r RS1Lselectel Af+chXHRwJ+o0qzOcn1VMP7BADg 5PyQZlyg6KepXbBQ3z9mP4vgQsI 2020-04-19 22:29:05 31.184.218.180 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4900 +p reject 1-65535 +r justasimplerelay AgW4UWKk3ArZAOBNOuUhmka8IKM p24FwMfUOgW6SwCnAB66ZVu4kb8 2020-04-20 10:16:55 54.37.16.59 9001 9030 +a [2001:41d0:801:2000::52]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8150 +p reject 1-65535 +r conquerorworm2 AglzN9hayRrMK15pHkRx9A9UqYk 6XuGS4bU3geyx2aDCBQO9GDre9M 2020-04-20 08:38:10 178.17.171.29 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11300 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r bauruine56 AhBHxRpXJU0mPduLknfKHChtYA4 /PsjFMztgN+dlOvtL9gaY5nUHWg 2020-04-20 00:10:13 94.198.98.21 443 80 +a [2a02:29e0:2:5::1c]:443 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p reject 1-65535 +r tconionrelay Aj67xXvrf0VHOz3CqoEfs6q6RGY BMdtRWawW2hJi/AvmjkF0FWbqWo 2020-04-19 21:05:40 173.75.39.61 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9900 +p reject 1-65535 +r snap277 AlSchOTlVQbyuXlRBbXEuzzkHx4 Ur5flmMldVD1Dq2BS1iwPBUf6JM 2020-04-20 10:19:21 94.2.80.175 44417 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1650 +p reject 1-65535 +r nibbana AltmzrwHD8sFGdIGzwz0llwgyW4 qzEd90ayKAnw70+wkPE1sSSY8Zo 2020-04-20 01:37:00 185.100.85.61 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Anthemisto AmAfS9X6CBeX6eRmmOoTBioio70 ddUatgk8LQL3Ia2POmIjjEw8njo 2020-04-20 03:17:43 134.209.109.214 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=933 +p reject 1-65535 +r Assange029us AmSPLxNccpaiex9Z0q5O7CXZqHc BHYiJchEE/4RqJ+wgjo/6xQtWsU 2020-04-20 07:01:15 104.194.235.104 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5800 +p reject 1-65535 +r Endgame Am3XhmidJqTBuWq943l88BlB0nY 52GDyHZbuwOUf0fHTqfWZTzyNgg 2020-04-20 00:15:23 199.115.114.70 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=19200 +p reject 1-65535 +r KXDT8WM5QSBHZVS Am5T2aov8iIXshW1fkxLTvGW/NU YYcYZ2sL4uuzlece/dn3n74OWxM 2020-04-19 19:21:53 91.121.251.65 443 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18800 +p accept 80,443 +r zagreus AnQPRy0dpcG3dHXxiUD+efFa9Lg 5wPLh6lLTLp4T2xdznu/gLOVZgo 2020-04-20 03:24:28 81.169.222.158 9001 9030 +a [2a01:238:4224:8d00:f3a9:25e6:4cb6:f3d]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=382 +p reject 1-65535 +r niftyentry116 AnWM05jj+ELvgkeAeKquAnN3DbI 049h7CzP/HXYtS4h57UBKRJJOnU 2020-04-19 20:26:08 185.220.101.116 10116 20116 +a [2a0b:f4c2::116]:10116 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r zamazan4ik An3MqqCqwLP3kjjmDby+e1suS6w dVfA7icL8nV9R6OE+yyMXJPhszA 2020-04-20 06:50:06 194.158.216.103 9050 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r MrDetonia ApKIVb+teH+LNj8hhg0efRVuBlU La9ruKk7oy9Ui5Lf+Ye3buKVb4Y 2020-04-20 05:03:43 188.165.212.152 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29100 +p reject 1-65535 +r Ragnarok ApMP/rh5aNUYEB63kgLxw3ZgeNo hpMl5vqbh8ETddrlMUphDthyfEc 2020-04-20 11:54:07 176.107.187.151 9001 9002 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21200 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r SatoshiNakamoto AphcRyUWb0bpp23q+C/sxLfiGms a9kTfxn8QXdmkRgdyx8phZp4ekw 2020-04-20 04:39:39 87.247.111.222 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r pkswitchny Ap4QelnStP69BqYRUWe9bQSNnAo xW1Q5B+sad2jSVtM7u2F7nl+me8 2020-04-20 07:24:42 104.236.52.16 1747 1523 +a [2604:a880:800:10::63b:c00a]:7491 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=2120 +p reject 1-65535 +r Lorax AqKaL5WCEfm7WCEVMpbv/tkA7MY mPezH6X4lDrAUYyXJEWCmT6w5Rs 2020-04-19 19:32:39 2.56.99.215 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12800 +p reject 1-65535 +r TorRelay268SGP ArTp45e7GK3ShuQfaceEv4EY4nA kKml7ciyUNqxfc5Et5Vx9cjhzrw 2020-04-19 22:00:00 139.99.40.50 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=900 +p reject 1-65535 +r Unnamed AtWx9joN04OdnY5wVITsbi9fEIM 9MVvkWnwYvRw0L3/51ePO17eR6U 2020-04-20 04:59:53 126.65.143.106 1052 8080 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17 +p reject 1-65535 +r SixRelay12 AtdxTVyXRhYDHYopBexQHqbRDRM uFXZ+1Ij+IjmCyuAX4qik395ur0 2020-04-19 21:18:08 51.75.175.18 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3 +p reject 1-65535 +r ididnteditheconfig Au1PjbEfEwO6IbFqoc8qCkhUeso +u7WPgoQ0KHDidlUIDCB17Bg/TQ 2020-04-20 07:11:25 62.210.217.207 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4530 +p reject 1-65535 +r FOO Avli4Q83m0iTp1yfN4+yidljD3E KpC/ihMfW4+s0CxvI5WqeQSx3NY 2020-04-20 10:10:40 178.17.171.110 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=11000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r paladin AyW5HTwy06JMhj1d++0AVk+tXGQ BGQAYM3BjgbDKHRVhdPIiSERJX0 2020-04-20 10:52:07 81.17.16.147 9001 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed AzDVgn8yU6mK5q8w1WoPi+0cpYY ahOFKh9mYz9/FfLTkxMFE6YwmsA 2020-04-19 19:27:38 193.36.116.38 443 0 +s Fast Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=190 +p reject 1-65535 +r Nebuchadnezzar Azj59VER/o41cOfeEX7zr5mcwdc 9DUpCtqc3qUPNAiT5CqFSBIxtro 2020-04-20 07:26:22 185.225.17.3 443 80 +a [2a0a:c800:1:5::3]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r snap277 Azv2+4SsSwLXAQMuvJQBS/2WgNg anoJq0+WIBH5yUw/6qQRi1uh7wE 2020-04-19 22:26:44 188.243.60.249 41429 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=172 +p reject 1-65535 +r Hydra5 A0qksw933w/hg2Aup/glH/LPG6I AVogsJ2zwlZqv/D8XxWrpKOHxfI 2020-04-20 06:14:30 89.34.27.49 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p accept 53,80,443,1194 +r Venom13 A1OWJp9tAFA9F2XfNu0bIDoCjXQ M9j0AAT7zQkP5s7oUYwOBmzAO8g 2020-04-20 07:59:31 195.123.209.91 5091 5192 +a [2a02:27ac::4ed]:5091 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6800 +p reject 1-65535 +r asagudentor A2fh/6txasP0GM+3y7O9uUA82cs rzwDZFog5KAVIQrdaSBrBJP72Ac 2020-04-19 21:25:48 213.80.102.27 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10300 +p reject 1-65535 +r Unnamed A3e3axX7PPySwgAeGAoypKs43wM p+Me3YZj/089UqBpcvX7j5nbVM8 2020-04-20 09:30:37 62.212.72.243 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=12100 +p reject 1-65535 +r SLOG A3tsYNrU3zL9opv0WNXIyBaqjz4 LCRi/fHSEWz6ufVaBgHZFRvIuNg 2020-04-20 03:47:20 5.154.174.241 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15300 +p reject 1-65535 +r dike A3vNDr332589Vi2ifUY/D3jxSUs Y2WoRvK9lEsuaZWtuSYLdmzIiW0 2020-04-20 02:46:10 37.120.171.188 443 80 +a [2a03:4000:6:543b::443]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4990 +p reject 1-65535 +r turnt A4ww0q0FMUfJHvsSkVJ+1iHX0bE FoIPm95zsuFawBJPODwtFl7Fqsw 2020-04-20 07:09:12 82.221.131.71 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9660 +p accept 20-23,43,53,79-81,88,194,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r HerbieStone A40y8RSK/D2M2gx0tG8WEzuWeMc y5JNi4rOTkJyzzH3MGtELBlzV8k 2020-04-19 22:31:41 85.195.252.93 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=233 +p reject 1-65535 +r ry4an A5ADwyDZmA4KdA8QehqcE8mcX+M TjxSwFPJclb+LUDw3akoCBMDmko 2020-04-20 11:09:50 45.79.159.52 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=700 +p reject 1-65535 +r operator A5EPKFoz82WDjsZu8sLvdU0EZ2A XOLVAlhG143T2vsU6d4jZdDNKC8 2020-04-20 12:24:15 148.251.237.219 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=120000 +p reject 1-65535 +r panopticon A5l6Co80sZBLb49C4HWoaJxLDFE JKz9/SLdV7DuIuz9uf49PxM5L7E 2020-04-20 03:05:52 69.230.150.191 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4810 +p reject 1-65535 +r unlobitophx0 A6L1nHQVlR8W718Pp6Jm5jZW3+Y XK8OtuaXdbdcfPQT7LUpQYRjlok 2020-04-20 07:36:03 216.21.9.65 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57 +p reject 1-65535 +r TLCOnion A6M8NFT8D5rGlm8S+khpmfWiKJY bNCGZl8gUjOz5+K1zJV1H2Rc7EQ 2020-04-20 06:33:46 96.66.15.147 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=870 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9332-9333,9418,9999-10000,11371,19294,19638,50002,64738 +r unrestrictedONE A7GyHXI3NRDh3v4uGTkyV2sVc2g GzcmcNkQC3fcTwvFbIMO3KCLovs 2020-04-20 06:50:15 178.175.148.148 9001 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5630 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Ichotolot61 A8MGnoFOKW6xh3brYbHst1Ttif4 WrLih4yee1D19GbtXjnMkpSSloQ 2020-04-20 11:58:22 81.7.10.193 993 9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3400 +p reject 1-65535 +r SPARTACUS A8i2A66+wKxMH3PjsMyWoCoE2D0 WGRC/YQSg3DJguC/a6kRghxW9q0 2020-04-19 19:09:35 31.31.76.123 80 443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4260 +p reject 1-65535 +r torgenerationX A8/5AGBGEIfTT/t7SFw60wFDd1w qizyKONWd3HyqlzGnf8hO6V5+yg 2020-04-19 22:12:39 54.38.187.54 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14800 +p reject 1-65535 +r itzme A9og/XHO0YjIt2UugZQcUGck26Y Q5v9CrDGWIEjI6aTHtOYhDyC7DI 2020-04-20 08:47:28 198.74.57.57 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=82 +p reject 1-65535 +r krigernes A9wIHkQJYxAG78068Tr6rytVP/w Px6d2c7UvP+5QCAHRTc4L0fVJF8 2020-04-20 12:32:40 185.32.221.201 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r noipser A92dpOEU07/gYD6aDaJBlYi5xFs xT7UTNVXqlKjElqLkttqnv/vLe4 2020-04-20 00:23:10 84.241.82.211 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1680 +p reject 1-65535 +r chapterOne A+D07icnMWAXc/SOZCQNOoiWpeM rwcfqfG0jFaz/u7MqtoECA7IIJ8 2020-04-20 01:47:01 95.216.15.16 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22500 +p reject 1-65535 +r 4pyro2eu3org0 A+n35mnI+RHF7sPsCUUzFR+FdCA 0v5VKH29OUulBO/T2LuzjSAURpk 2020-04-20 08:00:01 217.155.40.118 9001 80 +a [2a02:8010:60a1:2013::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1700 +p reject 1-65535 +r Shockrealm A+593ZMdkrtXuBswOK58QKCKsjc V4Hkj4C8+1HNPT5hwhosnwAjFbs 2020-04-20 00:46:14 123.30.128.138 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=560 +p accept 20-23,43,53,79-81,88,194,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Janky380201 A/JnZvFLC3tdIkYQg4B9MTQpo08 GVZQWYQ+nLlGhClRmK0rVxNC0y0 2020-04-20 12:42:41 5.196.71.24 9001 9030 +a [2001:41d0:e:418::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5610 +p reject 1-65535 +r arbitrium A/aKtWkVTEuZXn82UoMiB55IKbk wllbv9fE9Edtd02RRvVwvMw8KEI 2020-04-20 07:52:22 201.80.45.203 9001 9030 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r toastworld A/xcUtmkV38odi575kK7Wo8emAM 8Sbwr+F0uhKsUT54LoG03i0iMvg 2020-04-20 02:52:53 79.140.41.117 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1220 +p reject 1-65535 +r SCggHJTyWbtzDA9YZi A/+U2eUAHdIpC8Oxn6f1nOHjAnk fVsWxHlM3EiR1Am0+ejuw+rM0Pg 2020-04-20 11:27:58 78.142.175.70 443 0 +s Exit Running Stable Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9 +p reject 1-65535 +r RichardFeynman BACF/+HojPSKsLWyqzkDV1jGXww KTFaCuOFU24ZvOY3nW6OcAX9WbE 2020-04-19 19:56:19 178.63.27.82 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=680 +p reject 1-65535 +r jkO BAlgXoNDVip5D/6EbLO9fARCn3A oiNl2Q5aCGL2i8jxAhtogMIAKsc 2020-04-20 11:31:16 158.69.204.36 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r Unnamed BAp0QjSaKskiM8JHDWxPK9Au3xU nRLS+m1H/xJQnn3PBUIhtr2/tLg 2020-04-20 01:54:54 216.218.134.12 9040 0 +a [2001:470:1f04:d9a::2]:9040 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4520 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1337,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,6880-6889,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9000,9418,9999-10000,11371,19294,19638,31337 +r EntitaetNull BBFTINEeJYPsP3+UStLUGfm4QQI rz9dtUTkG9l1REL7WyyoPkTDmXQ 2020-04-20 04:07:28 85.214.156.28 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38 +p reject 1-65535 +r QuintexAirVPN26 BBZGZAqzBup0sAGWboYWmwTMiNI w3l419kUUgBUw0oz2E4NVsqxXz8 2020-04-20 05:04:41 199.249.230.79 443 80 +a [2620:7:6001::ffff:c759:e64f]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16700 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r freedom BB4/zAJi5a8aouyJoTVljAfA2ak 44JBJ8W5Sby6YNKqlj0w6gzxfCw 2020-04-20 06:07:25 178.189.143.242 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1800 +p reject 1-65535 +r ecuasterces BCvN8tNteu4HDghtrUtX8nsvEUM Zn7y/ud6bkVkJ3swjGUT7LzJ2lE 2020-04-19 20:29:14 73.170.195.217 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=205 +p reject 1-65535 +r hacktheplanet BDGZ0sQeZAQwt3OIuA1ELTeb2OI UPDGBTvJzkk68Bt8FNUl8YlLmns 2020-04-20 06:24:36 51.15.128.2 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.10 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=20000 +p reject 1-65535 +r Hydra2 BEPZjAxE0+DmI4eQNF21Yk20Gyg 5bpW7bdpTMt/ow9zAM3SwMennKI 2020-04-20 12:35:09 89.34.27.59 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14800 +p accept 53,80,443,1194 +r rabukel BEtrje8qqMU6xnZA3AD9Je5nPPY +wE30yQPwjVTzv8y07rsz7vViag 2020-04-20 02:10:40 77.11.32.181 9001 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 +p reject 1-65535 +r goddisignz BGV4KW1qVZzzN5Yw88dsHHitCkc MtkwXCjzg/rA0WooPyjSgzfqpWo 2020-04-20 01:48:18 88.130.7.152 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=392 +p reject 1-65535 +r Zwiebelmett BG8tWahfrmk2dqh1M3F8V0NiYcI kKQM7EUckNE6rKDx1doNmLw0HVc 2020-04-20 11:35:53 95.217.99.142 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29100 +p reject 1-65535 +r hviv117 BIUCego0nUVNl49sHOzdKeoXdpo AiVixI67qR1tte786AvlArrJeh0 2020-04-20 11:41:19 192.42.116.17 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r snap277 BJ740vNknyLmtAk3+meitz9I7IY pmZlQWt4krcSaTGasNi+ISKcmxM 2020-04-19 21:18:44 84.124.50.151 33205 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4300 +p reject 1-65535 +r darknebula BKKKYvJ9nEpg+e0MQmTpi5iMZaM dbCK6E/rgu9kdO+WzRomUD5KkmY 2020-04-19 22:48:58 163.172.169.253 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24300 +p reject 1-65535 +r torgwthem BLfpcFgPIb6Lq/DMmiPSy/wiIpU dB9HANV3XYzOXSoYHfCun72u4pc 2020-04-20 08:31:13 212.17.102.77 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=150 +p reject 1-65535 +r aaron0x10c BMNGi+JHQDR8vMAFNMlA28vKvII OTDBxLVGtC7YSa2Qalbg5Ejhu/4 2020-04-19 22:23:45 51.158.187.110 443 9030 +a [2001:bc8:1824:421::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26400 +p reject 1-65535 +r snap277 BMe6KM2ELvolpzDfP2jBP8JGfc4 nvXzSY0LA/SQM98aHerEURQr/Rk 2020-04-20 12:29:47 178.36.49.211 46835 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5 +p reject 1-65535 +r Assange024us BNnOqNd4q6EwsBT3WMK8rdMdoF4 v/vw9YZf3/tJCq4vIRI+WfhPmwU 2020-04-20 01:09:05 64.94.212.135 9001 9011 +a [2602:fe90:604:1b::2330:38db]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3200 +p reject 1-65535 +r birdsarenotreal BN/cbH1OoY5K/MxCRJCTgAF0Pe4 mEdV2MOBeUpb9HvgGawK+CTorPk 2020-04-20 08:23:35 67.186.247.178 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1900 +p reject 1-65535 +r takei BN/gR6zfemYgrKeC+vxe8a5/R1Q baB4fjffppfVroTsTRrMy6z7rBM 2020-04-20 11:21:29 46.22.212.230 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28300 +p reject 1-65535 +r rofltor08 BOO1kl619mxuyBCj13AuDKP51ec zmQTjEsYSrffVQ2WVPkszntTHrI 2020-04-20 09:44:30 95.216.136.46 9001 0 +a [2a01:4f9:c010:2e::1]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r thorius BOdijTg73nAirajv33NwGRLHUOM 4LVK/KGzZWKrmXLJSRNj6alMhVA 2020-04-20 11:37:23 185.248.160.214 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16600 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r dorinne BO5eGyMSfSajb3HGaBDYiwuAu5E gZwIub9B4rTCto9xZsPjGOkE310 2020-04-19 21:15:13 91.213.233.138 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2560 +p reject 1-65535 +r Unnamed BPDUf97e7WO4HHrl3saf5gHrlD0 9uEzDpnlFl2PJ8h5hzT4BiXKwMQ 2020-04-20 04:34:19 82.102.20.254 31315 27876 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=160 +p reject 1-65535 +r FalkensteinTor02 BRL+a+nMoO0TMVLmQBCy+6FB6xA yxl7P40u1+OosYwQ9zwqN1fVrFg 2020-04-19 19:20:03 5.9.43.211 9001 0 +a [2a01:4f8:161:32c7::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=44000 +p reject 1-65535 +r AccessNow007 BRYIXWysQO1M3O/fxcz2sA3mHe0 Ee5cVBgkL+EMtDHpTRkJ/rx+c6E 2020-04-20 10:32:13 176.10.99.207 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19800 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r fiedlerRelay20 BRahpYNoJfWISNR7kfR8tZO1jVQ AA8foigJv5bk/3xE2M6jYnhWHOo 2020-04-20 10:10:41 185.183.159.99 9030 0 +a [2a03:4000:1d:8ee::3]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4110 +p reject 1-65535 +r RedRelay BR0oWPiv4daWZxtUxP6qZ0vk8lI X0KxFQPkXgxMFPinG1dXSRjTSJ8 2020-04-20 10:01:40 173.212.198.197 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p reject 1-65535 +r b0fh BR5JRiRNCiIaZ2/56ld/yQpXP0g gRmspezNLI8ox+RLtHdiuLDZ7ms 2020-04-20 12:07:50 78.46.99.170 9001 9030 +a [2a01:4f8:120:93d0::2]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1900 +p reject 1-65535 +r opix BSmeOPJm/0r7uvZ7RQK3Es4owzk Ca7ZVcxYFaUkSrgI1oPFIsC53lw 2020-04-20 03:27:04 95.26.115.190 44040 44041 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8 +p reject 1-65535 +r king BTQo110opD9kPQq7DtnIYFmAXzg MTgwecnfwNPzk0+841by3Ri9S8E 2020-04-20 05:13:30 51.89.200.106 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14700 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r vasilievsky BTScDzXFY1pwiIgAT4sCKTHovuY gYqnb7lKG7Qb+XMYA7EaQBadN10 2020-04-20 01:37:31 37.120.146.88 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15800 +p reject 1-65535 +r torproxy02 BTYOlVxMTFHLoUDf3fyL3irPYkQ 5AL7kkPqn7ReWUBY+HrEfmME6gM 2020-04-19 20:52:09 195.254.134.194 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13600 +p accept 20-21,43,53,80,443,873,989-990,992,1194,1293,4321,5222-5223,5228,11371,64738 +r relay2 BTyEc3Oi+CEGNw27AWteihTakQE aUuBzGZPIxKbaE3pH/Xau11t0o4 2020-04-20 00:43:16 23.157.160.195 443 9001 +a [2602:fe2e:2:2:18:11ff:febd:583d]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12200 +p reject 1-65535 +r Taste BT+FYy6RbvV0EwCWhutGkPHZkLI eNF1+znWwVmaCa8c4KwuuwGiiZ4 2020-04-20 06:31:31 155.4.70.10 80 9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16200 +p reject 1-65535 +r Ephemeral BUDYcK1Obye2it8/gJ+SXnANGC0 Tw1TqmmPZVyjQG1n128TTS1cf7o 2020-04-20 10:41:02 51.158.178.34 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31000 +p reject 1-65535 +r niftyguard33 BUiIRRGlHuoIzUZLAW5Pk+n4EHI sc0JAQ+kvwsz+wRTIV2mENVOYOU 2020-04-20 12:45:37 185.220.101.242 1242 2242 +a [2a0b:f4c2:2::242]:1242 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11800 +p reject 1-65535 +r extrastarch BUmVB9qLOBNw4IWKeEw6/hPckn8 q0JCsYOR9sZ/DslBQPQ9nQ1kqXs 2020-04-19 20:01:50 178.162.199.66 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=69600 +p reject 1-65535 +r verax1 BVo8qiWCuHRIMBNn7NWQXROO8Ek BDzKeVsa650NcemQelJfYwpBo84 2020-04-19 21:29:42 104.236.46.10 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=88 +p reject 1-65535 +r dinuccio BVsVWkSpaEkdce7xHTtq44CC9vw DWrSc1+Jo7aB5DEtrvaVn9tygb8 2020-04-19 20:29:05 46.38.48.225 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2070 +p reject 1-65535 +r smell BV0c2CY7QMEq5n2EyfoY26HfVnc +8TRpY7mWicV+Htxd4icbujoEgw 2020-04-20 02:03:01 137.74.153.3 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9520 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Unnamed BWgal2eDTZ7am9/k4Vob1zxP388 d/a8Pn2vfboEOWoGpkZbGb8/tfs 2020-04-20 00:02:40 109.236.83.11 46810 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35 +p reject 1-65535 +r Unnamed BWmTrBAoqkg2IFXAFhEI5p0UiyI VYd3HvgwNgVAfQKds0X3neIqJww 2020-04-20 10:12:39 104.244.75.51 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13100 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r powerghost BWvWLrbPZCQbOhMFae3Pbqcl6lw YF1EsA1651MIIq+J3GbWm4BKd4w 2020-04-20 11:12:29 90.50.190.214 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r snap277 BX3Fu690qM/ManpsF4Wikx59ygo aTEaYsSO4C7cBhYRwCVAO/cCdNw 2020-04-20 09:07:23 109.78.221.230 38497 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1 +p reject 1-65535 +r cauldwell BZIIQYqF2upTcCf1SvnbigGv84E mMxkNS0grq8sPcomcI/ehH3PSb4 2020-04-19 22:48:14 159.89.174.9 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1360 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed BZdurJG8Z6bAYoR27iTawcw3ihA evHdvEP/VgYXAOGmD9fmJO4lBq8 2020-04-20 02:53:50 110.175.109.121 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120 +p reject 1-65535 +r black BZnRdKDFEhJgl5WItwy1SDvlMe4 p9fFUCOo915bxlrsaBxmzEJj0Vs 2020-04-20 04:27:39 80.210.66.216 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=993 +p reject 1-65535 +r lpf3 BbRRwFYv3iMwevqE/Wo3ZS5hUjM UD25f/SX9Y7ogvUgjZj3r3z2JWQ 2020-04-20 12:30:29 95.154.194.31 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44000 +p reject 1-65535 +r snap277 BbwWiubyJgYjTbocB2Y4dO71jAU yc05yGhH5XGoRkNjlBpk1pFh22I 2020-04-20 03:53:46 109.28.116.250 37519 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r Unnamed Bb7Hf0DexyxXy8090wQ56Fm45Ss cbtIT8rN4bjoACMKxzIeHHa2w4c 2020-04-20 01:32:15 81.20.143.138 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r montrose BcOD3IE8RktxMlaXIr5SQ6n/c1w zmSw7aw9C19EpTaVjeOu/SaYwag 2020-04-20 11:12:38 160.119.249.24 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=331 +p accept 20-21,43,53,389,554,873,902-904,989-992,1194,1293,3690,4321,5190,5222-5223,5228,8008,8232-8233,8332-8333,8888,9418,11371,19294,64738 +r OpenBSDRelay BdxdvvtlG8ApRtsyhvhdsbXSw9Y jK8srJ+Pw3JJnu9C1mm/4GgHWto 2020-04-20 07:15:48 71.19.148.12 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=320 +p reject 1-65535 +r 0x3d069 Bd27dKq28Z4AMYhwKx5U8jA10GQ LY557UgSeIJt3knSdcCp47rAz74 2020-04-20 01:54:28 37.48.120.47 2195 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=372 +p reject 1-65535 +r niftyguard15 BfW7ddoAc2HOA3cDkwM9TVKDbYo mu0JKdgv2jxUPhswke4mWd+1y2o 2020-04-20 12:44:55 185.220.101.224 1224 2224 +a [2a0b:f4c2:2::224]:1224 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16100 +p accept 80,443 +r HelpCensoredOnes Bf+jnXHaEW92aepO5ToLrqMVun8 QVfBbrF3iAMMWQ11Otirosbd60Y 2020-04-20 06:06:25 85.93.218.204 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13200 +p reject 25,119,135-139,445,465,587,1214,4661-4666,5060,6346-6429,6699,6881-6999 +r newsvendor BhNwrkHBCEspEOsFIsiy2xwsuW4 vB/8SOo0Nr6wveHWulrZKbU9VM0 2020-04-19 20:30:10 49.50.107.221 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=650 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r bauruine66 BjvTv4wRBhfnygnJbA7cAnAynws iG5A5kZXFVCTQ4ztLwrh0deDKJc 2020-04-19 22:33:58 94.198.98.21 3443 8888 +a [2a02:29e0:2:5::1c]:3443 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15300 +p reject 1-65535 +r bruins BkMtG1p8EyBxYm0YbX8aQpxbvtk BJh9mRulWNdtB8u1Tu1Ix1jdAY8 2020-04-20 09:03:22 85.25.44.141 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p accept 706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,11371,19294,19638,50002,64738 +r Hydra1 BkfD+DUrv6DVehw+Dc9n/D4HPSw 4sMFno8owVVgD4n5PF9lSA9+6us 2020-04-19 22:01:19 185.165.168.168 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p accept 53,80,443,1194 +r TheYOSH Bk0YPTTey4T3LEM1sMJNHolGqbo l93lBeWH1BngQR2AZ2U+ROlz2PE 2020-04-20 02:46:42 85.149.71.50 9001 0 +a [2001:470:1f0a:716::2]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=160 +p reject 1-65535 +r SanitaryLandslide Bk08TMG4VIObCXn+HC8Fq6t/nWg MNd0XUQpZXFBnlljkLBqTfXfWzE 2020-04-19 21:58:38 104.244.73.126 443 80 +a [2605:6400:30:fa6b::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9300 +p reject 22,25,110,119,135-139,143,194,220,445,465,563,587,993-995,1214,2525-2526,4661-4666,6346-6429,6657,6660-6670,6679,6697,6699,6881-7005,7070,8000-8004,9000-9001,9998-9999 +r snap278 Bk/ERWmOxvR9dbsbQdK/PP4x2Ts d1pC5K5UcOhE/qUG+f0sQJ7EroQ 2020-04-19 19:16:11 80.87.222.19 55181 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4290 +p reject 1-65535 +r FreifunkIbbenbueren Bmc11D+0dvpkV4xdgp4XbfU+WgA ZBrykO0OE/uZX93uhig5N1PHxjU 2020-04-20 03:12:28 92.252.108.79 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5020 +p reject 1-65535 +r rubberbeardc BmmOThVV+4MDLgue+Amyc6958lc YLJoVyozEcvFzhaLVbdSd9otnr4 2020-04-20 01:47:52 71.127.52.172 1043 8383 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5690 +p reject 1-65535 +r niftyflorescaverat BnffCwXs2i70XybDMycxBDu4mrg ZPyZMTdSNVEsldKJ1/SvNk6jn60 2020-04-19 22:24:07 137.74.19.201 80 443 +a [2001:41d0:203:1c74::567:f3f2]:80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41100 +p reject 1-65535 +r snap277 Bn251uOD6BKoExMwn4TVhbLT+8w 7oHMn03f6Fh0/Pz3/ZYiJQJ5l4U 2020-04-20 11:51:45 109.218.63.199 44141 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r TorRelayOfRio2 Bn7PGYI4vRSwz+JImUdaU6lOFOw VG0k9bh4w0pUi/AX2X+ZEpjCcXA 2020-04-20 06:31:56 83.212.103.129 38513 9030 +a [2001:648:2ffc:1225:a800:3ff:fedb:b40b]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3360 +p reject 1-65535 +r paradeiser BoBOY4PulOg8lFPzmx5STCctbYQ SQ4te0UOl8vRfPEkA9BHBPY7f9s 2020-04-20 02:16:39 109.70.100.7 443 80 +a [2a03:e600:100::7]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=87600 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r garlic Bp362oxl3qK5sichYK9eV5WPmpc i5qdEYOdxJeNuiWMnK5pzmYFiKw 2020-04-20 12:03:06 157.22.22.254 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2750 +p reject 1-65535 +r Unnamed Bp5zLslndO1WCdSAPXsRMOM4sOs XLcqajbYqjr+7+HxLmHfHyNho8E 2020-04-20 12:03:44 94.19.14.183 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12400 +p reject 1-65535 +r snap277 BqXM5GSJwZX8lpoUyY+f8pVSdvs FCFBuOyLDEdwS5RROde4bqtCi+s 2020-04-19 23:52:42 96.60.4.11 46665 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=524 +p reject 1-65535 +r deprofundisclamavi BqtuhT6Nkp+dYOOkHvT5e3z2/aQ hvSwxZLwy8gwkcFlcwHC4KR0GHQ 2020-04-20 03:01:13 176.114.248.47 9001 9030 +a [2001:470:59a3::1]:9001 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r heaney Bqv8UT+nHH7kI9zGq/gPa0ovwaw OUAlUHJHHEjayFUKnLEE2ZdX+q4 2020-04-20 03:07:18 93.115.241.194 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=890 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r KlausTor02 BrCih7SFKIUk7XYd+vqq0uSomSs IVmXX4WOtP2i76FYQ/bu21lg8A8 2020-04-20 05:52:57 195.201.27.159 9001 9030 +a [2a01:4f8:1c0c:53ae::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19000 +p reject 1-65535 +r BungeeNet2 BrMI9UtKd510swU2lkGCoJwIq48 qXX9JYe1L26U77p1ymN6XfFex4M 2020-04-20 00:11:17 51.161.43.236 443 80 +a [2001:470:1d:3b0:0:1:ac:ce55]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11500 +p reject 1-65535 +r FueledByCofe Brfy0G+MvsJLbyg/X2Lo/gA/iXI PdxiS12/mvMZ76dqk1LDkp2iIUc 2020-04-20 07:03:11 78.46.76.235 9001 9030 +a [2a01:4f8:120:3286::c0fe]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4880 +p reject 1-65535 +r r Brvqpvc3WaF5XrRh050qoWjzBdE z3/cgvLUvrw9uW+oi5LRl900OFs 2020-04-20 03:41:16 77.68.94.106 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=53800 +p reject 1-65535 +r 666Name666 BsTmgLAplsNomK1DVtt0aYZfUAo qn9QWrLCdGxFHgNQ/SyktsRSttI 2020-04-20 12:01:48 67.183.149.202 54817 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120 +p reject 1-65535 +r COSMOPOLIS BtD7nGhg6Nf7meoxCgFnB6+qcc4 z3p81NB+NTT3mtKm9cGmYIk/3lg 2020-04-19 20:09:06 154.57.3.214 9001 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1100 +p reject 1-65535 +r Unnamed Btd+RhyYFCQ9osYUVUTVuztGtS4 yXpJxw3YFfQnTZhVt6flB11VaSs 2020-04-20 06:21:28 54.36.112.234 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=350 +p reject 1-65535 +r blackbox Bt2TxWFzV49REzAs9C5VUJexpdM beDem+VlDZ3BnNmyXrainUEHD3g 2020-04-20 11:28:25 77.191.212.9 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=388 +p reject 1-65535 +r wien BuclJrvgQMUcWt+6oHrdmuteH6E BElHPfnIg2EQ5dTRyij5zf9V5OU 2020-04-19 23:36:35 94.23.247.42 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39000 +p reject 1-65535 +r niftybeshaba BuwsFmnlqBHZZA4HztV4baUMVzc sY96dpQ7Cba9SI6h04FyaKdpviU 2020-04-20 08:52:48 185.220.100.245 9000 9001 +a [2a0b:f4c0:16c:10::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47800 +p reject 25 +r cypher BvAr5smoF6HJo0At4ACcvg7pLWE E+56U0MxEVyOMS5g2aFSgiaYcW4 2020-04-19 20:20:09 136.243.147.28 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=561 +p reject 1-65535 +r pisaco Bv07cAWhdDWX7WsKDkJOqn83Qn0 OiKKLgtSw/lY1sPEb7ruwg8JkZ4 2020-04-20 06:57:09 144.202.51.172 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=2140 +p reject 1-65535 +r 1blupowered BwIppMws/7JOtmcpin216NEetwE 2+McYgAE81OA67io1uSKohGEND0 2020-04-20 12:15:32 178.254.36.73 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=76300 +p reject 1-65535 +r thorgodofhunger BwQGL7mlpWWTYaC49CuItkGaG0Q FvMhzr+JkeYEmNTtia2yEdFqqlg 2020-04-20 10:49:00 94.130.10.251 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=195 +p reject 1-65535 +r pr1v4cyple4s3 Bw8QJuZa1vXl3d1gSJfamIV8474 Tk4QbEhkh/a+ShR6zleWRlQuERI 2020-04-20 02:39:54 93.71.133.31 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=160 +p reject 1-65535 +r LaTlayuda BxKIshgnEeUoQkgTcEjg+7+zYjM 9N+0M9HiFwPsD3k4yQIeN8Fty7A 2020-04-19 22:02:04 91.121.147.65 9001 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=175 +p reject 1-65535 +r StreamsofLifeSpa Bx3AEE98YwEj4hbbpnQXZEMMZzA aofEwv7Z3+XjeBtqze/+/IlR2Dc 2020-04-20 08:06:54 51.83.237.59 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7340 +p reject 1-65535 +r 69cd8fad5fe7 By2+n9w2oc9j6r46J8GWru2XOGo MpgtYDBY6UVcJDgnewtdrSKsOXo 2020-04-20 08:12:51 51.81.254.20 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11400 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r jaures B0WFewYze380NjVgiXWXKp7BSQE OlluUPZdyKgkPWanKNaH1BXfTbQ 2020-04-19 23:15:08 193.234.15.56 443 80 +a [2a00:1c20:4089:1234:cd49:b58a:9ebe:67ec]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7770 +p reject 1-65535 +r snap277 B0wU3d+4s76S1O+qTqPbDNK/0Ko nM2aIuiGu2e5SozYSx7bfYRo8e0 2020-04-20 12:22:18 90.49.107.61 42835 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r snap277 B3ZsQ7tMsRFot23FNt60vRfibh8 unO0UYq7akOJq41c7bB+bYscMr4 2020-04-19 22:31:28 93.41.239.209 37343 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2550 +p reject 1-65535 +r snap278 B3g0oCVhRGcjEpYxRFWWZDjzMhU zG94cJvbfE5b4l4or6ybEFVqNpw 2020-04-19 19:57:50 83.251.221.54 36595 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1260 +p reject 1-65535 +r SingularET B5BaDYrRwTTTA2hyFAsdset2F3I Fgi2UBg6+DzLWrI4cwnlHWczCf4 2020-04-20 09:33:46 185.212.149.111 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3100 +p reject 1-65535 +r mistersixt2 B54RfguAhIRkbKdxX1L2/8gx748 +TD7mogU+bztKtXSZUOcbgnXWN4 2020-04-20 04:03:32 85.10.203.71 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=217 +p reject 1-65535 +r birdyExit B6imYWS4dSqeBtRKq2IZ2J1sEPY 63nsvy4zcS6sG45vOjazAdQC9MQ 2020-04-19 20:11:10 45.76.115.159 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=39 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r homeplanet B7j8W2ZxnDVfq/hLT14BMeEn3wE PeJS/ENqaGKi0PYgvjuXycAsuLc 2020-04-20 10:23:25 85.91.153.163 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r WolfClay B8PrvkHfn+hVHfaWQv66cOlU3A8 A9u2NC2lvPNHVx8LkvXjyW2gl14 2020-04-20 03:10:04 185.177.151.42 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4940 +p reject 1-65535 +r MooTheCow B8U21zKFDjq7tRF2+8+eefwsbno g2YDXtOLM84Me0ZNoiEKnqbc2P4 2020-04-20 01:13:59 93.228.163.64 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=518 +p reject 1-65535 +r Pansy B8fP45WMgD+RNzDZgM4kCU17wqE 8K5+B1FF5n2qwHjyzJIYXQbz0dQ 2020-04-19 19:49:50 147.87.116.196 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=83200 +p reject 1-65535 +r tdz B8g2flt9F4uJlXhXi/wRH7Td8uo N8CL9NRFM/FmrwWff6uoUaQJ9U0 2020-04-20 06:44:29 51.15.85.13 3158 3159 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120 +p reject 1-65535 +r Casper03 B81HbZzBNsIHZGS4Ob8XaNFu3BU JpX3hajTo1AcaoeOn5TzwlmcPjQ 2020-04-19 21:16:52 109.238.2.40 995 110 +a [2a00:c70:1:109:238:2:40:bad]:995 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2680 +p reject 1-65535 +r dedicated2trump B830uEF4ZcyNRfYWFdeDEcGPu/A IEBQtW7gvusCEq45wHk3vD4wlpk 2020-04-20 04:09:58 205.185.114.206 443 9030 +a [2605:6400:20:7ca:657b:598:6942:c737]:9001 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3110 +p reject 25,465,587,6660-6667,6697 +r Unnamed B/UJbhgjrXN+dQfeNTO18WtZTXQ 1honPpjt24UPgeg8tEjyEmnaKMk 2020-04-20 10:30:40 104.244.73.178 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11400 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r LiCi01 B/nxO8s+H2EX+yEZBRJ69B5y4Ic EA1lTNBuGB+6OSj/2sxoFWIYFQE 2020-04-20 01:04:24 216.150.65.94 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1360 +p reject 1-65535 +r AEtherC0r3 CAu/mxRFSXb96tGtYgoEOI9aIfg 5HwVxmkA9Dx/XCFidvHiSALAr/g 2020-04-20 04:43:08 83.212.102.114 29950 25751 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1960 +p reject 1-65535 +r TheGreatKing CCTXx/sRfVxqwBWB/XmOZww3yAQ 4/LhpqCc+D0gpGLnvp1q1UAKNHI 2020-04-20 12:26:24 80.66.135.123 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6210 +p reject 1-65535 +r TorScale CCX9uWrpkgN7b9I8DcSvtqHTgEs HFgSS1ouSFJ9tcDlVwzv6ddHYN4 2020-04-20 09:37:25 51.15.86.162 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=66000 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r StrangeLady CDC9OuTrEZTTAiyZXfmbzP8WtsE cK3NIPsBqhPX5isYkGtARh1hXBA 2020-04-20 11:24:49 79.141.160.40 9011 0 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=680 +p reject 1-65535 +r psamathi CDM0paK54S72BvbXZFsLEdPefzU 6AS21p4dMgNaIwmMoaNuf2LUqmc 2020-04-20 04:33:42 67.205.177.119 443 80 +s Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r pengy CDlMSHPIpxvp9TWT+bStaUv825A PA1VNxs2CEMWfc8SU7IG9sCVxE4 2020-04-19 19:23:44 185.56.171.94 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3550 +p accept 21,23,80,443,3389,5222,6660-6667,6697,8080,8443 +r NAKAM CDxSBRFA24r3cL1Ax8iIPv/0yvM Ft4xU+xBIa8qiOn5C0MzIc5r1m4 2020-04-20 03:54:02 212.227.165.251 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2420 +p reject 1-65535 +r Unnamed CECZCfRkc5Qvcz4Sa3jynTiNYPU G8IouS32w6qaQ13RG/7JtftRAAg 2020-04-20 10:36:22 144.172.71.182 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15300 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r GreetingsFromNL033 CEkqntGu9ixW14OkLoJ7wiApKxk rZqGioYwive8KssLoVlnpO4VurA 2020-04-20 00:41:22 51.15.90.174 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=11400 +p reject 1-65535 +r OTO CGArrLYEE58HyVMN/CQ0VMSLl0k lOTvS3fL4hkTUCczlr6krWx7qAE 2020-04-19 20:55:14 80.143.158.22 7777 7788 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4090 +p reject 1-65535 +r MYCROFTsOtherChild CGH0lm4ZnAup2x2QTbS8hDUI8Sw eBfRLjwd2OAbf5i/XzqJ7w43VqM 2020-04-20 05:52:18 98.193.69.56 32323 32326 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=158 +p reject 1-65535 +r snap277 CGN7rYfR4EcqEGUYON/BzJXDMis lpS/e6WTpAHlKP9w1GCVHzp/C6o 2020-04-20 01:24:45 193.169.81.146 34743 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1710 +p reject 1-65535 +r Belgarath4TOR1 CGnqUDN3xwJmm8dd16WQlGWN+gg jVmU/jIK1jG1JoDpZ9k4kNM4aks 2020-04-20 04:07:52 83.253.14.119 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3490 +p reject 1-65535 +r tor4freeworld CHODWym1H1Bxj4XWIyRugHSgG+8 qchjTxkrskV5i8dfj9S8R0b55p8 2020-04-20 04:00:00 144.217.16.175 9001 0 +s Fast Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8020 +p reject 1-65535 +r Grexit CHQGqBdw+zSWc08+YpuKeiB8usM r9NK/+96ii7q4nkEgSO3r3ZY7sk 2020-04-20 11:28:31 185.4.135.135 636 990 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24400 +p accept 80,443,554,873,1194,1723,1755,3690,5228,8082,8232-8233,8332-8333,11371,19294,50002 +r 8lyWARGTU4wesrfy8i CIJECHQDSvvi+/FkY6KQ8yeOJPc qkCmxXJtOzRS+IJSOy3cUICjdGg 2020-04-20 08:31:33 176.58.121.159 9001 9030 +a [2a01:7e00::f03c:91ff:fe70:e0b8]:9099 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=358 +p reject 1-65535 +r Unnamed CIpiN+7Yft6w4eOtCkpBn5Y/B4c MIKKTb4EUbBSRLAHasI4r6hz+eM 2020-04-19 21:06:47 176.9.40.67 9001 0 +a [2a01:4f8:173:402:267c:d656:b84c:abd6]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=100000 +p reject 1-65535 +r 0xAligaTOR CI011j6s+T+jo8ldD+KLXSakGNI OEIfs+HMmzYddCVgTQbRjtV5dp4 2020-04-20 10:23:02 37.24.226.249 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p reject 1-65535 +r enfewuzeh CMbu12yJOLc4MWo0qikjxDLsBbE heaze12Yl4iYepm0IbLkzVgqbps 2020-04-20 02:52:41 92.219.124.31 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=798 +p reject 1-65535 +r AutonomyCube CMpFlgiHOAXriMzV7wF1JHrWYRg aZ6mVafy+K/XTGuS7xSqGQhsBvQ 2020-04-20 04:36:46 213.215.202.234 8151 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5660 +p reject 1-65535 +r DigiGesTor4e4 CM49v9qifbbARKZ3r2jXI1wq/IU kYAeu6L09YUuVPVmBDtzZePwcbY 2020-04-20 07:37:05 195.176.3.20 8443 8080 +a [2001:620:20d0::20]:8443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r ivitor COlTCzmfenGTYGZYazGmaHcGZFg hssd8I3XQxBCiXL9aeoD3eknqI4 2020-04-19 21:34:20 84.83.117.215 110 143 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=910 +p reject 1-65535 +r FalkensteinTor01 CPBqDdr6v5om/LLjkqFDX54EghY UExRwGQtIqbGUqfHxo+FigkLN90 2020-04-19 19:26:31 195.201.168.111 9001 0 +a [2a01:4f8:13a:1082::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=71000 +p reject 1-65535 +r neartAurora CPRpK2CGJkD2iLhoJrZvMN6nq3M FeteMqhpjtcsw7NftsfxkZuTfvg 2020-04-19 23:57:51 51.15.182.104 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22300 +p reject 1-65535 +r relay CQkv8SCp/Z3BrqyJm1w8/sumwnk NyW9MUFX5u3ub6P9N5wQY3eTQIw 2020-04-20 00:43:25 23.157.160.138 443 9001 +a [2602:fe2e:1:9:a4:fdff:fea2:d22d]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12100 +p reject 1-65535 +r RadioMineOver CQ2cFtwaGpQC55ReOJ3URbsjm+0 saxRx32OyoIhY8Dke2NjS4mtIwI 2020-04-20 06:44:32 199.247.21.157 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=591 +p reject 1-65535 +r vampire CRhyAsDXMnk+KuJV2n006O0E34s bX2lmG5Ott4tX3t0goyTQKzazUg 2020-04-20 12:04:09 185.132.133.29 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r Merlin CRuzjYpkEBSmUqNqiCep4w7uqII JrILSLPwGcGIvNFMJg3fOm9+Ga4 2020-04-20 08:14:54 54.37.16.241 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20800 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Unnamed CSrkR9zN+Dgs8NtuOPMZYanHqq4 39NfPrMaAi2xsQap9cfIYYRRlEc 2020-04-20 12:17:55 199.195.252.245 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r SevenLayers CTW6kXj547UMmd1T9yOGX8Ikz6g /phfdjxfiaX/IIo88RSVRWe1WmY 2020-04-19 20:56:08 192.124.250.83 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16900 +p reject 1-65535 +r SarDust CU6NAgh/1sUWKU7hklfYt4A49Bc DI0cQQ/oQyUM23VT5YMZq9MbG9g 2020-04-20 09:28:07 185.205.210.133 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2600 +p reject 1-65535 +r hunter CVzEW/MbYNpH7TR/kkYUdfXIGR8 v9f8GUJZqZ7UO97SYkhrBAfsu1A 2020-04-20 10:36:10 137.226.59.108 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r RecycledElectrons CWTu7zrvhEL1EPimE3Ble8bg4Jg Kh2qku+Hl9YE67wCHiDuuLcd4cs 2020-04-19 20:36:19 95.215.44.167 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26200 +p reject 1-65535 +r panickychess CWyd502dwu+EWlnZYvMDBUrSCAA ZUvWgpCGIolR7EMM7QTt8w6ntVY 2020-04-20 12:36:15 198.199.96.39 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=1900 +p reject 1-65535 +r BananaBoat44 CW3MC+i56hH6fgFG0MUHkCvaeZI r5XiRynAB4dr3IVpaMcWbvOeMCo 2020-04-20 10:17:59 75.110.46.136 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=838 +p reject 1-65535 +r snap277 CXQ571WMtnCUAaUFcUpYm1N6HZc wuD96piwvhwYxdnZ7Qm5llFGfqc 2020-04-20 12:37:19 91.160.36.33 45689 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5280 +p reject 1-65535 +r snap277 CXtQgCZPPAyoozb4AzfY4gJrKs0 S+Z6zrkkjvCll089E1sb/o5V7Os 2020-04-20 04:18:57 189.4.104.111 34141 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=239 +p reject 1-65535 +r PsychiCToRRelay CYkHNJwRkMStrbRIK1H1yfx4nHg bYgfXMe+Q+PKEq+/6FYaP4TWJDo 2020-04-20 10:11:49 80.127.151.162 9001 9030 +a [2001:980:a167:1620::3]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41500 +p reject 1-65535 +r tourette CY2c91aNJ6goj6S7OBmpmRMxXW4 /vPntadXbXUKnrcOpBPDJZKk+YM 2020-04-20 00:33:09 217.224.230.67 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=166 +p reject 1-65535 +r Anankke CZDg9PLBJ73am2cmQA+sB39sg7A ylyzyts4XA+RoToTzcOGBKSFgOI 2020-04-20 07:59:35 38.39.233.117 14514 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8130 +p accept 20-21,43,53,79-81,83,85-86,88,90,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1043,1103,1113,1194,1220,1293,1500,1533,1677,1723,1755,1863,1883,2082-2083,2086-2087,2095-2096,2102-2104,3690,4070,4321,4643,5004,5050,5190,5222-5223,5228,5287,5675,6880,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8502,8601-8602,8888,9418,11371,19294,19638,50002,64738 +r Unnamed CaHana0mpOxBEcqMRxucV2aJP4Y ZkuLUJ6ff/jX+41kFpwUhDNM/wA 2020-04-20 11:40:54 142.44.156.159 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Deepsky CacOOW3pP1TUVBu7Dsjisjdh808 D0apXeJPiJGhhzgyguf8emG/fO8 2020-04-20 09:33:33 77.68.88.20 443 9030 +a [2a00:da00:1800:81b1::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=100000 +p reject 1-65535 +r bahabugger CbF9HKDoXZrDTYuqf6rb4I73iR0 K/k/HLUu1I0vBkEzptVSSNgwXPY 2020-04-20 12:31:51 27.255.77.69 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6 +p reject 1-65535 +r OONITestHelper CcKqMSrg3d9MXlfLG+JBWKVAhZA wZxs8k/lyTkDqAjTV21PTRBYU9g 2020-04-19 18:59:29 37.218.242.217 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5470 +p reject 1-65535 +r cadory CdBSS2gEzjfbVZGmkAUadfhM5h4 vgXzmjTvmp9KbQF6OdRYmuHlOgo 2020-04-20 02:23:07 83.135.78.14 19002 4445 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=421 +p reject 1-65535 +r snap277 CdO4qZ+38B43gv8FCrfaFIhMTy8 q27cyOo2NEnZM61CxnxCjpq+4DI 2020-04-20 06:46:10 82.193.100.148 39233 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1900 +p reject 1-65535 +r snap277 Cdc92456AucE12S7z62+AJAZo00 kwTtJ+grFf8DSCKMnLAu4vqLO7U 2020-04-20 09:36:05 85.2.90.164 32999 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r Taliban Cdjvx8IEjWDktyQ5aO7RLTe9Bqo 1T2Jcw3K9HEOPdTDkNvTdfIpSf8 2020-04-20 09:36:11 5.230.23.199 9001 0 +a [2a00:12d8:7001::6c58:f35d]:9001 +s Fast Running Stable Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=560 +p reject 1-65535 +r spercalifragilistic CeMt+l7B3bBrySbGYXxCBDir11A mPTzHxs7LsHc4m0s6lzDMpNGNHA 2020-04-20 05:00:15 194.167.46.177 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14600 +p reject 1-65535 +r Unnamed CeQXuBWDTDdvkqA4sDGIlaE5Tns GtHXsT7E8KGqHWiGj33EAL0VYuo 2020-04-20 07:33:18 108.160.176.91 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11200 +p reject 1-65535 +r BASIS CfMGdFLY0dr9M9BSSkHb9SldNHI jBfnysPh3V6zYWT4KzxJxYgTtHc 2020-04-20 03:08:24 45.125.65.118 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p accept 20-23,43,53,79-81,88,110,143,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Hermes CfZOAPNMiPYEFj8k03vq+SRXAuo vWCGOgYP+cgX3YqruKHNI7oC1k4 2020-04-19 19:59:47 108.39.229.147 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8450 +p reject 1-65535 +r Unnamed CfnkAK5RALFdkhIB5yY3tpC5G0c 0kNcAtycJBx4Bgs/i9fDZq9bYq4 2020-04-20 10:31:21 111.90.145.126 21989 4110 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=207 +p reject 1-65535 +r El CgBx6I+HbkSx3OhI/a0RXmWVTKo 4eXT0XPFUk9BiJcjV0i8D3cxtgo 2020-04-20 06:24:57 179.25.158.252 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=66 +p reject 1-65535 +r portnoy CgwB3QBE5wMY2ePaXxJaCQacV8E O8QfUGCirVzeMOzrgrMsJLKHb6U 2020-04-20 05:40:22 185.198.26.149 9001 0 +a [2a04:bdc7:100:16::ab2d]:9040 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5840 +p reject 1-65535 +r snap277 ChLoNBXO+HlqBanRNZ5cftNWgL4 wom74fvXilQInKo8chuqq0mwT4A 2020-04-19 22:12:16 80.98.96.182 43433 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1330 +p reject 1-65535 +r pusith CheNMCk28gmvPad8zE48TV2+Eek u6w2zJq4GImPpyX3G/CD+Hc5N9U 2020-04-20 02:07:29 178.63.172.14 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r RoundRobin13 Ch8yKkAyppZLc/T2DVghuZuLHeE J1C2wUQ4RJBIoBCprihcoEzzFC0 2020-04-20 00:03:09 91.106.131.90 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=410 +p reject 1-65535 +r Unnamed CiFRwEkrihf9A+1AWYYnpwJ645s gfjFFrz8lGAzN1Y8pqjh3bpxFiM 2020-04-20 00:21:14 63.227.116.162 443 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2100 +p reject 1-65535 +r blinkybox Ck7RP1Y0EIfXkBjAU5DPKik6/c8 4QUYw5zSdgeG2CcCJwURSNr9ZaE 2020-04-20 06:24:36 128.199.149.82 443 0 +s Exit Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1400 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r niftyguard19 Ck7Ux0AgdAqQTzqZNgMLekxhcLs Q3YRdwm1MitkLMtpZlz78BTUpio 2020-04-20 12:45:01 185.220.101.228 1228 2228 +a [2a0b:f4c2:2::228]:1228 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p accept 80,443 +r FlashEel ClAA5f8pd+DSNrn1tHWQ2IiElN8 j6CzWDr96iaBWpRNxlPxur7cnXE 2020-04-20 05:00:44 130.61.125.241 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6400 +p reject 1-65535 +r niftyDinosaur ClaYW73bX9H6qMkTPHEVlhqmw3A jEavlhGHnPCLtU3xrlcLIrASVGk 2020-04-20 09:10:54 178.17.171.225 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21500 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Faultycode CliwXUA6JmPrVhJPjHqrDKv6oRU qglZl2WlX7ViY9N6W6rqbUhSvS8 2020-04-20 02:03:25 85.209.50.72 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4190 +p reject 1-65535 +r Sturmvogel Clks6KU67N+RMNNyRcZGCyOHKN8 JKERyc3IPi4VKXcwMcdc41ZkhDQ 2020-04-19 21:04:12 176.15.224.56 443 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4440 +p reject 1-65535 +r arighttosurf CmABseOp9TZb08KYi9abuOrXEok kv4UZ0plNTB5UL4YNKBiNOuxZyE 2020-04-20 09:28:28 82.161.50.30 9002 9031 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p reject 1-65535 +r cameloid125 CmPblO9eJEbToTA86g65x6jsdhU iZ5SVwL1E5XU3kHJuvQE1uWU1FU 2020-04-20 02:37:07 159.89.205.184 2443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=799 +p reject 1-65535 +r FalkensteinTor02 CnIIuJA90/9c36IYo4I69JjOac4 5Mqh6Spg7k3RsuypKRDYpItBuUg 2020-04-19 19:19:56 5.9.44.29 9001 0 +a [2a01:4f8:161:32c7::2]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=48000 +p reject 1-65535 +r cbd98f06c5b7 Cou0ona7CxATNxSQgPtQsC5jhTM aIw92ox008Bf0id+OmhU75HnDxE 2020-04-20 09:03:24 51.81.254.24 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13600 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r torpedo Cpdxcj2N4uAVcYMD3Mi82Ir8Ygo s9ytVDC0nQQ6y3550fKSQ8xXnXg 2020-04-19 20:39:28 81.221.212.72 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=322 +p reject 1-65535 +r torwell1984 CpqiwFJvHJF0YlbZQEneVKdwTEg TN9d0KEb5rOrmBqpECUNAi+qTk0 2020-04-20 09:06:38 146.115.133.179 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=151 +p reject 1-65535 +r fiedlerRelay07 CqOfQysud4ysBvgNpEl1OFNHzdk F5H24yRSrjoETGXhQr8HkgC5fkE 2020-04-20 10:07:50 185.233.107.110 9001 0 +a [2a03:4000:24:829::2]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3600 +p reject 1-65535 +r merrall CrBfxjz5rHBwwdibsaEYnDGeGpI hQyP6v1Ge6OCSl2uJz5Sd8DZpYI 2020-04-20 03:36:11 185.227.82.56 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6790 +p reject 1-65535 +r relay6524284254271 CrtjzICd6JoKcam6h1HEq1wtw8M y5nKgRRfW0sAWFwabsuMUnpcDG0 2020-04-20 03:02:29 185.255.132.94 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r Unnamed Cr02L3wM40weHWBqnYM3/YwP0SA 4SaUwqYAGs9dO5Qk9TfuJRm0QBo 2020-04-19 19:46:18 88.198.61.241 32273 2718 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1270 +p reject 1-65535 +r kalashnikov Cr4xUX/bkYL65ASCHkMsh09dHQU HE8IyIBTb6PhbYRTbOvTLC0KFMk 2020-04-19 22:30:19 31.13.195.39 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10200 +p accept 20-23,79-81,88,443,8000,8008,8080,8888 +r clicker1 CsTE2Lyo2nuua+P+qHRC5yQ1PL8 WghbolGLyi8UE0diHa+sOargxwc 2020-04-20 10:09:36 94.16.116.137 443 80 +a [2a03:4000:29:91:2549:9:f370:a1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3190 +p reject 1-65535 +r ritirong CtOxat8+7T5ZYvqUTNUBNS55CBQ GVwSTQxhZdfMKStubDz6/ix5N0U 2020-04-20 02:27:41 46.165.250.224 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p reject 1-65535 +r riuriu CtXcPEfK02LlaC9/vV4uKLLUmJk y5bPJQGqp1m1JnvycjiMWHnQ7ds 2020-04-20 10:23:41 37.187.16.175 8090 8091 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5750 +p reject 1-65535 +r snap277 CtrTWy3kfKxGp+YkPPiPtmbNggc uy5tcKoLHhak7YzSqifb2r00/Rc 2020-04-20 10:57:20 2.7.229.242 41969 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2140 +p reject 1-65535 +r Unnamed CvkChdaz7MUqv6PLMUBN9vr5MTQ Sg1IohajDvQU1gly7CKFI42BVeM 2020-04-20 07:15:17 37.191.198.135 8443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10000 +p reject 1-65535 +r ieditedtheconfig CwecfBqMpLRGVMbpmd2AsYS+N30 /UfCz7fC2yKYZ59GP0PdB9QnRe8 2020-04-20 00:00:00 134.209.83.57 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r StarAppsMR01 Cxm7/cSYzOojAnsde9jiASG5XmA bA7yRRGk0z9/KtugsHTN1zJqsVs 2020-04-19 19:17:37 185.181.160.216 9001 9030 +a [2001:1600:4:8:f816:3eff:fe0d:b974]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=74800 +p reject 1-65535 +r colosimo CyURC6NHOm3ASrWKOg1eTWkioOA dQcoaSS/+rHLnviiimbZDUIhAzw 2020-04-20 08:55:42 109.236.90.209 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=98000 +p accept 20-21,43,79,81,88,194,543-544,563,706,749,873,902-904,981,1194,1220,1293,1500,1723,1863,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8087-8088,8443,8888,9418,9999-10000,19638 +r Unnamed CyhfUnlixNUKjNVU7aQoq+TVwFQ V19mB71GPpRIgBEIKk/5Bo7cuvg 2020-04-20 08:31:56 218.110.147.186 443 80 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r voxstueckscheisse CyjHKoLUzgFgFtq5jQd8mX9SSqE v77xhcBQZ7Mljr+hvhpndtGakKw 2020-04-20 07:06:37 195.123.227.107 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3190 +p reject 1-65535 +r OnionLover227 CzLYARN+brwdzAE1GidOGDnPPnQ +zOU6clX6uU6WBUObgpj/WjaVHg 2020-04-20 10:09:43 84.197.135.154 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1490 +p reject 1-65535 +r ozora CzQ824k0cp3JGxyte9LQX3BekOA APXVWx/31yq0YT9hHtxL2zIphME 2020-04-20 03:23:48 89.40.181.107 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8200 +p reject 1-65535 +r niftyboglemming CzyMKysaHKRCm5ZJ9TO+tNdHCuo mJ44qicn6iJ0m7phF6MbmfEf3S4 2020-04-20 04:13:58 185.220.101.133 1133 2133 +a [2a0b:f4c2:1::133]:1133 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49100 +p reject 22,25 +r Ranlvor C0U3WizoBl6KZJ1SzDXznRKHRag Z8V95wkOUpXGrw5qX2Y7JxzeJ1M 2020-04-20 11:45:53 95.216.27.105 9001 9030 +a [2a01:4f9:2a:1b96:2::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6930 +p reject 1-65535 +r TORro C1VZQNN9yElyiEHAspAHThob3Kg sXuZhC+xJ42M+JkFc0VFwafG+UI 2020-04-20 03:46:05 188.138.75.101 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=67400 +p reject 1-65535 +r ULayerSwartz C1ipXlOf+mwFwBD1wdo1+4A446g dXDxn9tM5qBGs3PztJ4kuJyp4Lk 2020-04-19 19:33:43 199.195.250.184 443 80 +a [2605:6400:10:4f7:fbbd:d07f:bbb6:4da7]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r CalyxInstitute08 C15ecP/qnH+f/RO44WkWpgjz6es XEFYPFnZTC/bqQ3HB3WocXoP9wI 2020-04-20 02:08:42 162.247.74.216 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r itcanhappenhere C4I1AtNOFZh79qirRVe2ABALDsU riB/wJexgaNpCZkQQgxYpNQnm8c 2020-04-19 21:11:01 82.221.141.96 9001 0 +s Exit Running V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5 +p reject 25,465,587 +r Fission04 C4Qctw+e0f0DIsK6LrDYBCDYfPo v7oipQ5jf1EPCWMqhb1vlFs2lHg 2020-04-19 19:25:49 149.56.94.219 443 80 +a [2001:470:b14a::7]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12500 +p reject 1-65535 +r tdxchg C6MKPRG3P5XRRHzJs1vl8GgdWhw sIlHpLEJQNLSBbjTxIKYn9grdDQ 2020-04-20 09:39:04 5.199.133.193 9001 0 +a [2001:4ba0:fffa:5d::93]:9001 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45 +p reject 1-65535 +r Albis C63ZUQRAyb86co8stjCDb/mBQrI S0idQgqaGBCfxlacSRIchDhrYCo 2020-04-19 21:47:13 138.59.18.106 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=893 +p reject 1-65535 +r makhno C77pDIFPnf0hNYkMog/NN8aVumQ 4zHQaOCZWd+EjNI92wf9z5Bs+Eg 2020-04-20 06:28:44 209.222.4.174 443 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=716 +p reject 1-65535 +r bullman C8MUKByDFn8kx8/NaN4GmwKpI0U +j0MQA5eN6zXBVjrz4thlVnFFhQ 2020-04-20 00:22:28 88.86.102.163 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r artikel5ev1 C8i6Msw8sPWY4MknePfAlG37zpE 2R3hE7J/iGibjAjQ2SGjAals+hk 2020-04-19 20:23:41 87.118.116.90 443 9030 +a [2001:1b60:3:221:3132:102:0:1]:443 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10200 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r bigdaddyny C8zzZMTuczi26SDmPpUZIshfkfc t5W6Dkh3la+KMkAKdIMftB2yosM 2020-04-20 05:17:40 74.111.25.177 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8780 +p reject 1-65535 +r quark C9dExGdP+2DNHypuh3sC975FWLU zbBLTEl89xNxxtiP/GHb6fcNNmc 2020-04-19 22:52:23 178.63.68.78 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23 +p reject 1-65535 +r 0x766c6164 C/YG3oNtTHlMr/fKeHIPjIdmCZg eLZzq9OmRQhH1s1au/1lEyX9cpI 2020-04-19 23:19:32 5.14.156.124 9002 9031 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1740 +p reject 1-65535 +r armik1 DAOIvFUteskD9JOQpAJE/T//RKI wQnKxi2ai6Y7v5xw/BsIcgwpllM 2020-04-19 23:02:30 95.24.136.153 443 0 +a [2a03:e2c0:bd9::2]:443 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p reject 1-65535 +r libel DAOfNcLkDctxzYoH6Xx/13h9QtY c8RjJS2D3JbqD+tYLYyJQHACu54 2020-04-19 23:52:49 5.200.21.144 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17400 +p reject 1-65535 +r 5GRelay DAlEXQK0n6Jr/YgdZV1sjKCiVyA bEGwfdwVtnFoGNIBRnSqaWNk41o 2020-04-20 00:50:38 3.17.117.250 13275 0 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9 +p reject 1-65535 +r BassBeatsMelody DCXRzoO3VMSlocP8HCHiVa7F12Q anTvx5Hnc4OQcNWPqs4WwckDHtk 2020-04-20 11:00:08 185.82.203.209 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4840 +p reject 1-65535 +r torrelay182365 DCeBAR1hzLAJRZtRFY2mMouj2zs SWHpitK54Hw+inMAiVh7Pblx9+E 2020-04-19 22:45:28 149.56.228.36 9002 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6840 +p reject 1-65535 +r tryingOut DDPKgp2kGMmyapOIlUc7x5PPjOQ M7cUUWu0NCaeWthLpqLIytqQh1w 2020-04-20 01:57:19 84.30.75.164 443 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46 +p reject 1-65535 +r rem023 DDWZB57yHEmUrW3ekfcqSPFuipg EAh/cXa014f83Iz0w/i49Q64JyY 2020-04-19 21:15:27 217.78.28.37 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=260 +p reject 1-65535 +r HORUS1 DD1eGePHW1Bcis0m+J3KLflwVT4 226ElkiLyWGznh55rz27DiBYGM8 2020-04-20 08:20:51 95.217.42.7 1066 1067 +a [2a01:4f9:2a:2e8d::53]:1066 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57300 +p reject 1-65535 +r Freebird32 DEdbpNOqPCibcW+VlUytYW5QxOU IfLLHy9HdHmaDVdElfHh8eMcjEA 2020-04-20 04:45:16 81.7.18.7 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14300 +p reject 1-65535 +r king DFjApW010utpb2NNeR4GfEVCWSw KZ6rgTcuP4Gtbo7rATXa7yd9rPQ 2020-04-20 05:18:29 51.89.213.87 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17400 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Halo3Valhalla DGhCzPg23gjv6gvWwUca40Y7m3E LknULT90sgKbMtsPV174ZZ2Kv8o 2020-04-19 23:02:10 23.129.64.186 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8900 +p accept 1-65535 +r comeandgo DGnaeXPE8dJvuOjczNg77BJpZFo Dq9gd+obOl9SY7r/yvRAwmf6Zug 2020-04-20 11:10:23 111.90.141.158 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1050 +p reject 1-65535 +r lamomieauguste DGylgVNAD6B36rsUdz42/WG/DXU 31TmELKRUNObL68j6C8kzpreB8s 2020-04-20 03:20:14 81.17.19.58 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 20-21,23,53,143,194,220,389,543-544,554,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,8074,8080,8082,9418,9999-10000,11371,19294,19638,50002,64738 +r aSmallRelay DG02VXY7Gjpg/EITXNYHZa/pU7o Jm/cH+QX+gYBs8G18Dq0AmE7XQo 2020-04-20 04:48:56 116.202.238.106 9001 0 +a [2a01:4f8:241:3cd4::2]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2220 +p reject 1-65535 +r anontaxi DIQztrkuLxx0Tzz75JrafL7+6/o 3Mv1r+gVFV5I1SCOuzTTNdNfV8I 2020-04-20 00:05:14 163.172.47.34 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r Animus DIin7yFqxFfL2so/Vy9/Vii+1lA JtiEbKELvgzwnDD2Cqxs+jng3I8 2020-04-20 01:22:36 195.13.50.212 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=320 +p reject 1-65535 +r doppelganger DIpJ/mK3x97WS3xqlB71JA5PP3Q iz90yW71iUcqMomgR/3+X3l9Z4o 2020-04-20 12:19:16 95.217.5.88 9101 0 +a [2a01:4f9:c010:54f8::1]:9101 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9000 +p reject 1-65535 +r pzodisoe3 DJCnfEtPW4zCmUjjqsV7l0Rw9Po 0wllrR1R7FYLJx9RpiSpH0c6Who 2020-04-20 09:07:54 37.59.36.94 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=183 +p reject 1-65535 +r torstreiktnet DJNVnW1+lbQVYUJDRbCxdvvmbwA qPtn45g9rGO01SJYPwHs+xSr00Q 2020-04-20 11:33:15 78.47.226.12 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9700 +p reject 1-65535 +r nsaPwned DJs8aGQhxajCC6oNc2nNkp9DoXQ hREF8nK0G9BzNgCN8An+4rf+qWs 2020-04-20 04:17:20 80.244.243.158 1337 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2360 +p reject 1-65535 +r mgvx DK//5HDoivFW1nULYWmVs3kPJO8 blaIR4uYLR9Q0HLzzo/1b4Y35zc 2020-04-20 07:29:42 86.123.52.188 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=599 +p reject 1-65535 +r 998ff4256e18c5cb DLQNEhd8urq4dlK7/ACn5vRDTT4 p/YqRuNbGaRAZfQJXm2QXisJ9ls 2020-04-20 03:54:42 185.41.154.232 9001 9030 +a [2a03:75c0:27:a9c2::1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r LunarMerlin DMGOQuXsrf52hizi63GJ76F6Ef0 b3qR8mctRIwI7q3F+mYq+5hSto4 2020-04-20 01:21:31 78.69.12.229 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36000 +p reject 1-65535 +r yeicob DNYjRtG1yxZI3akH+Biw3+p1Log eSOFtvE5S0aAtIafjiXgwJg+Pls 2020-04-20 07:12:05 51.161.33.20 443 0 +a [2607:5300:205:200::1abb]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9440 +p reject 1-65535 +r UnivUtah3 DN1g5AFevyw7XTKiucyP5smKXDM 43o36ABitU1t8Couke2XnDLPPPE 2020-04-20 05:32:34 155.98.5.6 9100 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3100 +p reject 1-65535 +r Route66 DOO3Pd/5L/ZlOpx/kAOjK7bCNk0 k6Na0ssUD1jjErvkjaVuoUUjc1A 2020-04-20 07:07:50 88.91.112.118 80 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5220 +p reject 1-65535 +r snap277 DOiCyw3pmwHVWPUZXKs2vzEdkLw TFoWKEUnrOj3t2LNuZm+WK406aM 2020-04-20 12:13:23 76.31.163.117 43617 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=491 +p reject 1-65535 +r torpidsFRonline4 DPjz5lkPRdULcPL32mYF7KbNQI8 XMOm/zMrC2BNvbnZti3Go3xGBq4 2020-04-20 06:06:18 163.172.25.118 22 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23500 +p reject 1-65535 +r mef DPw8AT48SVh4Q3lhBsXjrQk/Vf4 t6xlpTcTO9kI19B/g52fQ1GLFzs 2020-04-20 11:44:32 94.23.248.158 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=74 +p reject 1-65535 +r tornadonode DQVK9zNOffO0tLg4ww1iG/EXNh4 Zcid/QCjUUBI+KjTfJyoiPsyEgA 2020-04-20 02:11:34 79.218.173.165 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=324 +p reject 1-65535 +r sellerie DRLY5y3tme4xuwxXeJNSvtDO7v8 QAU+wunZ8TXmWNfim84tsvUmfNc 2020-04-19 20:17:12 109.70.100.10 443 80 +a [2a03:e600:100::a]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=79200 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r locke DRP++xUJAxAK8vnlKlhS7BBagX4 21zp7wFxvaJnHjzLTYmB1Hr2qdw 2020-04-19 23:42:23 46.188.6.64 9002 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7140 +p reject 1-65535 +r oniongroundrr DSQqSqDWFlVFjuFaVEGuyevI1zU akkAS594pBBJYYT6jvleBe9pYJk 2020-04-20 09:14:55 184.54.75.212 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2300 +p reject 1-65535 +r DigiGesTor4e3 DS3iQq2g7XcyXjruOp2MXNB8LPM KhTcCJVYQ4y9BAwk61FydluB9RU 2020-04-20 07:34:08 195.176.3.20 443 80 +a [2001:620:20d0::20]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r Unnamed DTWkV74DBPJlYxDJDHdGlaN3Oms 8WhuXZZVve/2Ax2FQ5pmdYgpVxg 2020-04-20 06:37:36 51.79.86.180 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 25,119,135-139,445,1214,4661-4666,6346-6429,6699,6881-6999 +r cavative DUObCCMD2Fz0CIthMutQUaL3ISI JUqooiHfkFK2cMAGHKvNOLgHMCM 2020-04-19 22:58:23 139.59.85.24 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=628 +p reject 1-65535 +r Dampfsonderzug DUoa5tlPXvKfe30V2JPVDBf0+5Y UEHUxqC2Y3ioQ7sp3d3FwPYppqs 2020-04-20 06:29:46 78.47.159.96 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=20000 +p reject 1-65535 +r RWCrelay DWF0xxIb6/xXd3UPmdte2l1AzaQ MJFqs2VinQJQv58B3fxWZ4koYqQ 2020-04-19 21:15:08 185.230.125.38 22409 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4 +p reject 1-65535 +r martina DW4lvYxUAXjDCe4qhMenRJY2DW4 HByx/5bL4fm6G4XpZyVUfOXIJWU 2020-04-19 22:08:45 193.234.225.62 443 80 +a [2a00:dcc0:dead:ba3e::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7330 +p reject 1-65535 +r lara DXxpVR+RhttYm98AhYMUrBNqM9o QX9zau1I3xQqhwvjn8GCBLhDnhk 2020-04-20 06:22:32 46.4.217.100 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45000 +p reject 1-65535 +r smell DXx4OBdOccmVg/YVBs+7Ut1S7MQ An8Ij+Al8e2fk2awZ0kIaBFMEqk 2020-04-20 02:03:06 137.74.153.7 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r LooseMoose DYO4pZN/aTjHTzJsIcIZWfOV6CU aNyUw6qjIHwepRq1ZsXH/SFpCwc 2020-04-20 08:05:40 206.174.115.140 9001 9020 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8 +p reject 1-65535 +r granby DYUCuNmaxcbOo219v/DH8vusDtk sL8x3bUi186wDhoYrwgNtcHEDqU 2020-04-19 23:13:33 212.69.166.122 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20400 +p reject 1-65535 +r Starlight DYh3OS8v9a2NjlvEOAh/Au+XuQQ sZ0bdt13AGt5e13wqKyf6qKUcr4 2020-04-19 23:29:04 1.43.247.217 9001 9002 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=125 +p reject 1-65535 +r notani2pnode DZn4m7uSv1VX+NP4ldshinKHEIk I5YTJSGGkr3zn+7ZQgXg2Jmdy5c 2020-04-20 06:01:43 46.105.121.228 9100 9993 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38000 +p reject 1-65535 +r avdjusko DdBO8LCBu/3jCC1OzIpj/QAi/K8 mJMUGMd8BX4cCVcw7EWabDjAw78 2020-04-20 08:16:17 141.255.161.167 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13200 +p reject 1-65535 +r Andrewlev77 DdWfmDZlFxhFLMYvMSgZ+YoURnw i4dPRgX36ZDnBnzQ4d0oiwD/2S8 2020-04-20 12:03:22 87.162.164.237 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1080 +p reject 1-65535 +r humanscent DdwZDUWmxFL2gUQIKE3ffagXUAY 63P9/awd8aV8x0rpJcd3WWxZHeo 2020-04-20 11:47:12 45.55.34.252 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=919 +p reject 1-65535 +r RelayName DihGfhDrZvfnY4r2iHc+lPPy5tc uskbpgFLo0GPtwfIq5Ck246YY94 2020-04-20 02:55:11 31.169.6.86 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=232 +p reject 1-65535 +r BringMeToLife Din0car0xjp435Qn5L42eUKk8GQ 4x+miWRpySzS+mg0rTAngIEAF5c 2020-04-19 23:01:18 96.230.76.104 80 110 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5460 +p reject 1-65535 +r Nako Di7sElpqyNXr9ds2t3aj2lUQ56A 1tmN2Gsel5SZaWK77avK88duF5k 2020-04-20 04:59:06 51.158.79.198 9001 9030 +a [2001:bc8:47a0:1807::1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p reject 1-65535 +r pcfreak DkUqMOfgV0QHFnjgoFm920aJMM0 dp+b5R+NAKjNi6qpsMMTzTDeXJA 2020-04-20 01:11:08 83.228.93.76 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 +p reject 1-65535 +r weizenbaum DlUiy09542wLsmO6vIYc/GhpKa4 jm63jPRLgWQ62HBfwQ2reea6/Jw 2020-04-20 05:17:00 62.102.148.68 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50300 +p reject 25 +r artlogic Dl1zBGblu2dbyXBMN02+fhnwYWU bM/iTdJVNKcqTBKF67M4tGm68XM 2020-04-19 21:58:18 165.227.34.240 9001 9030 +a [2604:a880:cad:d0::6805:f001]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3780 +p reject 1-65535 +r bee2 DnLpNZMIQGn3IED0+4IPpRCxnRo 634771RmM/rH2neaKI+X+7NTOms 2020-04-20 06:59:16 62.219.3.48 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2400 +p reject 119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r Kladuin Do20nVv1/K/6Qzp4/uNBeUGdHE4 QPmTvqr/x/pNBkZasx7SWn5l5gI 2020-04-20 06:23:45 51.15.228.222 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=820 +p reject 1-65535 +r k0nslNET1889 Do/UNoCDvXgXpC8+zt6G3+PDWVg Spmc7zGjZ0eJMa/8WF2es7wSqc8 2020-04-19 19:32:35 199.195.249.82 443 80 +a [2605:6400:10:163:8592:98c1:1d47:7cf8]:443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p accept 1-65535 +r HorpickSneeker DpEpz1aNSdFaCjDgyqlArhmKNUc xhxZP5uvVJ644XcD3wpQGI+yYA4 2020-04-19 23:29:39 206.40.118.229 443 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p reject 1-65535 +r ua321 DpK/ArPBGw3RgwGg3hsWSgVG428 tuxN/+JeNMImaGIxld2Jxpj7Z5E 2020-04-20 10:02:40 185.222.202.12 9002 9030 +a [2a0c:b807:8000:c93a:ff51:90ac:0:3013]:9002 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r alexandrro DqunoqQpUTazD39O4vOMzJ1HS14 rHJO94pPbOI9VaMWDYcdMPvq1tk 2020-04-20 07:39:52 95.215.46.168 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3300 +p reject 1-65535 +r OmegaRelay2 Dq0AAOAbBzroixtKDmOmuUB7olU e0YokgsDsWs+NbzfYkgaEHviy48 2020-04-20 05:26:57 203.129.27.87 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=251 +p reject 1-65535 +r Enimal DrBzQO8tFgj8FvYmjh2gxTLrPRE Aos5GPOz3ko2J1GMh1h5JYZ5HEI 2020-04-20 10:29:00 213.32.90.15 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r TOR2DFNrelB DtDqMkyTHPQctScr+x0BWz1Xcqk m8zWmRWYnJmVHW9V61dYYWkNIk0 2020-04-19 21:49:03 217.182.196.68 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=71000 +p reject 1-65535 +r Hermes DtTKio5s4tKNbSOyCBWuOYJkb8s 91mpnbHkQGQ9Go2y/+QzMnDVtt4 2020-04-20 00:22:53 104.244.72.115 443 80 +a [2605:6400:30:f858:2704:73e1:7085:12ef]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45000 +p reject 25,465,587 +r coi DuIIKrV6r5GSd2hbJ5KS4UZbzk8 9gqI806Zs5VirmWAsY39s+iHT34 2020-04-19 19:54:22 192.81.223.177 9001 0 +s Exit Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19 +p accept 80,443,6660-6667 +r 67c213d7b5a2 DvLff4sgn3FgRjYEo/InykW9uuE +VRorkYAWLMsHB9ut0p7yx7g1eY 2020-04-20 08:20:16 51.81.253.205 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14200 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Torsti Dv8YVWnsGA9wJ8BgxctxJytfjEQ acW2QTkaWWIYC6bJAieQXVkfyfY 2020-04-20 04:00:29 188.68.34.96 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p reject 1-65535 +r itsover DwJ5z/ZAjX0RC7QuaT+mT6YGy6c vFOT9aEtssDywR2/vhsSgAC4tSw 2020-04-20 06:36:57 185.82.126.215 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1720 +p reject 1-65535 +r anonymous DwtPrTBLlp6D/xjR79F/BBOwXfs OWO1CYgl9XMc8blV3dmOgFKyzYE 2020-04-20 09:28:25 46.101.145.137 9010 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=701 +p reject 1-65535 +r panspectron2020 DxlBPmnbZQfv3eyURMhuBXTW9HE wh6PhjiXEkhGLLi4Tjp3D1pWwaM 2020-04-20 09:09:49 91.64.93.37 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1640 +p reject 1-65535 +r tranquility Dy2gSNt/sbEJ8I12K/+lIeJcDIo xxVkfSkhay2lDAB660Mnj/1NXX4 2020-04-20 07:39:32 174.136.98.130 9001 0 +a [2607:f2f8:a2c0::74:6f:72]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p reject 1-65535 +r oddskate DzQmtqFZSNTpEGRNsG0Nhwrznp4 V4NzcCyg0dbh2v5dOJxe/JVCrkM 2020-04-19 19:03:50 45.77.72.85 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=1390 +p reject 1-65535 +r snap277 Dzo/NHeEdmTJuwImXPsWU52oCu4 o3oTr55/z2PlIbMuXtpXEmrgJsQ 2020-04-20 06:13:52 37.144.238.27 32893 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=668 +p reject 1-65535 +r Qazwsxedcrfv Dzsby0LA5ojUpFiH7912K40vCPk j0JP6SY7mJAw7bZ2INim1FYqIeM 2020-04-20 11:17:26 47.152.207.89 9001 9030 +a [2001:470:f00d:1:e139:a2df:f3b:e56f]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5000 +p reject 1-65535 +r Nozel09 D0gOJP5b6pK3l8852cJ5rc9eb7k syLmO01thbW9f7QMK2zesArupi4 2020-04-20 06:34:52 51.158.22.87 9001 9031 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17500 +p reject 1-65535 +r partain D1LpZS+WrR1QCsBiNQoUmQLBKLk kSxL+8Ag1zBr9B0wv6XPymMRJ8g 2020-04-19 19:11:33 188.214.129.21 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22300 +p reject 1-65535 +r pilvi D2oEJ2y5XQQq7o0ot0WHj4J9IQ0 MrrdQ2mMaDRMow3WIW3TG9NY9hM 2020-04-20 08:42:32 85.23.41.52 9011 9041 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=110 +p reject 1-65535 +r wansabai D2qHGsArj/fjBWKBKYkMxngETkM wtEjgcgpCM96aiwOEkICsfWG8EQ 2020-04-20 03:07:50 138.197.202.35 9001 80 +a [2604:a880:2:d0::503:1001]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3600 +p reject 1-65535 +r jaures3 D25cpL9VZdmqn93KFlr8alMFdj0 t5qiPcb7TuAedtgr98Tx36Uc1iE 2020-04-20 01:15:15 193.234.15.60 443 80 +a [2a00:1c20:4089:1234:67bc:79f3:61c0:6e49]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5070 +p reject 1-65535 +r mrshuTor01 D4Xm2w5KO2/d98lFLJtdCJsRl50 j79XnfkZk0oPQBIHxs7+YUb+CqQ 2020-04-20 08:03:12 31.31.73.222 9002 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10800 +p reject 1-65535 +r signorbusi D4mRLmpMSorOQ8WP+Lg8opm/908 yGPiyA5EV7rcgVONtkk6V101juc 2020-04-20 05:33:54 81.6.40.141 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=100000 +p reject 1-65535 +r nordiques D4qWfOyT3lWQ36nZM5+V6wTS7sU lJ+7FUlDhmhxqzE9mrJks0WR4xA 2020-04-19 23:31:15 144.217.255.89 443 80 +a [2607:5300:203:1259::]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48000 +p reject 25 +r slalix D5d7TW6+7NV4rIOKX93IG2NgYKc rPH0a8vvHlsDJza2HJmrbTux16o 2020-04-20 09:18:33 51.15.105.214 443 80 +a [2001:bc8:4700:2500::90f]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15700 +p reject 1-65535 +r patimkin D62oAbFQJhEJ3R9JK7EM45yDp4I 9l7ZRwTWjxf8hI9ng33vTggthkI 2020-04-19 20:32:39 188.119.151.108 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3400 +p reject 1-65535 +r ParisTOR D67Qt9PQCcoTpXqISc/qwUVvr0c nH2MGUbcMbKOdq0Y182wcqnvQ4w 2020-04-20 05:20:14 82.67.205.48 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2910 +p reject 1-65535 +r niftyhazelmouse D7Ltq5nRCitwg3DmJTI8duuJX6I tsCXOJOXCQrfDAFuYr85G2pWbFw 2020-04-19 22:13:54 185.220.101.146 1146 2146 +a [2a0b:f4c2:1::146]:1146 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50000 +p reject 22,25 +r WaywardHound D7fCKOkm7VIo7CjMZuYM3ITHHrc wNbByTbyc9CZnjwekYhlZiIEEVg 2020-04-19 19:05:16 208.113.133.247 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r AcidBurn D7s8Yattk+EKveaeuMzGBRiovzo VWbbPy7jD9qQrHwySbUHIHXXrqs 2020-04-19 22:59:08 23.129.64.204 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5350 +p accept 1-65535 +r mentor D8EvK33Q6Ukw+bPN0yEwiZZlKVc 48WP5leJkZoomp443iaguTe/KUk 2020-04-20 07:08:40 72.14.177.164 9001 0 +a [2600:3c00::19:ffff]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=66 +p reject 1-65535 +r BaBaBooey D8q7jG5BLmDLhi/hmmQZGmnrlOw pNpYNJFNn7QArw5j2n5AOCdTaU4 2020-04-20 00:27:06 108.62.211.205 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=45900 +p reject 1-65535 +r king D+ALjHro4sg8MVtgu7wC1Uo1aGo cMgGDuccUfa56t7OCreCEc5ZNqY 2020-04-20 04:52:43 51.89.147.73 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8640 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r jannis D+3r6DwfLePWZzh2u6FDPM8K3lE 9sx06yNDWJr4jVVrVV3AZ7uqctI 2020-04-20 01:57:57 31.31.74.47 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2900 +p accept 43,88,110,143,194,220,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r politkovskaja D/IzyNeKF7jbfIJX0uBc1ap8a4g TYgP1RfWiE6hfyh1BEmeuLeHvWs 2020-04-19 19:06:28 77.247.181.165 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47000 +p reject 25 +r 0x616e6f6e D/nnFHjps1IW2S9zpUlphT611Ok 9grdYS5wf91GrT9MmA31gviI79c 2020-04-20 04:45:33 94.140.114.62 443 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6800 +p reject 1-65535 +r alphagremlin D/n4glAfsdYQUi32qtbnXJX48rg PxM7u+v9jrshKTVtFZdvDS82mJQ 2020-04-19 21:10:48 78.107.239.253 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1800 +p reject 1-65535 +r Unnamed EABcuYRs3Pfx8iz3mGLV1llyBHg NERVZ/OFjdS0Myeg3LRVtG0X0Lg 2020-04-19 19:36:58 198.50.128.225 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8590 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r mirabbit EAGV4HmnYXUVh+MaCR0uIgbzXDo 5MwWlZmakOacL6bCjTDMD7j3RQk 2020-04-20 05:44:04 5.135.187.5 443 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9840 +p reject 1-65535 +r LovePeaceFreedom EA0jal/T2AMywTcoyeFSeMOuLlw 2sKP7sZr7NX0ERyu17Gm3nQMv/0 2020-04-20 05:24:15 172.104.147.72 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=745 +p reject 1-65535 +r cryzrelay04 EBwYiGswuyOzbLqtFZJhGIhS4RI 2gaL+23i0ZGy+oWgdzIYLni+5HQ 2020-04-20 06:50:20 82.149.227.123 9001 8443 +a [2a01:440:108:11:82:149:227:123]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8700 +p reject 1-65535 +r smell ECLOKqtvvrYtf/pwRA19zmkpYLA pVKOoxG0j+KyNvMkTelxQeREV70 2020-04-20 02:03:53 137.74.153.8 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9430 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r doofenschmirtz ECMeCPGcA9Wi/jqtA9hjq94ggbw sR9V+UlrRjLgk7fzNz549UzdBjM 2020-04-20 04:33:14 173.249.2.224 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r Uva ECOUA6fBmS12+0XiC4npjvzmnaQ VE1k55UiVXzVxrvk7fv0Ir2EGB4 2020-04-19 19:33:43 147.87.116.29 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37800 +p reject 1-65535 +r torchy ECr/9CqOzjEPI7gJYwk70a1epcQ I/JAka5E56VMpIhvAWH4UiX/YsQ 2020-04-20 01:25:00 93.219.41.158 9002 9031 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=322 +p reject 1-65535 +r max7 EC6hSSEfSQwSLKzEBU8bxqhQPrQ C0jVPtPrqQ3osMbp0bpWfvlvkK8 2020-04-19 19:17:06 93.170.246.217 1294 1295 +s Fast Running V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=80 +p reject 1-65535 +r RelayStation EDM2FloNLvytNgUzmEOgp3ELi5I OeR9Vf4CbqpKVaXnxivRgPOQF74 2020-04-19 19:11:51 85.195.235.248 9001 9030 +a [2a02:168:a403:13:5054:ff:fe21:7c4c]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=52700 +p reject 1-65535 +r Matrix EEF7mJB10Egchoc1GqlhGOzGivM UatjjRO31+3aKkM4ULdX9Ydl3go 2020-04-20 09:50:41 178.27.147.64 9001 0 +s Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24 +p reject 1-65535 +r king EEiZnRbZ8lhabkCq1ctH5WGOvI0 7n4CbrHdsZYUW1mSQUO6AQQRyoM 2020-04-20 04:24:26 51.89.213.92 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11200 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r vger258 EE3BWs+mnPlPiejtD2zbLSmCNNI 0sxIz26D5ljUfKvp0Ez3seAYWVk 2020-04-19 21:13:17 163.172.152.22 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42800 +p reject 1-65535 +r KenRelay3 EE7dBcCCx/vAkzhdR99ku9Pogi8 W0id9qx79oJ3jWL9MLCoQDbObVw 2020-04-19 19:34:58 3.9.60.181 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9370 +p reject 1-65535 +r niftywabbit EGRM89f1VfEP4o6x1SARH1b+cYA v4qwwSJc61/TqC6txhVWwkydFfM 2020-04-20 10:54:05 185.220.101.199 1199 2199 +a [2a0b:f4c2:2::199]:1199 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=51000 +p reject 25 +r PoochySloochy EHnmKPxrACVlasAk8tmXXEQUmM0 Jjh9+91jSLd8nnOE0p1XLv2I35I 2020-04-20 08:19:54 51.15.185.201 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=100000 +p reject 1-65535 +r Unnamed EIQVKcOkYxwWLsTcsBOQ9Emg0rI DJpg51Gy2zcfGIuBwa7ciG3fbqU 2020-04-20 12:14:34 93.186.170.7 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=55300 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r niftyhedgehog EIQgC0QCHTCOpCU/JWeUZxsdCZo dHF8m7q/+2JtWADeGVtzuwGoEUI 2020-04-19 20:26:18 185.220.101.1 10001 20001 +a [2a0b:f4c2::1]:10001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32300 +p reject 22,25 +r a47u26ufdzq EIy9qowtCpTwJGkWdq2iCxyibYQ RQED+qDb5sxjsZ64pUWT0ZoTDfg 2020-04-20 09:16:36 172.104.74.190 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=143 +p reject 1-65535 +r Unnamed EJbXHC6kWmjk06N1yuWQ+/NJ3qs 6njS1yh1DTFS+hCRjwNCJAb+2tY 2020-04-20 10:44:55 51.158.76.119 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=650 +p reject 1-65535 +r chaoxrelay EJmYPixcPs2tC31aq9Ksa/LLv3A 8IHYpESd3OGRDIBaiW0rzv89AQs 2020-04-20 11:53:52 46.4.122.173 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p reject 1-65535 +r bewilderbeest EJzgCarDWgjjYjvMU4v4noB5yqQ 67RxFgoe311ZlEA0G5pcaFhILwE 2020-04-20 07:30:54 71.19.149.21 8421 8422 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=480 +p reject 1-65535 +r rpitor EKHiJaVuAvZgEb6jzVHZ9pTSKRM V5kUKBcHLpVrauxLe8rktrUd810 2020-04-20 07:26:04 162.237.207.53 9001 9030 +a [2600:1700:131:c1:ec99:43ff:fe4e:f310]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5100 +p reject 1-65535 +r eridanus EKXvzNL7nBpKwg+3eaXbEbWJV6c kbflTTdBipJw5WmtEnrDipTh//w 2020-04-20 10:00:30 213.239.218.195 9001 0 +a [2a01:4f8:a0:72c1::5:fa]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p reject 1-65535 +r MuddyMouse EKnB7DvMhcIJdn43TZOmz/XyLKI lk5/U+EPQCbrXy1o7H4ROTl/LvU 2020-04-20 04:52:15 94.156.128.10 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=59 +p reject 1-65535 +r pnwtor EMPM+jlAH6/kJvVKEpcOcJTe1xU OLFLtlrzwnJY3CbMC12VDzdUEmA 2020-04-20 00:50:18 63.225.175.196 8081 8080 +s Running Stable V2Dir Valid +v Tor 0.2.9.15 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=25 +p reject 1-65535 +r vaal EMcX0Xf/i3K58LWPa5c47rYGojM ex6ib5i1cSWcMC5jhjLtI9ihJ5E 2020-04-20 11:48:10 66.175.217.78 8526 8986 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=420 +p reject 1-65535 +r Torminator EMpa4mCeufGampa+SytEZ/OVbbY bVJ54mJ2NOaoWJ0wsqYctHTjwKU 2020-04-19 21:29:26 80.208.231.152 9001 0 +a [2a02:7b40:50d0:e798::1]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4010 +p reject 1-65535 +r tor2oeoe801 EMqFnEKaF+/3BMxT0AgJQBSNWdo rJ1yo2w04ihfZgubSO6jXtqDLv8 2020-04-20 09:53:30 193.182.61.9 443 80 +a [2a0a:3507:1:2999::b060]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15400 +p reject 1-65535 +r christianbro EOHKehg/bHF96usHA/BUUcjOXU8 zhypJ1n4T/52tZGmiEW3+nLG5K0 2020-04-20 07:23:15 178.32.221.207 6069 6070 +a [2001:41d0:8:e0cf::]:6069 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=8300 +p reject 1-65535 +r Unnamed EOnW+VGhyd8FWSK4rtiQIgoLwTw YsN39lJ2UTuwW5yjQI5tOgW6JSg 2020-04-20 01:29:33 218.45.67.146 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14 +p reject 1-65535 +r cryptonaut EPZQRTP6WFTz6HfVjObcB6TfW1E 13IcpX/U7DIHFC384zPZpNB3BhA 2020-04-19 23:25:05 213.195.105.125 9001 0 +s Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=23 +p reject 1-65535 +r tondro EPuPb6XIkqmUJkB9/cokhoMDBAg e0HSUQUsNEZFmtYe8aE2/hVoNUc 2020-04-20 04:51:56 91.109.21.148 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1900 +p accept 119,563,8332-8333,9375,18333,50002 +r snap277 EQ0fGyvddwsaZ1Dz2Y3+/E2tbc4 +eGqYYP1DePGLO5Rfs8M25UOBSs 2020-04-20 12:02:58 78.123.14.102 33379 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9 +p reject 1-65535 +r zerodivided ERmonnKdtlg5+yMqHg+GabCuhN8 hd7k9k+cjO5SvLM1KcB69PRK36w 2020-04-20 05:52:00 80.241.220.57 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6070 +p reject 1-65535 +r lpcomsat1 ES4ZQvozFXfPoUAK9PSZ3dJc+Ys fLqlT4IqeVVH3639PBTrssEmMV4 2020-04-20 08:53:20 209.141.40.201 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6500 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r parasol ETFDRpAhiCw6S4LwhPgSWwjuRx4 wpKJfyVFuW0St9+Szez9hMX5g0c 2020-04-19 20:22:08 93.177.67.71 8080 9030 +a [2a03:4000:38:559::2]:8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r 5fd833ab ETGE+YVa7LHZvzIwoHQI7Cdnpis Uin395E8Q2iMn70W0tChodyy5O4 2020-04-20 10:10:43 95.216.51.171 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16900 +p reject 1-65535 +r mpfusion ETNj++swjIpriXmBLFsmzRIUNEE S3pHwnN4xjVmJNtJq/OWdLtYoLU 2020-04-20 10:25:22 93.215.152.116 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1790 +p reject 1-65535 +r giovanna ETerH4TsLVLfsZFXF/FP8aEOs5I 0SXqK7njxKLjNe37+XyX/EWxh5g 2020-04-20 09:18:22 185.227.68.78 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10200 +p accept 20-21,1723,3128,3389,3690,4321,6660-6669,6679,6697,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed EUHjabVNXJ9eAUHslmvkyHhUibw vcdcHINlKCsvcj2Hi2DfSACoxJE 2020-04-20 07:27:30 217.87.65.220 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5 +p reject 1-65535 +r afoosrelay EUWjnsDOGINOZ9J5njxdh0U8XvI A4jgmNCfMqmCerUngfRWB2UYdKc 2020-04-20 11:27:16 116.203.44.87 9001 9030 +a [2a01:4f8:1c1c:924d::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13600 +p reject 1-65535 +r Machiavelli EU+xRRE6jVOBjwupNj37yB3IRH8 OR4ZpCefqkjLAquBiDchgsi07zQ 2020-04-19 22:06:55 167.71.150.11 3389 443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r frs03dp8023 EWDZWWoyhhjAEFRsFmQHRBxIPTY uY0FW1T7i/5vBBQbF84PUWwCX50 2020-04-20 12:36:27 172.94.53.204 8023 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=66 +p reject 20-25 +r Unnamed EXmF3A8fmKSoYt527VygB7ZcFKw F7g6e8AYW1RDI3nV3SFtlW2w5lU 2020-04-20 10:25:17 23.227.199.103 9001 0 +s Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23 +p reject 1-65535 +r Unnamed EYjcVJ/fXoBU4f6MeJpjLNGHL34 64FxW44B06+jFh6KdJUMACHqnhI 2020-04-20 01:27:56 51.75.143.150 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=17400 +p reject 1-65535 +r UniqUser EZ5Waz10dliQjqAPM29OFYrpeq0 f5O30x9UH2taBWV0H+ButHhjTQ4 2020-04-20 04:24:15 212.51.153.16 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=902 +p reject 1-65535 +r ru20101315 EaqZt2tGUzNEHjAA9HeZXHBJm5I mksmhlWEWra/H5EaXcPEabEZTh0 2020-04-19 21:48:27 185.246.182.197 9333 0 +s Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=67 +p reject 1-65535 +r jonasbebe2 EavbTQuUTxhqiYVgy4LHBDmVfco Z3VP7JjxIT99qgtvT1+nPHvGdrQ 2020-04-20 05:27:56 178.63.18.223 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r Unnamed EcPRShFmrt7W0kejLeZFH2yVIjo 6Zpl3VMVASnmWt9K8CcsOl8DmqA 2020-04-19 19:08:57 51.75.153.19 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11800 +p reject 1-65535 +r mekansm EclSnJ0GcVRervgN/iCa2Xe86Qg w5k4Emey5BPfbNLqQEi1OszF2Lk 2020-04-20 01:18:03 95.91.3.85 9999 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1900 +p reject 1-65535 +r gGDHjdcC6zAlM8k08lX Ed8AF6Q68fCIJc1dlzKX+BqwD/M uAqJIDd5GPFhuPASC7vIh4fgsKg 2020-04-20 11:48:54 37.120.174.249 443 80 +a [2a03:4000:6:724c:df98:15f9:b34d:443]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40000 +p reject 1-65535 +r hopertor EfCW3iGZ6IEv/GufouWxxHQ5nv0 RM1gm1RDBCePCXXINOxpqm4R7LM 2020-04-20 02:48:29 176.165.28.165 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4440 +p reject 1-65535 +r sleven7 EfrABcTgeTPfkpKmdUNaMdqo+eE cn6EQQMKrw/ppOfCC5cHm7pdovA 2020-04-20 10:31:47 151.236.221.44 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1900 +p reject 1-65535 +r AgrippaRelay EgYmB3eLVMIhWmhgbHw7Ad186PI dVkaw7KuIOy8dTHlxUPvJ3TA3hA 2020-04-19 22:01:00 88.99.76.10 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=270 +p reject 1-65535 +r MasterOfDisaster Eg+J0QL5ZkfSJYFms7tQy/zvIOM s85g3zQWacKmGseE4xkQbP/wgtI 2020-04-20 10:27:13 167.86.94.107 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=26800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ccrelaycc EhGsG7uKGvfLqGvOhomqMUa4ZCM 5i3LmCVQeeRJEC6I97ncSjtLM0E 2020-04-20 06:00:52 95.85.8.226 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1850 +p reject 1-65535 +r TeleMishka002 Eh7MinvYgYI9rqPAhY1R/fGbGZA 0Bi3CehQFu7FwowHX3uGre1B0zM 2020-04-20 04:00:00 157.245.184.13 9001 0 +s Exit Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=770 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r MattWillNameLater EigRGm1K/GGe06cAeaOgtnhHakM JI/TmYTkJUHecu9MxTQp+QC0zaQ 2020-04-20 04:51:19 23.129.64.188 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7300 +p accept 1-65535 +r FermentationLabs2 EjV1kpSAIkMKj+dtMS/6jFWExag X89gtM7ybztEwaMgysR6eHwz/O0 2020-04-20 06:37:30 99.150.229.21 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12 +p reject 1-65535 +r snap277 Ej1S4+TI6yv6Fi/Ac7Mh7ieyOe4 BBl9b+mUySusd0Dmufyi4BJoZw4 2020-04-20 07:11:54 90.110.75.214 36297 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r PI01 EkplJ0YxugK2qg3t7RRNX99r3DU PfbGK5bryZaeFKZqwMW2fwdsRMM 2020-04-20 03:30:14 94.16.133.124 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1510 +p reject 1-65535 +r snap277 ElT+K2jTclhj0oMpVYGr1Vltu58 dQ4HHDW9c00I6VRJMc/sunKxwJc 2020-04-20 06:22:56 109.13.138.29 38197 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3430 +p reject 1-65535 +r Unnamed EljQqdlVgrdmb8Cvbpp5gQmpop0 yE2oYv9GA8M0cFWRNrcPznhtoAY 2020-04-19 21:55:09 165.227.161.62 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=733 +p reject 1-65535 +r Bathtub Em5Di2khiC/Bfx/DKqxhcwBWGTg bChDgxkj6mR0kjX4NJv2tKCucRY 2020-04-20 12:55:42 212.74.233.19 9003 9033 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1650 +p reject 1-65535 +r Stuttgart0711 EnDjz7r7X8zov9Nwzcmuowwj/VU RyuSYYR+Q/mC6TOwRndAFnIeA/8 2020-04-20 06:41:10 46.223.38.135 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2110 +p reject 1-65535 +r Wy8L EnDznvTTsu6Hkn8tfORNfUFzWao n5DfNcVGAcRufw2Ish9Zc5DaMlE 2020-04-20 09:34:19 51.158.154.122 9001 0 +a [2001:bc8:1600:4:208:a2ff:fe0c:67d0]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r CoudroX EniHv1tp7++g3Ef8dnE14Kyq/Z8 omY98f7G/oV88BVz/v+F7tjysR8 2020-04-20 12:33:09 2.57.236.215 9100 9101 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p reject 1-65535 +r heteigenwijsje EoPr3uwrnXRfHn++g0B2VbmE/WY /YFLEXRSa4ELHo1bC1TlcuSuYx4 2020-04-20 05:26:51 80.127.116.96 9001 8080 +a [2001:985:7aa4::2]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18100 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,563,587,636,706,749,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6696,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r amedias Eo0WUIZ2WY3Ix0Zcxah6M4IIRmw QSDfwYO90pxXc7TJ82Nx4eynD4s 2020-04-19 19:05:10 95.120.214.163 10001 10030 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6200 +p reject 1-65535 +r FalkensteinTor03 Eo/G2Pv3UxIcVmL+4wnM1Htkums khCk1uv/TlTjqbrf/Yx6jCc3VQQ 2020-04-19 19:22:11 144.76.236.27 9001 0 +a [2a01:4f8:201:120d::2]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=56000 +p reject 1-65535 +r papillondesetoiles EpP0mbddBBuihYHJoHI8vJ0TOXM q5Lf5Y0tMiyOEXbsnQJ62n0+pVM 2020-04-20 12:30:02 176.151.246.91 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=838 +p reject 1-65535 +r mdfnet1 Eq0w5dJapn9Rl4DiER5hGkVf3Ik OgAftSnvGBcpHDWYYR7Y3TO2Xr4 2020-04-20 05:28:29 193.11.114.43 9001 9030 +a [2001:6b0:30:1000::99]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18500 +p reject 1-65535 +r angeltest32 ErGldp04/0fPaMIjXhvaMV30API 7NrWtCqXfiL3WcWwbnwgUxxp7tA 2020-04-19 19:57:11 185.99.2.178 443 9030 +a [2a00:8620:201:215::9cb2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4790 +p reject 1-65535 +r hotelbloedel ErabClMkly/zIaAy08ESi5D+wO4 PgEW85W/S+6mY7OTuvVaU9FTxaY 2020-04-20 01:45:03 81.141.176.111 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5120 +p reject 1-65535 +r yesno ErbFs0sDmI2GpIuI95IhV6rY/9c MBjf2x6qZ0iUrICAnl4tdbxUSCE 2020-04-20 07:21:19 185.125.33.58 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7730 +p reject 1-65535 +r zzzttt Eri93XJZirfANcEdWNVwXWgWdm4 L8NH0VPNlFf6M1f2uaEoEzZEarA 2020-04-19 19:48:43 89.34.27.61 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6110 +p reject 1-65535 +r dangelo EsK6BATIa7mVvJ5y14MDQ6q5YXw 1R+OS1TAs183w5m65zl9DwcyXZQ 2020-04-20 08:45:10 185.234.72.43 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=786 +p reject 1-65535 +r ATZv5 Es9ttNrhBiBtbGsJmI6GXAUJhDs ZNZ9jrPqOq81Su96hBaphib2sT0 2020-04-20 04:41:29 159.69.114.110 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=61800 +p reject 1-65535 +r Unnamed Es+E09LjC7l5m/wOHd39qNNa8Ac cMF42dAwJv0rmvrvMQHui+WCisY 2020-04-20 11:24:48 5.135.178.184 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5310 +p reject 1-65535 +r TOR2DFNrelA EtVS6K96orcbIYtbv2pf76bya6A 4wUqhNKgdrYx1/kIGXTsIigpqko 2020-04-20 10:51:57 217.182.196.67 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=88000 +p reject 1-65535 +r TorRelayMPC EtnaU59HpVkf1T2Supvd+IiWiew 10mva8VOxc8bPKXmOBFkcY1Axvo 2020-04-20 09:52:50 151.80.44.177 49001 49030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=1020 +p reject 1-65535 +r Trumper Et/J0YUpeZOdkxf1eoV8gLxzFl4 5+xwBAXAACpW3k1tiNm4UH9a+r0 2020-04-20 01:54:17 87.147.184.154 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2140 +p reject 1-65535 +r Unnamed EuvILuY4eRXXuD5YA2n5cCJqTY0 KTpeYF7TkO7wwYccYQhXtvcNF7Q 2020-04-20 10:51:51 100.8.164.39 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31 +p reject 1-65535 +r floberelay2 EvTD2xyP4cSf6YSwI2TPsZRqi7k BY4BM6kzy5h6lXT+BOLcnKKnA3A 2020-04-20 03:33:36 172.103.164.206 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=590 +p reject 1-65535 +r ridcully EviHmN1Lm/slppeNqD8ILvHVBRo Yoxgw8WLdwDlmllK+gJQ+XLt+9A 2020-04-20 07:00:00 188.40.99.69 9001 0 +a [2a01:4f8:221:1901::12]:9001 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2100 +p reject 1-65535 +r TeivosRelay EvjlgxDPB+s/Lpqtb3i81QZdOTA 77GCXPBPA4ZQ3inPDQ3qTvLsasc 2020-04-20 08:59:17 94.71.182.40 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=74 +p reject 1-65535 +r thanatosCZ Ev1iTuc87zcTfJDTiyQGpm9o+qI MZJWamvpEJdMhOyO/hZ/p3OLMBA 2020-04-20 09:06:56 37.157.195.87 443 8030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10000 +p reject 1-65535 +r funkturm Ew5p6PeD3vJW51f6eBVLfcKjng4 Eq9uaLGliNRiTYt5sOQPEEB5PNc 2020-04-19 20:37:51 185.72.247.145 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3700 +p reject 1-65535 +r Unnamed Ew7W9m4jOabAL2SSdihXxuSlByU DFW7722fhjRWxQlyA3nED1z3l4k 2020-04-19 22:23:41 85.226.195.172 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1290 +p reject 1-65535 +r JassMischer ExNc+W9K1Es31FTNGF0vWITvkBk ezfaMBUoo2QJyZCav0/d5xa8pDw 2020-04-20 02:04:43 212.51.151.250 9001 9030 +a [2a02:168:5214::15]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=952 +p reject 1-65535 +r apollo ExwuRvR94nSFffVcdWFhqjKgjX0 zRrVTCoDpkAUIZ3SIeY/Dv57t7Q 2020-04-19 23:11:34 66.42.242.13 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=260 +p reject 1-65535 +r CCrelay1337 Ex+8ij1LRN6bJYrcWGdAgrHgbSw vGs3Bi73jR6qipfW3pcnIMPv2Hk 2020-04-20 00:43:29 188.40.238.144 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20400 +p reject 1-65535 +r Unnamed EyLZDqbtqFs6hWbywE8tjFx8HvE mcLuisTXsKI13Jw6tUInmeQWMwg 2020-04-19 19:30:53 176.126.242.49 443 80 +a [2a04:ad80:1:8a::31]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14300 +p reject 1-65535 +r angeltest27test EyPTTC+krg7E7qmFPzRkaT70KOc 43O99VJOkxAEyuSisj9q/wkEQvU 2020-04-19 23:10:10 92.223.109.71 443 9030 +a [2a03:90c0:b5::38]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3610 +p reject 1-65535 +r Unnamed EzfABTxG8W9jREJgKfWIcAF7JPk yNPYdPAdx/ZGKlj9j7bEzG78RGI 2020-04-19 23:35:42 198.199.112.121 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r artemisw EziJq3B5GZpDcMh8x6XL/+7G3oQ MXzpBIJCDdESAc3w4J4ds9DQIsw 2020-04-20 04:02:25 24.187.175.14 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=250 +p reject 1-65535 +r torreymcilroy Ez9G5Fkpnh3L6RUlw1Op2yXEdNs 99KEYgKBE3FpiWjLf1cHdZ5o9mE 2020-04-20 05:47:15 45.56.77.230 9001 9030 +a [2600:3c00::f03c:91ff:fed7:c81c]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12600 +p reject 1-65535 +r DFRI8 E0tJ0CEsiQZPl3jl6P2ee8NG88k x7BEN/yaVMU66a81vtLGBnKUJpI 2020-04-20 06:34:06 171.25.193.234 443 80 +a [2001:67c:289c:2::234]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21300 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r bauruine11 E1V0SK0WMr8IB1fC/3dpuyPfHfM En8Q5uKe9dXx8oLgqc+Q3qnKmcU 2020-04-20 02:59:51 144.76.71.91 8443 8080 +a [2a01:4f8:191:8484::1337]:8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=111000 +p reject 1-65535 +r niftyjubilex E18qizL1g4RfKw4TPv2EwlAmdhs At2fqKlk/l6thTsWzi/10DuzESs 2020-04-20 08:51:08 185.220.100.248 9100 9101 +a [2a0b:f4c0:16c:5::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46900 +p reject 25 +r BurnerMeetsTOR E4irQDlvV+2Vu2A25lBM6OD2Irg I2d2gOJROkan3/wg/hBp2VSYorc 2020-04-20 11:31:13 84.160.68.224 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=302 +p reject 1-65535 +r sennovakatido E4uV+aEOi+umsUKtrHMxdlxhrOQ TPqmgQsgKa/zdSg6VO5QF3/4kr0 2020-04-19 22:03:10 88.91.29.249 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14600 +p reject 1-65535 +r GoodfellowTorRelay E47UfuIVbmSS/eC2EzjZc8lxfzI HS6DsjJkhI+rvcCRxOlDRkoBjoY 2020-04-20 03:26:21 92.222.180.10 9001 9030 +a [2001:41d0:401:3100::7d36]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p accept 20-21,43,53,110,143,220,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r KS0120141125 E5fbEGSS8ck3HMuoWdr2hD/ie6Y 6lNVjMlU4rGsjDuxswsgiOpZkfc 2020-04-20 09:28:33 37.187.97.31 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r voluntaryism E6Y+wkKpfnNVFFYBqvcNmek82jw 8wimavWUweqcGZZJSfdduEkO+Ic 2020-04-20 12:13:12 37.19.127.104 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=98 +p reject 1-65535 +r mkg20001Relay E69oQJNFSHJlvGT5+f4FD6Pn/WM t9FFKyr0dnFr4DOJcDSJy/BzXkM 2020-04-20 02:28:31 91.22.153.63 9001 9030 +s Running V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=99 +p reject 1-65535 +r jodope E7EyIjDp0Qwp+K5jHaZYrlw8e6Y qnk8om7Q2sf8kPfA+fkQrgL8IQo 2020-04-19 20:28:02 144.91.104.242 9001 9030 +a [2a02:c207:3004:5908::1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18100 +p reject 1-65535 +r TORtitan E7I1THTM4pgVtOH2kvLw6Gx/E90 MUji6M/SmHVNqZ1zyaqxol9bSDE 2020-04-20 12:34:35 172.241.140.26 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30200 +p reject 1-65535 +r snap277 E8ocHH9+MpQyDu9MAbjY8sWX91U QV5O1h6vGpyU/vkE3AnqiJzBJ3Q 2020-04-20 07:08:17 90.93.38.108 35683 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2390 +p reject 1-65535 +r UenoStation52 E+4OFMaidRYzE4J3wUQ6TDfdVdQ wa4qv+/lUGSgeb9gbOXiqxrRXp0 2020-04-20 04:08:43 51.89.143.152 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2440 +p reject 1-65535 +r darky1 E/JNX8YOmdNTWmh2HC1iIwNIT5M 2R8emld7eu4bDPAhfg5Ph3zGf/A 2020-04-19 19:32:00 51.15.46.15 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21800 +p reject 1-65535 +r CanopoIT E/fq5zHKRgCVGYaSHgjsq5sdKvY JDbWPpEXK2i9WLqrugfiF2WEj9I 2020-04-19 21:35:21 37.9.231.195 443 80 +a [2001:4b78:2006:ffc3::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17100 +p accept 5222-5223,6660-6669,6679,6697,8082,8332-8333,9999,11371,50002,64738 +r ApexOne E/gOZBelP1vQF+zIheJZirLaMrE +wcUIXTmCIcdMD96RyQuy3zCwbU 2020-04-20 07:40:26 88.202.230.112 9001 9030 +a [2a02:2498:6d7b:7001:216:3eff:feb6:d2c1]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r AnonFrance00 E/zg9uM8vOJC96koYSPZTXeNf0A 7j8ZD0YTAZDzwDHXLzm4Le9SpcM 2020-04-20 11:56:31 52.143.157.92 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r rortor6 FAjaXDEP7s5258+I+2jssosi1Nw /w9pw9s1n5ATbnLzVssCFRhM8s4 2020-04-20 12:32:16 172.105.204.32 9001 9030 +a [2400:8902::f03c:91ff:fe8d:e505]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=350 +p reject 1-65535 +r Redu FAjqur9zN+ArOr1U+PX0xIxaEyY j2xeG0K6xeIbYLEd6andbf2Fqy8 2020-04-19 21:40:10 62.171.145.59 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34900 +p reject 1-65535 +r snap277 FBQf0B72hHU/erO+AIHTVe4U9WQ 94ys3V8bSNJBUvvVCDzSNYlOYRY 2020-04-20 12:03:26 196.188.192.92 43399 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6 +p reject 1-65535 +r Cosworth03 FCQAC4bfZ9H7/2hbIEBzu5WRzv0 Qs2EhAieu62aU7+RC5LUypDCn18 2020-04-20 12:27:10 54.38.52.101 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r lagarennePIrelay FD9aPvhL8ajoKZjKJh2ciJwkcSc nzw4utRo49JrxjP35DistRAefjA 2020-04-19 19:22:41 91.173.202.195 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1090 +p reject 1-65535 +r NotFBI FEsZRkHTl8PBt8R44r9sIfx7ZRw 9XUznTgUOYbfRLcT/KgkLC4DUk8 2020-04-19 20:24:30 80.186.168.9 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=911 +p reject 1-65535 +r cycasctornodeerl FHshoYB/jHzLwmpNstAuL3pA4dA bmmbo4qfjuEG3HP1G8qBijcQmw0 2020-04-20 04:31:14 79.239.62.2 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1580 +p reject 1-65535 +r Unnamed FISHxuvgTrIklggMIHlsUbBg9hE CD1bb6E9Ni9W/DKy7FTiBU4WSeg 2020-04-20 10:11:27 37.191.196.246 38443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13200 +p reject 1-65535 +r niftywoodmouse FId8Y4Sp55P0IsjR3aRHyspPfEs qMKBWjH+GZQy3XCdLSMDMV23OQI 2020-04-19 20:27:24 185.220.101.31 10031 20031 +a [2a0b:f4c2::31]:10031 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41700 +p reject 22,25 +r iriseden FInthtYUsksCs1Us1T7pxhinxr0 kYtSImNVQFyOB5yiQjSajq/j/xU 2020-04-20 08:11:46 163.172.125.41 9001 80 +a [2001:bc8:32d7:307::351]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r draco59 FL8YOgY+HcZa3ansMBm0dTX/nn0 Z9MqQYp1e0HrTIZxwwxsgz7j6G4 2020-04-20 07:44:29 62.171.145.37 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r hp FM8EAJ/+gUSDkfP6Ym6dLxFL3lQ u2QYN6HaKWhYLrK1QKuzmi4QsBg 2020-04-20 11:31:20 104.244.74.57 9001 80 +a [2605:6400:30:f625:20:20:0:2]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9000 +p reject 25,465,587,6660-6667,6697 +r OONITestHelper FNL9xqvc0aJ8oy0TqixoVm0egiM CXn3YLxqx37LmgJSQj9u61XvvHk 2020-04-20 05:29:11 37.218.241.28 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2200 +p reject 1-65535 +r acT0r FNV97fCkVUotIa1TzMxD4xFYxzM suh+vnMuXkOUhQiqk+RTIP8nMt8 2020-04-20 12:19:34 136.243.39.185 8443 4080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=89800 +p reject 1-65535 +r Assange012us FOctTaELZjU+WD8m7gSsDVY+p+8 8JdNVU0NZpMr5nsMgl6UXgl71lM 2020-04-20 02:48:29 147.135.114.98 9001 9011 +a [2604:2dc0:101:200::6c]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9280 +p reject 1-65535 +r PatsyPide FPk+bJTVcywhKHfWpoCu10el0rw Y7gP7mld/WRpFBBiB8Sat4Q7/qA 2020-04-20 03:16:03 83.135.69.146 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2430 +p reject 1-65535 +r max5571 FQHkMMIej2PrTfFMXKzzz8YwdRo 8iHd5sX1/75pXrecXMHJQIg6bYE 2020-04-19 21:09:32 94.130.27.193 8080 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p reject 1-65535 +r tor01hueedv FRz8NsNCNEP2jAVj4xMhrVqvnio fSBHOH+IeH2NWxUjPLkt8m1inDA 2020-04-20 12:32:38 78.46.60.40 12801 12830 +a [2a01:4f8:201:4101::40]:12801 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4500 +p reject 1-65535 +r PiTorBox FR5j0p6eeBst9ZOz1+KA7uqf6S4 9/pcQPNFdXHVvnl0XZgMyThm3oA 2020-04-20 07:41:49 90.112.45.184 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=380 +p reject 1-65535 +r casaholiday FSPFAql1S2tCzKXrQCqDPP8OQC0 c81Lk0A0/zMwWod4cZKuW7Jpz0U 2020-04-20 08:26:57 209.90.224.5 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=106 +p reject 1-65535 +r funbox4torrelayipv4 FSQmF/wQSWENlZMetWEwuOQeQ3g hQSZjqiv+4BuGPplIiX6+ifJxWA 2020-04-20 08:39:14 84.132.157.225 9001 9002 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1800 +p reject 1-65535 +r snap277 FSW+U8SH8E8ctvXg/c0o3Ty8MC0 CoDnLb0r1mQIAN3lH9mMcfuGeug 2020-04-20 09:19:54 81.241.2.86 38189 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2400 +p reject 1-65535 +r thueringenhosting FSlo4uqL7q6hd4EcFiWPzvkWqU4 He2LXnWs0DmYXt09kg85MWoJwxI 2020-04-20 12:03:32 87.148.122.126 9001 9030 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r tspio FTKjYXLHABKxBX+7+v4nNO2/Sjs NxxKPLtMRjaG6mtaaXfg54e/MXA 2020-04-20 02:56:39 77.81.247.72 993 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=260 +p accept 22-23,43,53,79-81,110,143,194,220,443,531,873,981,989-995,1194,2086-2087,3128,3690,4321,5222-5223,5228,6660-6669,6679,6697,8008,8080,8888,9418,11371,19294 +r Unnamed FTli+g8qBYqX03sDlgc3fuZ+WIU 4F2hBmGT0s1vuEdYysU2kUzYfGk 2020-04-20 11:35:10 185.227.68.82 58380 37756 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=140 +p reject 1-65535 +r COMPUthings FT7Wj6mrt1lDknRcfSLDITNWEhk vyndqzaFvsS7fwuzKAslpP5oAFA 2020-04-20 08:06:36 62.235.194.119 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=216 +p reject 1-65535 +r TugaOnionMR6 FT8lchezu+aqt1b5JA9Ao9cSY8E XhB3IcEY5Nf3YnbVOkBg5kvFGek 2020-04-20 06:55:21 62.171.177.98 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=42000 +p reject 1-65535 +r HANNIBAL FUFcLEQMxvAKfOxOhEcw9t7GFTs k7PvaT4crN9o0MnCZ6f75lma+vc 2020-04-20 04:45:27 195.88.74.178 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=437 +p reject 1-65535 +r rackhamsaltair FUg4k2mSRnJLgTXMbwh3Z+qJotM cfc+NRpjWa+TZent3wAdaeJkqao 2020-04-20 09:11:48 37.187.21.49 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1250 +p reject 1-65535 +r smell FVANgkel7i/8CuW1OdGwm29vkVU Bd7j4QD7Fp/iThk17dQuPNpyJAg 2020-04-20 00:30:29 209.141.42.231 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Illuminati FVcs0+USDY1ZMnKNnltGBMsUCdw NCyxmMKjoAVlMxvW/jgh3kSkosM 2020-04-20 05:07:21 87.118.110.27 443 80 +a [2001:1b60:2:1:3935:104:0:1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25800 +p accept 20-21,23,43,53,79-81,88,194,220,389,443,464,531,543-544,554,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Quintex18 FV1vV0JfFsBiTXd3dkHk6xtHxvA mqstiFoRJ7jEN2X5nR9aii/GTHM 2020-04-20 10:53:33 199.249.230.108 443 80 +a [2620:7:6001::108]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16300 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r WillyJamesRelay FWh90DAmU8lyshQ7He51L2Kgr4M oz8ZvZ3Zvhlv/veLF5GRzfMo+y0 2020-04-20 06:50:57 178.17.170.194 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5700 +p reject 1-65535 +r Bundesgebaermutter FYQalspcEXGYWpVlv3zd/iv46R4 4sEOtvkvY82wA4OzPS+W8ixNdAY 2020-04-20 03:27:22 178.6.191.234 8080 0 +s Running V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7 +p reject 1-65535 +r bakunin3 FYWBgnA03vG6sfwkjRgBZUUuU9M GYEyfeX2VQ4kre4n38fbcJ4D5Tw 2020-04-20 01:15:08 193.234.15.61 443 80 +a [2a00:1c20:4089:1234:2712:a3d0:666b:88a6]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5340 +p reject 1-65535 +r RToRpi FY1BG1HTE0VtRe9m0JlYWXbM3W8 ORpusKRY1+J7ZtGcShdpQQjbyhw 2020-04-20 07:53:04 213.152.161.40 13526 52817 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r raspberryITA FY1teGAg+BqDlQak/DHfmZdhNsY 6/cpPJB/IxWQujLONKrf3ZDUOg0 2020-04-20 11:43:19 2.225.231.92 9030 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2020 +p reject 1-65535 +r rex FaLq4GgUkaXvLVRUCmh4MH51lrc 4bTghB8mFHMFNooQpTkf+BB4evs 2020-04-20 04:54:17 145.239.82.231 9001 0 +s Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12 +p reject 1-65535 +r snap277 FafPiL9SPsMSyXBqfljhdoGH4J0 Cxi/XydmfO4jsDdAu/9oIRZ73Uc 2020-04-20 05:29:06 84.120.194.173 39443 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2310 +p reject 1-65535 +r 5b82I0IfxsHI7ekh Fa5v/g4kWoINT3TqZLTDBO5VXB0 rsC/Y71lOb4bSireHgR5IhTrIoE 2020-04-20 02:01:11 87.122.102.237 8443 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1080 +p reject 1-65535 +r rofltor07 Fb4XyZ+s4kRw1Ar3gtapxpKrNtY Wqudn7SP04nETmlseyp7+/KXxiw 2020-04-20 12:06:50 51.15.78.0 9001 9030 +a [2001:bc8:1824:c4b::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19700 +p reject 1-65535 +r bosses1 FcPzmyc3J7au9El1xeb4+jQcL0s X1Twsavh+4KvjKCZer+h2GOCDNo 2020-04-20 07:08:35 104.57.231.27 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7300 +p reject 1-65535 +r snap278 Fcc9xdxiCYpJugmKJUppBPg+7gs hIDJaN/24gAkrJwhpo0Hn3Bb1ac 2020-04-20 05:48:49 77.232.150.186 36371 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=953 +p reject 1-65535 +r HardKitty FcvXUI3cuoFpdVZXh9OEA7sy1Aw dYu2LHiLKV7NsT9uJc1Hki3/u+A 2020-04-19 19:47:40 210.215.135.2 9001 9930 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=100 +p reject 1-65535 +r nortor1 Fdgy7qxnjsfusnsPZeDVC3SkO1s me2w0lc21kTf5jblVLBndFgYk3Q 2020-04-20 03:27:54 217.170.204.126 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16300 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Schneier FeW7pJA2IDo2DwBmLpOhfZQwAlo 6PkjtEG2QmGw93p4DWaH/VGUU4o 2020-04-20 09:37:05 80.127.152.4 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=430 +p reject 1-65535 +r peci1tornode Fe/nJp+z+L57bl74Rx7WoEeZsCA PvorPDG7ai110LQLW9rygwhfUiM 2020-04-20 11:35:31 80.250.4.18 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43 +p reject 1-65535 +r spider Ff7kI9/4r54uCBlZsMYyYHLGDaE LsfJqR1uZv3m1KaTRARSQgxnhbA 2020-04-19 19:05:59 192.119.108.114 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4740 +p reject 1-65535 +r theRack FgHJBhkAsgU/98t0vU7AUgKK9SU X3ObDvDfb7IA9xTdWEr0cE0u1j4 2020-04-20 06:22:16 81.4.103.214 9001 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=57 +p reject 1-65535 +r FGERTOR FglHbX1jN8eoBckavWH5JuxYzjs GHzEdAx7tfR8WXKixl7mv1Iuc1I 2020-04-20 09:15:26 87.121.52.41 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5750 +p accept 20-22,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r eden FgtYBaeB2TOQ1KKuBeqcW0OOeWc Mqq3fuuDNYBwxCFoiSbmbKBhYuQ 2020-04-19 20:16:23 162.200.149.221 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8300 +p reject 1-65535 +r LiuXiaobo FhenArMDIMN6XJ+jz7c3oq+pGY0 o/gu6rsy5AHcZ/WMH2v4BfFx3RA 2020-04-20 10:06:57 82.118.21.59 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6600 +p accept 53,80,443 +r snap277 Fh7EVu+c+lr5WGV73TwkI1lV/Xg Npeo9wXNCNTadb+FiOW/OkjENTo 2020-04-20 09:53:24 81.245.68.200 33051 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r BucketOfBits FjJMiRMr4U8Z4T/W6zIm/Frj8Fk RIvKkPgWOJKaH8jJG27QfnBL844 2020-04-19 21:58:28 142.54.162.114 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16100 +p reject 1-65535 +r Piratenpartei01 FjMD8Fg6GRcyYhQ3m9GrLShgRuo DhHfX4xLkC9lW82Os1xaQy+4kU8 2020-04-20 03:05:31 185.233.106.34 9001 9030 +a [2a03:4000:24:591:a8a0:aaff:fe05:20e9]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23600 +p reject 1-65535 +r dockernode FkKV1VopAmHTF4GU3rNqsAPlrKw tNlsB0NRMNRRKCrTHs5+2ByPDfY 2020-04-20 01:13:29 2.206.63.213 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1690 +p reject 1-65535 +r KienjochDE2 FlUyv1saNN9g10N1QJ1jLW+++D8 Cydzt3p8ajX3OM7aLMfNI6UEhBA 2020-04-20 08:58:18 178.254.18.151 443 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5500 +p reject 1-65535 +r Unnamed FljZ/SVAmf+qoCwiPskShiYB4WA eBL7VrlISHAcM+Jn/wE5bgaokOI 2020-04-20 04:46:44 176.9.144.162 30052 7042 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=990 +p reject 1-65535 +r toraway FlpOhDE2nyRvdL+D7rUVtLHSNMc AV6T4rIdGX6SAxjypE+nIoXaNZ0 2020-04-19 23:06:33 24.190.194.186 9001 0 +s Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22 +p reject 1-65535 +r Torshammer3 FmcqiDOL0BGxyq2JQPvLCb0gqI4 hZZsteWy2X10LN6nQVD/QniKKLs 2020-04-20 11:07:03 108.6.181.168 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r torproxy03 FmmFqEIwtfmnjJcHNq6US0E5MNc 7XPTPrVE7muZTL/OVKHVrBs7sUw 2020-04-19 19:22:28 193.169.145.194 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 20-21,43,53,80,443,873,989-990,992,1194,1293,4321,5222-5223,5228,11371,64738 +r guidemenow FoJPiF1ytPp6UJDgjYd+VAS8IU0 OEODqpJv73LrQv+iEkRIgACr/MA 2020-04-20 04:22:20 62.216.54.29 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p reject 1-65535 +r Unnamed FoSzCuKt03Hl06iz8orKTOnKLgA oGzERVXoVIOONOU0keeAZzKqMIw 2020-04-20 02:48:17 185.86.150.133 443 80 +a [2a02:7aa0:1619::94eb:3758]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24200 +p reject 1-65535 +r Oook FoZEEruZaQfkaWHV5+gy5BihvaA z/Hx+RPk4ArUPD/hup5ElBUP99A 2020-04-20 04:48:33 51.178.54.218 993 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=780 +p reject 1-65535 +r TorRelayFr FobLutYkCEN+VqV2lX5wht/tjT8 8xFB++06amLhTXWBgB8NI518sEQ 2020-04-20 00:30:36 109.9.187.181 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=281 +p reject 1-65535 +r gratinee Fofs6m0g5izzcbqNU7leaHiPmME Fv0RDVB3Kz+xIL6RnBSrg3aWwTs 2020-04-19 19:28:14 173.213.108.116 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4700 +p reject 1-65535 +r amorphis FpCXYIXw3V8IImci3eAfhgbqfEg UHszJTbgw9qcuacl5pdvnPAw3ww 2020-04-19 19:09:23 178.83.129.40 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r bradburn FpU1zEx1/3nG1UjUFyAGTuT+YdI WAEymPrAA6J76oBN96VjRK06OKU 2020-04-19 20:52:16 62.210.125.130 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=64000 +p reject 1-65535 +r Unnamed Fp02p1EI2dd7QiyJ76eDz7xmK/g UBRls04lxXW+AWxZR0bU09Ue9ZU 2020-04-20 00:25:11 93.72.79.64 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=743 +p reject 1-65535 +r torreyporrey Fq4nBLeUxsABPH5HrxHcq6gIoLk zTImyqqogAEMj/e0Rpb4JKq3dH4 2020-04-20 09:40:00 69.164.222.151 9001 9030 +a [2600:3c03::f03c:91ff:fe4c:1fd0]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p reject 1-65535 +r M5 FrsKKMeedwDnPAaMaPM2brVSQk0 g963XR5LhxqUe7QQ4Z+ZNd0+Rmc 2020-04-20 06:45:14 71.19.144.184 9001 9030 +a [2605:2700:0:2::4713:90b8]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4740 +p reject 1-65535 +r 0x616e6f6e FtDkUvzl5sKMhvxtFMP56pDowIU csGPz4Ezl1sfgJ7MwBWqLQWBQ8U 2020-04-20 04:37:38 178.175.148.165 443 80 +a [2a00:1dc0:caff:153::d2c7]:443 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2990 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r 456c Ftt4RZuEX05yhAXraU4ykp4rMYo ElthpHb8bALtvNULVYPcYx2xdfA 2020-04-19 20:31:07 91.213.8.89 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=411 +p reject 1-65535 +r zm Fu72xQgHlDI+NnQC0qjtysmbRXU Cb/iPq7egJCBZl7eDAl2/nf/UAY 2020-04-20 10:57:34 144.76.30.167 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p reject 1-65535 +r RelayTheFuckOutOfIt FvUPJyhYH+XKesMfUGbc6GU/mWw LPTFY1Hf9ID0AmDxazjawWv4mDE 2020-04-19 21:06:12 51.15.113.25 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r crmh FvaF70qzWxP7z84GwycK3kmP7bM hLWFgt8Oc5WlCD1Qq5QVxW5/TEE 2020-04-20 03:22:08 80.208.211.96 9001 8080 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=919 +p reject 1-65535 +r bluesnake Fvfp6T1sxGk5KtC6Ago/NZ35g0U 1qH4018KR9mzc4ADvAbajV46WhE 2020-04-20 04:24:11 213.114.157.212 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43 +p reject 1-65535 +r brmlab FvhGm4SPnctFkLzFzqXySYC9yAY D+tHR11L6YXvVs5LzgR0SRvRLM4 2020-04-19 20:15:25 91.146.121.3 80 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=224 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r estrellaobscura FvnXhBt+D0b0kdlO6ufkAVKXSUo WTJuudO8wIWKz15dXYsyVWRzZ2Q 2020-04-20 11:03:03 173.73.35.139 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21 +p reject 1-65535 +r firstNode Fv1+XWe3BU7k5/3fBK+0ghbKZAo RqmL7w98YtVhnQRx2etYkyEbPBc 2020-04-20 11:54:56 82.165.115.166 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24400 +p reject 1-65535 +r snap277 Fw6QLNVGIiEkMCMMs7pd9BPIGjg rBzBkoTWDORlLnOwi0ZLwSJFi58 2020-04-20 08:46:50 212.198.134.123 35581 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=160 +p reject 1-65535 +r bella9 Fw7xnA+gSR386m4fsJQWcLgFBuE q+TyH7dOA4mwNOQkT8hjIaivKRk 2020-04-20 08:54:49 94.199.173.217 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=789 +p reject 1-65535 +r austria123456 Fxlb8PHUELhPvKnqscse2XR852E 2Owz7uhgI9e8DKlQBkFVjhLJjFw 2020-04-20 11:00:00 144.208.193.246 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=270 +p reject 1-65535 +r Unnamed FyN1GFST2dYkiwHPloOlQJ0BaPo +Sty0hMri/icu12sEcE1AOnVaU0 2020-04-20 12:40:02 108.2.139.164 9099 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18 +p reject 1-65535 +r bwRelay FzPVeqFtLp5aRI2mB/yl+pieT00 d3OBFVlv74r4kM0UhgF417gq/tU 2020-04-20 12:11:51 192.99.42.34 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11000 +p reject 1-65535 +r blueberryTORnode2 Fz4SBsI4jaKMBpmyPq2ui7eWmW0 xxHpjwcg0C+SPCKgFPSzAoRPfkI 2020-04-20 11:59:11 188.166.93.208 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=480 +p reject 1-65535 +r Unnamed Fz66H6yllxhJmugCMYfl+V6L8cc +gdRRbF5vtnY43Vc4pR6goJr/qI 2020-04-20 01:55:14 37.187.122.101 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5510 +p reject 1-65535 +r Unnamed F0II40aBKuBgbmKPW0AV8Jfo7Sg 6QNdyBwe2IBmDTdE5XGIw4b++aw 2020-04-20 11:39:57 51.89.114.178 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed F0PAzIJRcFZrIOUv8W3E9G53j3k x0daOJrAWCc+VGaGpkhe4fLp/28 2020-04-20 00:01:31 185.14.30.137 9001 8080 +a [2a02:27ab:0:2::d8]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r blackPanther F0YJl+ZsR/gFqDS+k8wU7A3GCOo W86mp5Jd0S0xVOngfmPiJqQ21DI 2020-04-19 22:42:25 213.183.56.140 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=520 +p reject 1-65535 +r Tordubreizh F1XMzNWJuB0qyo263kiAZU/t07E LN6c5ptj7HMTpr4I4/dGiAMVtD8 2020-04-19 21:52:33 92.139.56.67 9001 9030 +a [2a01:cb08:8de7:6300:dea6:32ff:fe16:477b]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r ShrubberyGreen F2qTclP2opY5ksJ6mP/k7I4cK1A ZN3PVtdbRpWMGVQNbM3tR60dOZI 2020-04-19 23:59:13 69.250.241.88 19001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=269 +p reject 1-65535 +r Unnamed F2/WhtCDSOn8XgFL0LZomc7zTxM PczmhM9dSxn7xJYdxuIA6h19sIw 2020-04-20 07:00:58 103.230.142.10 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=780 +p reject 1-65535 +r snap277 F3oNZtxkQrBublf2hBGPE/PhmBc Pzve/C7HWQolw0o9vu2sq294HRM 2020-04-20 05:21:57 119.155.58.210 45553 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6 +p reject 1-65535 +r Genideb F3qnYOf3ayWc8mAj15MYiujcmm4 Z0zy0M1OylrVHPOGrDIa3Y3Sshg 2020-04-20 07:09:33 178.74.103.183 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=698 +p reject 1-65535 +r nonanet07 F4bq9rvFVSuZF+1NlGWGl3KhXmw UpDheO13Or5SChLWteWLmhC1LPg 2020-04-19 21:02:29 209.141.38.43 443 80 +a [2605:6400:20:13f1::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1640 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r baikinman285 F4nmXV3oNl7lsKasliEE8/TSNZ0 ll4/3daWf7uo9NceuZ6f9WZZfQ4 2020-04-20 09:45:25 36.55.231.145 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.3.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39 +p reject 1-65535 +r BlickWinkel2 F5IfTABXWfB+fS2AB7aZmTiKquA DMW0fss3ID9ZvWXl8oKhzIKNxSM 2020-04-20 11:58:56 139.99.96.212 443 80 +a [2402:1f00:8000:800::850]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=660 +p reject 1-65535 +r Aarsdala F6unNFctuxBQzzgA8N0UW65+2ac XZBnstxNErviVbig/d2r3r0ueV0 2020-04-20 01:24:27 185.109.91.126 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r BoneColdSteve F64oLrqzcQCzyHV4AOT6YfEb0oQ zx6jOz4MGdjxbPGXdYwdpiuu2Ys 2020-04-19 21:52:29 47.152.35.153 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p reject 1-65535 +r AntecsTor F7GFglY4nsB9TErh+SpWSTDHntQ K9VqoYpaESWnkGS5fvJH657lWiQ 2020-04-20 06:39:15 5.189.143.178 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=162 +p reject 1-65535 +r snap277 F74G3zZHRrgF86epeFOgZAEM0y0 tpXbP+m4t9ptH8+7lJsuD4Sn8Oc 2020-04-20 12:37:56 71.63.154.38 43173 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=290 +p reject 1-65535 +r casalserugo F8EdIhTLopJYF2WlFNyMzU49hIs py+LNf2+11WIo+SP+KALusZnY5c 2020-04-19 21:21:15 37.187.180.112 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6210 +p reject 1-65535 +r UnseenUniversity F8KfoL8cyeJQB8cCloNXYWLE5og d0mXBIxD7HYmgzhVbcje7TtEAzA 2020-04-20 09:49:21 93.211.235.226 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=373 +p reject 1-65535 +r elguaposghost F8xNJeM5k9ARzabmiAZDX//S5sc 6kWENyybH47YJLdD8s3zhLcvIBk 2020-04-20 08:53:34 99.164.87.33 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=579 +p reject 1-65535 +r ddxor F+lY8F4mmNU226ARknUMiyPz+WQ hl+2rl+5dR+dMB/0+ckIRolTBdY 2020-04-20 10:03:45 139.162.232.42 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=840 +p reject 1-65535 +r voisocial GATAaiZvDaJt9YzVWeAcL3w/xCo TJj9MctCBwRjfaU01MtxjRkEUVM 2020-04-19 22:00:00 92.42.136.105 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p reject 1-65535 +r Hydra12 GApbzAGGbgnk0im2wITNHjx1Y28 crFc56aJEHtSSqg673m/0yF9ABc 2020-04-19 23:27:22 89.34.27.149 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p accept 53,80,443,1194 +r wisdomavoidance GBRm2IMqmz3tbuuYjPNKyXF9lFQ B8A6g89V3JBXW6nXtwA4liNZ/Hc 2020-04-20 00:13:13 66.44.22.166 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33 +p reject 1-65535 +r Dozer GB3GDIJOtWJ2H62t/7fx4YwZ6Wo WmshkrMHrAW6viqx+E0QJHvvNkc 2020-04-20 06:13:51 87.122.248.39 39001 39030 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3400 +p reject 1-65535 +r cybertwink GDyMZyfiE3ryeLOFCtXZwjBLmMk d5xDPKAMrksDDWBTmCbYChOf1C4 2020-04-19 22:58:01 23.129.64.201 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6590 +p accept 1-65535 +r SchulteTorRelay001 GEHLlgEogGFRth/G2Hr76amLmdc aSMUx/KPP2bZz5i0ycFe/IcWh4Y 2020-04-20 04:22:31 66.70.211.20 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r xmtx GFBYW+m8ofgNCgUZCclOSdHEntM fI4yzuihR1YS8vPkOsOvg5Yh1b8 2020-04-20 08:11:01 78.194.158.141 9001 9030 +a [2a01:e34:ec29:e8d0:224:1dff:fe11:170f]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14700 +p reject 1-65535 +r FoobarFritz GFLYSwNBhF8r3CzLxnPp1CMHoRE dB6R25e5Cf5Y8y1L8AKr8vPBRp0 2020-04-20 08:52:39 84.174.131.205 9001 9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15900 +p reject 1-65535 +r DFRI5 GFZjt8End/BSssLSPXojnY2oig8 Mt+Qie3NDK5hQzWTg9RZgYySVeU 2020-04-19 22:37:05 171.25.193.25 443 80 +a [2001:67c:289c::25]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25600 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r BoingBoing GF8qV7DEYgWCYCdhCX0X24FlT3A vGY+xmVF8HYu18KjcpUL5JxhAVA 2020-04-19 19:30:50 204.11.50.131 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4620 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r smell GGLda+r+zvHFRC5TYoafJoUzzU8 drUYEFY9SqJWlqIwZPBeJ3f4CAc 2020-04-19 22:22:57 45.9.148.213 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7600 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Unnamed GGVJPeurlc5OV8THuejFB1VmvQ0 XSUn9NW8yj10EYHj6s9bR5cQtRM 2020-04-20 07:31:53 185.8.177.152 46265 41963 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=150 +p reject 1-65535 +r TorOrDie4privacyNET GGcd5QksZ4g7+yRQwyZ7kmGL7GY lmSgOQpytgVxB64AD1NiDeAHg1Y 2020-04-20 11:01:29 37.157.254.114 9002 9031 +a [2001:4ba0:ffff:1ce::3]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50000 +p reject 1-65535 +r king GH+KRygbsPpSIPKrCT+xXS4Ex+c +nBI+bIcNrRbzsdHPk3tJ8llS8c 2020-04-20 08:33:11 51.75.175.26 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=23000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Sunworld GIME+W991vljpVimqyzfw5q7mjY hKKDYdqwB4IWDOXA5lG7sLR/d/k 2020-04-20 00:02:18 210.140.10.35 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39 +p accept 20-23,43,53,79-81,88,194,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r TOPAS GIZzzzk3RCUXMBgA84O+U9ShdzI gompXkoB8z9lm00Ake5JEEv2nqc 2020-04-19 23:26:28 83.135.64.130 9001 9002 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1090 +p reject 1-65535 +r ididnteditheconfig GKP2TupJa/aXVUqrJgju6gUNseo l8kBz14Pr6BSBFxZasehkXi4/o4 2020-04-19 21:00:56 78.90.198.72 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5350 +p reject 1-65535 +r 3cce3a91f6a625 GLFgzV4iv8NFrue6hLfqRb9Ff8o gz+iu8k210PIwEAswfv/EQoobXE 2020-04-19 20:27:36 5.132.38.231 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43100 +p reject 1-65535 +r Carson GLstsSoLzBnqjk9Ng1orMfmWahw B9w7zUHgMoiKMIamf/XbUf3aGwQ 2020-04-19 20:33:04 172.107.201.134 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p accept 20-21,79,88,110,143,194,220,389,464,531,543-544,554,563,636,706,749,853,873,902-904,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Fractalia GMWF4VPfvMQUuCWf55lLpSC1628 2TdCn6T3faJ0ziftow4w0Z2pLCY 2020-04-20 00:15:48 45.77.196.39 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=291 +p reject 1-65535 +r FreeAssange GMozmtDDPqsDXx2GlRjz0tiLq8A 9HeIzZrpsz5VkcIgRhxUzFgnA58 2020-04-20 11:03:53 14.200.110.106 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=119 +p reject 1-65535 +r GermanCraft3 GMqeoJm7mGHjVNKm/0kzen6BwvM 1GUHp04NqqE3M6nZ7YxiEYxHjrI 2020-04-20 08:56:20 159.69.2.239 443 0 +a [2a01:4f8:1c1c:af5::1]:443 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19500 +p reject 1-65535 +r tormb3 GNjVjTd+GZ57PZ0ePo52HZHKn0k F0RnewQwmSGWjxkOoJuaBvc7L98 2020-04-19 21:09:30 18.130.166.169 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=600 +p reject 1-65535 +r millet GN9sBTsSH1HQYawi207sbsOOVBo lazC6paYnCWHPddunrnrwHeC6Nw 2020-04-19 20:34:45 220.130.54.175 9001 9030 +a [2001:b030:8315:ff02::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=283 +p reject 1-65535 +r snap277 GOFvwIPCKA71Yb+L1nFks0Ns+Io 9RSDP7lQEwL6PDdVb9U6A8pofHg 2020-04-20 11:31:07 81.232.24.84 44241 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1360 +p reject 1-65535 +r C3WEyeOfSauron GOpq+jYJoLJHUvv0EaLareJ94Sk zqdJGxuARRRVmCu+lHQfbzkPWdg 2020-04-20 06:22:44 37.252.188.180 443 80 +a [2a00:63c1:d:180::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r sweettearummy GO7p2FU7oBcaeWfOuWNmhk7w5VI Vw/nsLmPxdft1ayIzkQPXnfov0s 2020-04-19 22:03:35 8.26.21.143 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p reject 1-65535 +r homez GPNK5lZ/X7CBxDU9Xtpc7hVYEMQ aSKbQlHFDYlO2MNnYScoxRpRZAs 2020-04-20 08:05:56 188.165.192.152 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22500 +p reject 1-65535 +r NervousPayne001 GPuudQZgdgFcknLujH+j3fVXTOE 91zm09/W7VoBVbTSdYcKL2V1GMU 2020-04-20 12:21:44 109.241.167.138 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3060 +p reject 1-65535 +r 3158e4013328 GQRRHrKteGOhMj6lzhFYI/bZ40Y lrSQ4k81uvijKU2Bx1fI2XmW+90 2020-04-20 08:24:15 51.81.253.192 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r okolnir GRCfrg6e42b/lOxqR3w7M+eY0YE AAV8mdf+4LlBWnWcjUb4Eh2SvPY 2020-04-20 09:25:34 185.185.69.212 143 110 +a [2a0a:2b41:14e:3063::]:143 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1640 +p reject 1-65535 +r Assange032ru GRL00wf46Oe+vtV3y6kUnUK77eQ +oEgTqycrFEUZCJgxSqFvPIrLBE 2020-04-19 20:06:50 45.129.3.116 9001 9011 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6950 +p reject 1-65535 +r operaTor GTQ1qhF7Dt0njfwHpEKAeGvuoo0 AihbR6LRJOmS6ueBUXFP8dUZfaQ 2020-04-20 00:10:18 24.27.75.137 8443 8444 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=490 +p reject 1-65535 +r Aerodynamik04 GTjrrLsae/qIjZYjyQBhEw5juz8 7uE6MBoChZlzSO93EYshXwTFRcY 2020-04-20 10:26:28 149.56.141.138 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r SatoshiNakamoto GTnMG0EpiknAaEh4gT3tXNGp7pg HB9SNsKP3cG/OvddrxUVWHacULw 2020-04-20 07:27:17 51.68.139.151 9001 81 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Thrones GUTzpHPLd7Er2049FZY6JN9Y5Oc CP6NUXq4T1NA1zrkS8VDEe18QZY 2020-04-20 09:53:33 146.185.189.197 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13400 +p reject 1-65535 +r snap277 GUebkg/oVIBWydVGcNw0VSDvOM0 EncJWfRDOPYmOdismVCnif5iW6o 2020-04-20 12:18:06 41.76.158.106 42237 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1 +p reject 1-65535 +r kree GU7XQAVt11FAyC/uss3ZCZ9gKE0 rjXzp3y4wnb9ZMgpqcXjMVK3o0I 2020-04-19 20:39:50 85.248.227.165 9003 445 +a [2a00:1298:8011:212::165]:9005 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=60500 +p reject 22,25 +r artikel5ev3b GVcS6W/RwbGNFNCenk56ZBbiOyw Y7p+CBwg78SYUPh4jDvxtQQ+fvE 2020-04-19 20:13:40 87.118.122.51 443 9030 +a [2001:1b60:3:239:1003:106:0:1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5230 +p accept 43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r hovaNet GVomo5DEKhzp+nfS/cJftlrifUU xXYLvp9f9EWgKwdjieGBy7wGaHk 2020-04-20 11:02:18 96.232.195.28 9002 9032 +s Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r snap277 GYm9fdOW/3M5itsEEwTQEgAZZag W3h4f20+sxow2+yfs/yIIMZ7jKU 2020-04-20 12:48:10 86.193.126.68 40087 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1240 +p reject 1-65535 +r MakeTorGreatAgain GY8S4t775r7rw4sv7dYVrss42no arYnBDPg1fvxmzG/C1iR2rCJ7a0 2020-04-20 01:12:16 212.227.200.133 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=52700 +p reject 1-65535 +r snap277 GY/x1aaKNuvBiKO9tOIkVeMfI3s ZMCnULsCD+ysDaBppEdAhUpuyrs 2020-04-20 11:46:54 71.125.56.44 46251 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6080 +p reject 1-65535 +r 15soEiRelay GZpL7MGYiPnjB6vBnrQxLquyzw8 l1ZQaqYsqx0XXw6EQB+26o0BxwA 2020-04-20 09:05:12 78.35.204.113 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3100 +p reject 1-65535 +r NonsenseInc GasCAlFhmo4l9fql6luQE1NA+os 88VoAIqXksEDL0SbkUyXqnoBU3c 2020-04-20 02:26:08 77.191.165.232 9933 3399 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1010 +p reject 1-65535 +r nodvrelay21 GcOAgSSbwg9PQEAYYD2xGgoK2KA M1aq8nH6+FlIjO/sRNFGUarHFOU 2020-04-19 19:20:51 45.62.246.185 9001 9000 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3940 +p reject 1-65535 +r Unnamed GccIfYiD2jerSZZtIWM8EBBGPA0 d1ADP532kALGI2oLc+7QtcXSXZg 2020-04-20 11:16:14 46.105.191.83 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13300 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r mosaik Gck4KEmBHCN6iiH2b0IuBWt9vS8 3tadYp78t8LFWu5iS+MhflAM+34 2020-04-19 19:11:50 188.194.60.85 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=862 +p reject 1-65535 +r TouchMyData GeEK8VEWCRZeGTMKxJzP7OYBjkg 6XLEdf+cx5Z0SPq7mBt7RxssNCI 2020-04-20 11:37:23 67.166.175.144 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5040 +p reject 1-65535 +r FlyMeToTheMoon GevqlTKXuoM3Y/qsGXWI/vKm/Jo 5xx+WZNVrbvue34s58ec+mft5FY 2020-04-19 21:17:00 81.11.234.72 443 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=90 +p reject 1-65535 +r EmiIbarazaki GfTZYCibH3XkDaD900+BWWRL8tU W0Am+a6zGDqKJRejekzWmlmg2sM 2020-04-20 09:35:01 178.62.79.227 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=970 +p reject 1-65535 +r Noaccess GfkDE7LA6wPvw0dwbyc16Bh22EY VXSMhmuGQyuWl8gxu3AImwk3vyU 2020-04-20 05:54:17 80.219.136.62 9030 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=724 +p reject 1-65535 +r Unnamed Gf/wTEtESKmT9ckIyZcEiB3NR2c 7P+XqOsZMT8JNMEGBv9rD3b7gxs 2020-04-19 22:52:58 87.103.241.202 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=395 +p reject 1-65535 +r Avalon2 GgArbhY9UC8jOBORcY4RpWiXZAM LbRKXfIN6vbyQN1nR/3uDGT0xxQ 2020-04-20 07:20:18 62.141.51.90 1443 8050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14200 +p reject 1-65535 +r ABCVG GgIKQU2Ksl9UQVyMHnWlViqd2aY wnapvIEkQOMPOjf23oIx4r9s0DA 2020-04-20 04:55:51 37.187.103.54 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8950 +p reject 1-65535 +r lepton GicPLyobraBc1BCadNz4tjBnaLA AC0U/jvdXVjIf5lU44Gvs7SdF/8 2020-04-20 02:15:54 108.48.172.138 8001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6020 +p reject 1-65535 +r MYTORExit01 Gi7uRkp9pQCoaaunpbx3LP4ZhTQ 0hDcznlJhqZ1QRETHaNWqGizxFY 2020-04-20 02:39:28 103.75.190.11 9001 0 +s Exit Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r AutoNoMe GjrBG/hc44bhmGP1zfd2m6MOSgY BCkRwcrPIOcb4o/WezzU2LWHQy8 2020-04-20 09:28:43 185.212.149.125 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8700 +p reject 1-65535 +r moomoomeadows Gj7SOE5/kpYWntA77tU2zdHz3EQ F1QbmGsXHroJ0RhoI5oDmsjvBt8 2020-04-19 20:27:57 82.4.83.111 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23 +p reject 1-65535 +r Unnamed GkNYi74SOeqJbdBsItqyDAxeaO8 RHjiVjJDFn2mmTDED6fA8mVJ4uY 2020-04-19 22:09:49 185.113.140.178 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3200 +p reject 1-65535 +r clicker2 GkjKzDD8BkJxA86zjEEyhzGH59s +th8FGPq0xEuvBAbX9q6UAdbuNI 2020-04-19 21:09:21 94.16.116.137 993 9001 +a [2a03:4000:29:91:2549:9:f370:a1]:993 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r just746436456 GlLh6pXqHAXmo7ZDqprB6H/HlvM uSsYUs5oQ90kV4+64D7bhsYhEGk 2020-04-20 11:03:34 37.221.195.19 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2670 +p reject 1-65535 +r newnet5555 GmatX3y940wL3YSdKICc+YGJOyw yYZCcLEL+LXUkuKVuiqPrENlCRg 2020-04-20 07:03:46 209.59.175.188 5555 0 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9 +p reject 1-65535 +r IceMaiden GmzUp4vFpPGc8vJ8SrMuRMiyB2k zNeXHUYLTkrDS1Oi5ZsnwdvUCpg 2020-04-20 04:19:34 82.221.105.198 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p reject 1-65535 +r Unnamed GnbteijLcB0t4VbLXJApurBa1TQ E4sa5+8B1FY90yveFBggJiH1zC0 2020-04-20 03:18:56 185.246.128.163 57898 54094 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=250 +p reject 1-65535 +r angeltest28 GnolFqlh8oOPf5R4aogRvoL5z/4 Oi4tepImONsyGnkVpmiusRCXKSg 2020-04-19 19:19:41 31.207.89.49 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r TorOrDie4privacyNET GqwZ2JL4SRCrlMRQkiQaujz8TIk aLmW1n3C3djKmiOqbsQVYDyqBMo 2020-04-20 11:01:40 91.194.84.89 9001 9030 +a [2001:4ba0:ffff:1ce::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=64000 +p reject 1-65535 +r Unnamed Gq0BX02IVBOivODlgVkRaQEjbEk Ik1IsWdLiDd0GITeg1N5O1g7bvY 2020-04-19 21:30:55 51.75.143.145 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=15400 +p reject 1-65535 +r marsvillsvin Gr1IQS8UWpPHDfZkoqMaGEAe1ms jAM4IrNio/SE6qk4HQtNTxie9iw 2020-04-20 01:15:27 51.174.15.18 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2960 +p reject 1-65535 +r FOO Gr2fzXfa0MF8xB+0oId7jUVBfj0 P97zenNBAngFczjUdhDTRYizZxk 2020-04-20 11:42:19 178.175.148.25 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=12800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 GsVdTRLHu2XHG8uo5jm2OLUwmbQ vcNbUGYbFoxb/LgteJ4jqkR61qY 2020-04-20 05:44:54 124.197.63.133 39901 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=161 +p reject 1-65535 +r 948794crazy GsstAFGRtri+LibAIesLoWR6WrM D7zcSD6zMS8HS/aT8JqXhMKlyFs 2020-04-20 05:14:18 128.199.213.157 9001 0 +s Exit Fast Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=376 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed Gs8GZoRLiwrKo6Dp1DUIdcIXsc0 kQiiznyVogl493nYd6lAct9TCa0 2020-04-20 09:23:22 139.30.255.200 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=73400 +p reject 1-65535 +r PoopyTheChinchilla GtTCfNxmgKape2V8puJ5OmN2ZF0 GbMHo8lB+gbRDYW9G8OwdXTOuC4 2020-04-20 05:18:04 95.109.122.52 143 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=200 +p reject 1-65535 +r Cygorg Gt2TQTRPwLRZ1Gel5DUbuaPKFqo xQfNV/h9861LPWJu4RphNrY++Ag 2020-04-20 08:24:36 93.104.244.179 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1420 +p reject 1-65535 +r Ichotolot60 GuA57gsR23nktLKcup91KGSgJZ4 Nu55chBchrKSi84HONu5k9Bw9o8 2020-04-20 12:06:56 81.7.14.253 443 9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4340 +p reject 1-65535 +r Yossarian GuGAJQ2AppIHfto1zI5zh6n98iA 1iS1QEEhppveGAt7KnSsraTR+4o 2020-04-20 00:25:40 97.107.139.28 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1550 +p reject 1-65535 +r Quintex36 GulJln+Cu+dTSj1rp3p+vhztQ2k 9n3MSwPurK06QlhbFLpUi/0vf6M 2020-04-19 22:39:51 199.249.230.85 443 80 +a [2620:7:6001::ffff:c759:e655]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17800 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r pato Gu0VcdX6c4WsPCX7Pob0nnBqvZk awCgmCiEcT7Cz7nGHn4tfDBdlDw 2020-04-20 08:54:15 84.74.203.146 7444 9031 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=520 +p reject 1-65535 +r BlackBox Gv9Z+bJXnXgoTvcXOhg/NAhtS1Y gDqP76oaK71PyO2UzGDToNIxz5w 2020-04-20 00:46:36 217.182.76.66 9001 9030 +a [2001:41d0:601:1100::1646]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10800 +p reject 1-65535 +r myNiceRela6898y GweeLo4kZb99LGMo5nCpgspf6UI GAVaLsPVE2dREzrpeZBoc5hda4Y 2020-04-19 19:42:11 78.47.63.216 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68400 +p reject 1-65535 +r Banana GzChfHfmMrPaY94/KhgFmocqUt8 5fi7WfaqipodtJdGXIom1LMakDQ 2020-04-20 10:08:14 177.148.220.33 9001 9030 +s Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=22 +p reject 1-65535 +r IronKangaroo GzWPEhC+HmDr0y6wc1bDYucMsoo Yt5Cr8NRPKrU2k6Z8/Wnvsyd3eI 2020-04-19 20:06:15 95.216.164.6 443 0 +a [2a01:4f9:c010:18b0::1]:443 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28000 +p reject 1-65535 +r TheBestRelayNick3 Gz5I115/fmHRubviS6FaOLRUOA0 k1j1/+v1aD89x3YveWovHeoSvAk 2020-04-20 09:15:24 74.14.203.222 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18200 +p reject 1-65535 +r mamafisch G1T8aJenf1vQBtDbBpcXNeZSfR4 fDUCASTU2dOByDk95PU/afhRmz0 2020-04-19 19:25:07 148.251.155.108 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1130 +p reject 1-65535 +r slalix G1yaot+WqOZgPU76I4r+RUqDzM8 vW9G8wYwNYooVOkYiUp6aZuAyP4 2020-04-20 00:48:06 104.244.79.131 8443 8080 +a [2605:6400:30:fd6f::4]:8443 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6220 +p reject 1-65535 +r snap277 G1/O6bDgGvBsc4UbB8YmgnSYv7g ed+TxkogZcC/QeVihoMcdEl7E8E 2020-04-20 08:56:47 179.110.49.241 37359 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=433 +p reject 1-65535 +r niftywabbit13 G2BbJ1EnmxUsoJjtdrHrzJrcojk oA5XRQN+zB4Rn0Ac9FE35bVmeIs 2020-04-20 10:53:08 185.220.101.243 10243 20243 +a [2a0b:f4c2:2::243]:10243 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24200 +p reject 25 +r Kolobok3D G2NBT7rh2ZiaZFO5ZMJvdgYGmDY Z8R670xxx+HCJr7PmoLfRbUcNhk 2020-04-20 00:34:10 91.77.161.90 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=334 +p reject 1-65535 +r snap277 G2ouDLZEfzjDtyGdexCHdwvgZUs w84u5WKYKHMF9fxGD42PmzIrEbU 2020-04-20 10:30:26 75.160.57.14 33916 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r ryanfragdev G2s3uuJgfitsgWhaI1Vut8+5lhw zDDBnTCAZiYD1kEDgkCQdi0JlgY 2020-04-20 03:49:45 144.217.87.28 9001 0 +a [2607:5300:201:3100::24c0]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=673 +p reject 1-65535 +r YesIdidTheConfig G20vqNS4e1zY4q6N1aSp3GpptFs bwtECgAPm9adpv4fCYeheHHLhKs 2020-04-20 04:30:55 157.161.57.70 9001 9030 +a [2001:4060:dead:babe:20f:b5ff:fe1d:6879]:9001 +s Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1 +p reject 1-65535 +r schkorski G4GIFw8K15mKfQS9XOn2EosDLI4 ucpp476O7XEFYtwveG3u/OCqm7w 2020-04-20 01:58:28 91.203.146.126 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3570 +p accept 23,43,53,79,81,88,194,464-465,543-544,563,587,706,749,873,902-904,981,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r torproxy04 G4+u39QoxUap3MnsFeE8BVAiLUQ gkagaNGEy/EPw2gwS8ioDCzjASk 2020-04-20 06:26:27 193.169.145.202 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13300 +p accept 20-21,43,53,80,443,873,989-990,992,1194,1293,4321,5222-5223,5228,11371,64738 +r shitbox G5G4a2cxemNjb+OKvmxOcBorGpk BB5DcbXPS2+8VCdgWbZoh68ehQ0 2020-04-20 08:16:22 76.72.171.41 9001 9030 +a [2607:2200:0:3902:1a03:73ff:fe0f:1465]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20900 +p reject 1-65535 +r niftyguard36 G5I1ZWUD6A6RPpyaE5rYnTbi3/0 ktDbLDPo1iZ7S/nUrEeT2s/5aqQ 2020-04-20 12:44:40 185.220.101.245 1245 2245 +a [2a0b:f4c2:2::245]:1245 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12100 +p reject 1-65535 +r kouettng G5WeB98MM8HpVsjY+kFatS8Hb7c NrFz5AvsrWCqKvX5ej2eXiGjHuI 2020-04-19 23:37:50 163.172.27.62 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=7900 +p reject 1-65535 +r ieditheconfig G5bthB6lUoGAKJIcxrUUZV87bm8 I5QdUAj5LizvefnJaijtsNNFe5o 2020-04-20 09:34:21 196.12.37.68 80 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p reject 1-65535 +r sqrrm G5wmwdqxkOrT6623CRTglJrcJYg rwoIn9+SAo8O3jXq9iDb2HhZcME 2020-04-20 05:54:55 185.25.50.199 9000 9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6400 +p reject 1-65535 +r CalyxInstitute07 G5+s8l4X0m4wfqfPp9RVsUSwMuU AYvPgilEmjbc8aBrF28VC09HAiE 2020-04-19 23:21:46 82.94.251.227 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19100 +p accept 43,53,88,110,143,194,220,389,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r Assange017md G6L5Q2wAGKS1JiXQcbcvZIUit0g +IDjNYpYLSNMF8uO/lujTAZStF0 2020-04-19 19:33:16 176.123.4.64 9001 9011 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3200 +p reject 1-65535 +r ggggg2 G7mLb268thbQvZSF6ktvp6dQHXQ 69VnqXzx7IpYLnM/UP2Mah1Rl2M 2020-04-19 22:52:03 46.4.174.52 443 0 +a [2a01:4f8:222:26c1:46:4:174:52]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7200 +p reject 1-65535 +r lecirque G71xa0lz2W5XDTNKV3aXi/9+Dl0 qu3QUwnix1pHG0SsbXdXrVP5JV8 2020-04-20 00:59:52 151.237.185.134 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2950 +p accept 993-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r cerberus G9OxlRQgvwz5+Xm5J2wFSesDiSw WReBsezz28x64+5c5FNOIaVf0Co 2020-04-20 12:11:08 217.170.205.113 80 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2390 +p reject 1-65535 +r DigiGesTor3e3 G9vpwPcDTmeJqb977YK+IEXw9bc uzbdV+eQHghS/mGFDXB+AzSL4gQ 2020-04-20 09:42:56 94.230.208.148 443 80 +a [2a02:418:6017::148]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33500 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r snap277 G94vGQzFNItQWw7sxeTNq7opaWQ 3ewWMoknVim5oB9ZJIn//pn31pk 2020-04-20 12:44:12 46.118.71.133 34331 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1290 +p reject 1-65535 +r VotezCommuniste G+3ekpYMQGuUmECGQH3njcozMDY jcgVxkxRndEGDMf7y/h2NfMIbGI 2020-04-20 01:36:44 80.241.217.52 110 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3000 +p reject 1-65535 +r AnonymousNamespace G/w4MTNdBZqAvTDWW2LXpyXJUdc DYxLvOybBp/tLAtgYfGoOsh+XK0 2020-04-20 12:09:33 92.245.194.234 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4 +p accept 53,465,993,5222,8333,9735 +r Valyria HAQ7BFexZcFIMCAFqfswkK7UPiI D7n02QQUVvL/Ad+40TTQbkTN34o 2020-04-20 03:19:05 194.99.23.167 443 80 +a [2a09:cd41:f:4267::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11100 +p reject 1-65535 +r dupa HATlPsHt9DlUCKbgGqBHfMgUGyk YDEFE0NtifX6+J+NV6urHGlRnjE 2020-04-19 19:08:42 51.83.76.139 9060 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4110 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r FreedomFries2 HAc2zzdEo7h8LSJpuL0ziMfmBVI rTh7o2d3c1VDUo926r0HKFn5Kt4 2020-04-19 20:14:42 94.130.246.106 9001 9030 +a [2a01:4f8:10b:3344:106::106]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120000 +p reject 1-65535 +r SpongeBob HA0K8/8FzLuktu0mIZakxadhAuY pavQFlV3CAfmZHxlT/iv2hO5t70 2020-04-19 18:54:28 104.244.76.13 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56600 +p reject 22,25,119,135-139,445,465,563,587,1214,4661-4666,6346-6429,6660-6667,6697,6699,6881-6999 +r ProtocolSeven HBX9I0yTtlvgyWwZ97d0+tozlWk aAkqgBid+0RtJQd1Q7VzvAQboOI 2020-04-20 04:12:57 162.219.230.139 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p reject 1-65535 +r jpfnzov2 HBwnW46fjQgkQk3fq8pIi6JHVrA F7HkgFGn0FIEc9pVC0WQlwF9WbQ 2020-04-20 10:37:04 95.165.143.112 2115 2116 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9 +p reject 1-65535 +r AlekseyNKrylov HCSiZpx+DWKyFXuV9W7QDuMHyFw LH9D8jd5iARIwb/TtkbwXBAbzK0 2020-04-20 09:01:25 144.76.58.23 9001 8080 +a [2a01:4f8:191:6205:2000::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r LongsideOutbck HCZUccqrIPHT77u21mSOBg5/dcQ oILXKLwCHdwOyvz/5b3THj1XBco 2020-04-20 10:31:18 207.148.99.160 9001 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=400 +p reject 1-65535 +r niepokorny HC8JKaSo2WYdg+cP3pa2EEDsoU0 oIIB9Q5Iws6+IAffnRV7OlDA4/Q 2020-04-20 03:59:21 37.187.118.34 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9620 +p reject 1-65535 +r Assange020ca HDxK7wNtEgLuxiMijrpftxkx4qM RQrWUSAFtqP5BPsNxTi1R1CxbKg 2020-04-20 12:40:51 162.250.191.15 9001 9011 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6130 +p reject 1-65535 +r VrijHeid HEFHveMe1lcV/hzwiFcOFFv0aqE JAOSW1qBRQr2eAPAcjUU6c6yWCc 2020-04-20 02:06:55 94.142.244.16 443 80 +a [2a02:898:169:803f:ac0d:485b:397b:88a2]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4660 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r scottsmith HFW168buMc8ZieOs1NpPuLZLwjE +aOghWvn8GAEt0poI7MSGNMkHYU 2020-04-20 01:04:19 173.255.250.126 9001 0 +a [2600:3c01:e000:b4::8000:0]:9001 +s Fast Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1500 +p reject 1-65535 +r ILoveMyBMW HHDCqn83cs4HxO9rGKbjMBUDcu4 59bSFQkSiYwDYebLE0JT2xoZeZM 2020-04-20 08:36:06 145.239.85.208 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16500 +p reject 1-65535 +r blablabla HHIVvAEj3aI73tD50oSdOtgBg8s a43eeDxR6WHiU5ZI9NqzotGDTo0 2020-04-20 01:28:00 148.251.201.50 80 443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=60000 +p reject 1-65535 +r RegnalOrton HHbhMrl+8KA4dGR95lunSDRpwns y+OmrL9RvjsJLuvgGxb6b3TyfkA 2020-04-20 01:53:47 87.181.46.200 9001 0 +s Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44 +p reject 1-65535 +r idideditheconfig HHgWvHk2vZVTIr2UAoVbKIzjyTY c2Qv524dXXzw9qzIl+UIvPqYjd4 2020-04-20 12:04:32 188.227.201.133 443 0 +s Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9 +p reject 1-65535 +r Unnamed HHnVpHMhRxSnYcCkDdLVsDH36YA e/zigWWaj1uliR5TQgwXqCvoauw 2020-04-20 07:23:24 37.191.198.94 38443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9860 +p reject 1-65535 +r BabyOnion HH1xolgd55xc/E7R/3XVvjDwG7c AUA7OiZlAXKKotzrJtBGXYRFJU0 2020-04-20 07:51:50 51.15.243.22 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19000 +p reject 1-65535 +r TheRock HITIkZiRHQyJYqplw+TmUwB1OW4 /N+HMxBcVWVwpjVUj0oCQ5ZJjwQ 2020-04-20 00:15:55 188.151.223.105 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6930 +p reject 1-65535 +r lpf2 HIs8PYvHBYg7d5nJFbL+Hg/rAG8 QKugH9RHy03PZ57MvkvX7EQEC48 2020-04-20 12:37:13 78.129.180.16 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57500 +p reject 1-65535 +r uname HIv+F5S6Qs3EX4xR3xDnD6f78YI Yp/OwMZDxjhOBvBj6lJMmu+Cl7Q 2020-04-20 11:06:35 86.57.149.14 1443 9130 +s Fast Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=3180 +p reject 1-65535 +r firstTryFFS HJ3+RFUlGsk+OmKPk78rmswJVtY jSjDcaZf4xy9g2b9e67lf+DgL6E 2020-04-20 04:05:04 89.12.239.137 15001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=887 +p reject 1-65535 +r Kalabint HKbjTnYqtVUPuyVKfHvYdPFVBxA U82GEDT4tfVS0oMSZFF4Z/LsXBs 2020-04-20 10:21:53 5.172.130.139 6699 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=734 +p reject 1-65535 +r Unnamed HKb6FQVD2pX5awmzcgDmU5hmSzU 8jaus+iySdBWgF4ZnxmbtsEBV8k 2020-04-20 05:46:19 185.163.46.87 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r snap277 HKubYKuzWcQTzUiTmb+BFBZGOyY OGhDDZn773ey0zN7YyYDqRICbrI 2020-04-20 12:15:50 81.51.66.93 46823 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r kleinbus HLbbaYxJll08daCbjZ6/3Q47VgM ENmUhG6HWoVV8y1jqNp9qijYRrg 2020-04-20 06:18:57 85.25.210.168 8443 8080 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=86600 +p reject 1-65535 +r hochrheinsecure HL/cq9kBKwZHH/ho/gK2vMATNSA ZX8CTR0yV6xjuk1fzvvR3m/LRUY 2020-04-20 06:37:42 91.89.26.64 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1700 +p reject 1-65535 +r theia1 HNF8sgIGPFHH2tO6zvh+zoHCNQ8 5v3n0k4SzLf9yaovv7UjrP9L/ko 2020-04-19 22:57:54 50.7.74.171 9001 9030 +a [2001:49f0:d002:2::51]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6700 +p reject 1-65535 +r Piratenpartei00 HNSPTtDxgh/78ZQIAqE+79TCdQI c/8klczVC9SZT68TVnnLox7b/6g 2020-04-19 23:50:50 176.9.40.131 443 80 +a [2a01:4f8:150:518e::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=109000 +p reject 1-65535 +r drkhsh HNy0j2TiHVrK/iRxkS4udvYA7fo 0LHx2RPfiCDEbnrRZGENXhfvUq4 2020-04-20 10:26:23 5.9.21.240 9001 9030 +a [2a01:4f8:161:e2::4]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35000 +p reject 1-65535 +r FOO HOq+SvJBhErUPfRvoj25LoHytPo Xo205WAqCc/Tc2JYRVdR8dlrfFc 2020-04-19 18:20:25 178.175.148.36 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=12500 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r tower HQT/kgzoBM41f+YsZlkBxXi8JtY P6OakAbBl0LpNJYsNCqjkeoC/28 2020-04-20 09:08:24 89.238.75.64 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11700 +p reject 1-65535 +r Unnamed HSXHst08C9VVJtz5Wxdeo+ldkoY l1iouf1gYcrpEKyAor9PAQU1iEA 2020-04-20 11:45:12 54.36.112.237 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=995 +p reject 1-65535 +r criticalmass HTF0M4oRMaU+CYRD524RA83tANw udToI91lr1zKNVvMq+UgvywNlg0 2020-04-19 21:30:07 185.220.102.4 443 0 +a [2a0b:f4c1::4]:443 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3128,3690,4321,4643,5050,5190,5222-5223,5228,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ButaryEntry1 HTYaLxyuT91aheE8FovnB1oQBSQ zJq/Q3WNA6uBTrEcipXb0Mjr+jg 2020-04-20 12:24:29 193.31.27.93 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31800 +p reject 1-65535 +r Kostiks HUGY57w6ijcarRpWtWcI6qJWoRw 8kpHyZwvq0c0uhL9YYo56fb8BVw 2020-04-19 23:25:28 78.85.145.227 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2400 +p reject 1-65535 +r isbear HVT3zLfHoYXuiqVhbAed2SPrV/I SzQAY8Kqu+NZz5Cnp5bh0Hve40w 2020-04-19 21:31:54 176.36.117.185 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14800 +p reject 1-65535 +r 3tudK4Nde8iQ HVogpHdxuAmVcR4gGVoh7LFz4cI 8TG8b6QADnSs3BSpmhofIqZ45D4 2020-04-19 23:27:14 84.217.182.244 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7510 +p reject 1-65535 +r Unnamed HWkf6epVQh9oi0mKGK1ebB+zKLk x/VawLdTMss9fgVOCOr2JlCwIw8 2020-04-20 10:27:07 91.219.236.48 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3280 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed HYEnIhm2edURkwSZrYKGvNj2xEU KXYZ0IHE2Fpjo+O5zCW52yqC3rM 2020-04-19 23:07:34 37.191.202.95 44100 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12800 +p reject 1-65535 +r niftylagurus HYmoEL34RSK2A2A09JmnZu8pTbE BvnHazE/KvT5t/Ksi2fZ93Vtryg 2020-04-19 20:25:30 185.220.101.7 10007 20007 +a [2a0b:f4c2::7]:10007 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31100 +p reject 22,25 +r boxendotspace HY7VTqnfLUZVitAJbdXZ3Sl/E6g IWSF4Cukx3P9f7sJjKZW9Z1ADCo 2020-04-20 02:38:35 193.182.111.182 80 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3630 +p reject 1-65535 +r docker0b2b2401a8 HZY/CnK4/yHs0rJmbXDnBAvt6rY PBGrKt8G6kcLZ64KTJd5WM2OME4 2020-04-20 08:32:25 176.57.79.249 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5270 +p reject 1-65535 +r TORoid HZ1dgoG0gG3NDTvRgKs4itHpcGU sC/opxk/KQHNaZb3pVnnLJi0Dek 2020-04-20 12:28:27 84.236.15.19 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5700 +p reject 1-65535 +r 43b8107fbea0 HZ9Bk6CA/QjKDsYNPniV5Nr8GbE kZcIDyU60Ol4CQfrnrITdd/XKxU 2020-04-20 08:08:09 51.81.254.17 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10200 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r PlanExAU HaGDayzELUiJAfCLRKb0UtZ+FDU bY5zxo/FjIj/yAQN44Rtn3CM8KM 2020-04-19 22:21:02 121.208.145.39 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=5 +p reject 1-65535 +r king HaSRzEIyzF9wXyLo9TO2PcP0rco 0HvFDK+0M4IEXOYsFjXWHT+kV4g 2020-04-20 05:34:56 51.89.200.108 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r fenrir HajW4BCSsglo+Z1oYcXVG4AltRE jym0xLDG8MkcNZEmQCHk2/upnuQ 2020-04-20 01:09:13 139.59.58.109 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=748 +p reject 1-65535 +r AnonSydney00 HbEtYYxj5V5JfUjphkLkasG50QQ oSG9ajTN1DU6AkguHlcGK4niHNI 2020-04-20 02:54:46 13.72.231.121 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=149 +p reject 1-65535 +r Quintex14 HbJd9Z2qAbW+PTzriv7RFZQOvos g2HVyWndIh+xu8LjZ59jd+RXD9M 2020-04-20 11:50:42 199.249.230.104 443 80 +a [2620:7:6001::104]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20700 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r hviv128 HbrMMUhvxnD71AP66Hc0LsaW1Zg A9IkGcfGBYa3uGUBylMqn6cpGjc 2020-04-20 10:40:45 192.42.116.28 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22500 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r kraghtorn HcF8SlKkWLXIseeRV/hmVpYhDhA 1SP3mK7eftpeiVDUMpKMQUuAaP0 2020-04-20 05:31:14 51.15.47.17 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38000 +p reject 1-65535 +r eiais HcblKtuf5DRs78BcaRbYuPf2bRw Ki6PAZ6PrEgfoUbYMm2oFKaWI3U 2020-04-20 00:31:10 23.129.64.194 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8110 +p accept 1-65535 +r ubeenhazed Hc+DYwX7lTuqoZ1L3/6dLKyAV9Q h1WwtOw3dkFLNV40LBE/mAWMiKM 2020-04-20 07:10:06 95.112.34.223 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4900 +p reject 1-65535 +r BriSSett HdhYjmnMC5zB9kiJ1mKG/2+h2S0 3YIhtBvk00piR5hzCNG/xTztXoM 2020-04-19 23:47:20 172.107.92.18 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=403 +p accept 23,53,79-81,88,194,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,991-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r HorrorPicture HecFBMbpuyI+LsT61FxowHpq6fs Uup8CWSB2WNzDxY+bAciPbFOf5k 2020-04-20 09:47:27 195.122.181.242 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r Marsu HejoEkDSDZdVspqK6hMb4s1Tf7g 5/7fSkIAdE5R4I8foi5RxmtHyvU 2020-04-20 02:02:58 164.68.108.59 9443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6810 +p reject 1-65535 +r TORKeFFORG HfsRNQiGWO6dTZsnK+FeJhdq0FI s9wI86/8U/hBTvynjfMyT1rFH3I 2020-04-20 09:47:41 45.154.255.44 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=52000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3333,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Goliath HgPYHJdE3g48nebm+98d+drqWvw VsiniF9yEAf3qRfElw+5B7c5ycI 2020-04-20 00:21:17 185.107.83.1 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=59000 +p reject 1-65535 +r pellidos Hhp8kTRjc4O+ZTxBlzmVoinYFZU AIoR13U+mUPjTUCz2VX5gF+thMg 2020-04-20 09:22:52 51.83.37.40 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=49900 +p reject 1-65535 +r nodvrelay29 Hh2OvFcQfbVSkVQqIAEfZBR+IEQ 4EphEdzQPplC0P80/RrY6xJgS+c 2020-04-20 06:28:15 45.62.229.238 9001 9000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2310 +p reject 1-65535 +r snap277 HimqAX4D2RH2JM+J9P00GUU1hC8 FaXigR99dJe6FylVV11lvLG+JVU 2020-04-20 09:33:28 186.53.181.195 38489 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=100 +p reject 1-65535 +r snap277 Hi15PL/Z+vuwbAOfaT9H2jnHBTo 4YNTTzwvHrfflRR9TOO+8BIQl4I 2020-04-20 12:19:38 148.3.186.171 34441 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1570 +p reject 1-65535 +r goodRelayPleaseWork Hi2wPRH0kXDAXa7fCMYVt9/3QLU cMpS9tcqWgv1fT206lKTL4uCKXs 2020-04-20 08:27:48 75.58.45.109 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2020 +p reject 1-65535 +r F0F8 Hk9AzOyO5y2x6J09P8RehzzaITQ zzDvJXbtdt3falLuasn1PD4S6to 2020-04-20 06:49:33 90.242.247.180 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=877 +p reject 1-65535 +r Quintex43 HlE23cUvrhIZII8Ka62wumJYfuY xhBtb/kMSIr11RNRuADd8gbJuYY 2020-04-20 06:47:14 199.249.230.66 443 80 +a [2620:7:6001::ffff:c759:e642]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16700 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r hazeltine HlYYwHnXTPmuDFNw3kxuGv1cCzk 3olWkaKcU4WaqM/WKKCZANaOzRM 2020-04-20 04:44:41 62.113.216.173 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8700 +p reject 1-65535 +r Blankenship HmPCztO23c0QeLKk8QyKSL0sMaA 9PDoS6P4sCsJU368WOoHOHJupKc 2020-04-20 06:35:56 13.124.18.130 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=160 +p reject 1-65535 +r DedicatedToSnowden HnF6x4HwLh7oRYf98QEsj9DG+2k NrW91mNaj9Ta8O7UQlDYFrU4PZI 2020-04-20 03:56:48 104.244.76.189 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=79000 +p reject 25,465,587 +r Unnamed HnQW0M83pmYbATD1TG6+8HHjbE0 bCNKffGG5HUEjot2L7EGYS8hkI4 2020-04-19 23:29:15 64.137.183.142 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5200 +p reject 1-65535 +r cebolitos HnveAxUaq3ectK/q7qUlNv+qlAA EPVCAUG156/bVkBj+TKvTiKzfFw 2020-04-19 20:54:05 143.106.73.35 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=292 +p reject 1-65535 +r Unnamed HoUVjTHMczMG0ro7VRwOiKumYsY PiYXzE3Nd4kAkJ+K9WcNEcbtvf8 2020-04-20 07:57:15 159.89.156.215 9001 9030 +a [2604:a880:2:d0::2059:6001]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3400 +p reject 1-65535 +r MindZeroFive HpNn2tnfHTVC1mtKsySZ1bm2aRs FOzmgCzsSjc7Zqa4xnIU3hhHYsc 2020-04-20 07:40:22 81.174.231.18 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=130 +p reject 1-65535 +r snap277 HpS0BPKHr1qo6UPKVhRtbFwFcCo RtWs5tTR9dURLepAaaeTujyD/Vo 2020-04-20 10:44:55 92.144.189.91 42647 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r Ailuuchequai Hr/HM8zZUvf3YW67p7xrjm8vDLw xyMGILLSUbg4wbrOjZwQOE/aqn0 2020-04-19 23:36:37 94.130.58.99 9001 9030 +a [2a01:4f8:c0c:2613::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5990 +p reject 1-65535 +r JakeDidNothingWrong Hs1zuTbLbms81kfMIE8QjZ3yyfc VS7bPKG4HIh2U6GEYCiYdc1fL1E 2020-04-20 05:16:59 91.219.237.229 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2400 +p reject 1-65535 +r etin Ht42GYhluXwi2U2U5Al8i+ljwz8 AWt+7vl6EyHB0gziauKKwtoIjWY 2020-04-19 22:09:55 109.68.191.159 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3930 +p reject 1-65535 +r W4LS3R Ht5gjF4ZDIaCovgnZk51hBYQRnA sX3g7JJtP15vC9kwSKfBJLZ8uio 2020-04-20 10:15:59 91.214.169.69 8092 8094 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r QuackQuack HuFROfOJ/aJEACOWB8tMC+XdjHY qw5yGgt/Zc4hLOieX7jKSG4p6t4 2020-04-20 00:15:08 160.202.162.186 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Tor4VPS HufPYb03T2VgbIeOit8NzYpmD8Y EWO4uGy4nIvTw6w7FSg7NO1vBxg 2020-04-19 20:53:45 51.15.75.80 9002 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=37200 +p reject 1-65535 +r ohschitt HuiCEm+M9hPGfcJUFTMNjPMozbo H4GHodwWt5suILCl4sAlHOP/mjw 2020-04-20 02:01:26 198.98.51.156 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3110 +p reject 1-65535 +r initramfs HuolEUcYCP0mMi9k1paayxiTZEg nuqc8poQVmqpaLM+kIENXd/Z0xY 2020-04-20 03:11:09 59.115.118.15 9001 9030 +a [2001:b011:4006:1b62::11]:9001 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1800 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r nonanet00 Hv6E+dvuVZz0F3T1M2Iv+kTA2YU GWGj9O1PxAWrW66ffQtidnwzjk8 2020-04-20 09:01:11 209.141.39.98 443 80 +a [2605:6400:20:8da::1]:443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4360 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Sepiidae Hv8nBNGb9FMFu8ylPitZo9F6buM PIaB/Gs0z0k44E2CWtj1tuNWh6Y 2020-04-19 20:59:43 71.238.214.21 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=273 +p reject 1-65535 +r kumakuma HwNyFf9/5HEL/QUHrs4zw6fLYnc 7fWOJPH5XVlqyfyK4kQRk+FNbdQ 2020-04-20 04:38:01 139.162.81.156 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=147 +p reject 1-65535 +r Unnamed Hwy/n53h43L5abox0tIU88pd3s0 pURxbJ63faiN2hyp1JcQq95moks 2020-04-20 11:34:01 37.122.208.220 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=780 +p reject 1-65535 +r mrTrololol Hw7lDdtglSgcqWvsgv81e2e6x/Q iTTdZPbN4FUToOzUl1LaZ3DAcEI 2020-04-20 04:00:00 46.109.122.122 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1800 +p reject 1-65535 +r plutoa HyB3vwHK8j+BnUiSqJiDGWq6hCo EF15OMidtLD5j0MpfaeDMC2ytHQ 2020-04-19 22:37:17 37.235.48.247 7654 7653 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=573 +p reject 1-65535 +r BobsHouseRO06 HyJs2Cd9osKNFTZOiNWW+fzO2Ys EA36YaHZ6xK3DhRDByUiKFliQ+8 2020-04-20 12:12:53 45.14.148.98 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9160 +p reject 22,25,109-110,119,143,465,563,587,2710,6881-6889,6969-6970,55000 +r snap277 HzdkTFuYEPq5TWELYM+GRtKkPB8 CHI6byl4Z6bm8w4Uh9hTo7VNwAI 2020-04-20 12:09:57 109.11.141.73 37817 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=322 +p reject 1-65535 +r Unnamed H0EFxojoNaVq89ZseHZ3tXJA/6I waagTb33T5XLHluNhlsKpApJX+E 2020-04-19 20:10:56 149.202.190.14 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=18400 +p reject 1-65535 +r VSIFviking1 H0Gl76aUQq1JY1B0gzlFUjp9IUU VHsrJSGMvF+9Q3/9lt5J+Eo51R8 2020-04-20 06:01:49 104.218.63.75 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3700 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r king H0UmCGV2tp8cc1sW4d2EWki1kTI yLQDaD77I/WauKhO6Q6PX++inOo 2020-04-20 05:37:03 51.89.200.111 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap278 H09kVMTZ7KZf2s7y+Ov8nBKJCNU jCmshJx5/DDFWpt56to9dZsqfN0 2020-04-20 06:14:31 5.204.185.149 36889 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=110 +p reject 1-65535 +r CulNoir H1CViff3C2mjhxmiAUUc9LcPicY EK9N/CUb8IyV0qUACfjta2UXvZU 2020-04-19 19:09:00 149.56.185.56 8001 8030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=114 +p reject 1-65535 +r Ninjaipservers3 H10AKX0bn8wJzN5iyhBD42IfqXM G5OTaRfrfFi/IBKn3A3sdIYAQhw 2020-04-20 10:01:12 185.222.202.107 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4800 +p reject 1-65535 +r Perlman H2Fu+ufUVpYENy75YM4nvMiQYKQ aaBCBK6nJe1vFRw/1vmKrD1JH6k 2020-04-19 21:36:54 45.76.86.86 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=361 +p reject 1-65535 +r dao H2q9CG9AuJCjPJPMRgbuaLMclVY GUCc4JXa3MqY+rMbBildI39NO7E 2020-04-20 10:04:18 199.184.246.250 443 80 +a [2620:124:1009:1::171]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6490 +p reject 1-65535 +r FreeBSD H3aPOe36RFwU4Y6RWwztfhTkUM8 vtghCwrn/xA4MZRcS5jYV7hsflY 2020-04-19 20:20:19 195.40.181.34 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12700 +p reject 1-65535 +r ballers1 H3ct2T2iCmdF4zS6/8e5dlh2uxE seNCC8+y/BIeuBUOwoZks/ZznME 2020-04-20 07:08:10 104.57.231.26 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12100 +p reject 1-65535 +r Toreto H3qtrr1hQdzqMg/oIdws+OfkS4E OKZ51vYcQ4LOFEGTfMgwvAtG83s 2020-04-20 07:07:02 79.143.186.17 143 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=364 +p accept 6660-6667 +r jealousstreet H6BWVBvQsRryKYjXhg4n1Q9JmM0 MijeJz7ZokeTQnyQJ8GakUTeHPU 2020-04-19 18:56:52 45.63.83.146 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=2000 +p reject 1-65535 +r Unnamed H6RLxRvyQW0+RMmq1zL3sUwNHAU oWJ9iOB2xddjbFgFDcehv8rlALc 2020-04-20 11:41:23 89.102.209.34 9005 9006 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2220 +p reject 1-65535 +r ffly H7M1aWa7CwB+QVZkR1IScx1WI6w ELh3NViLLa+j0d2ISc7+azsZsvk 2020-04-20 02:12:16 85.197.11.110 443 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=864 +p reject 1-65535 +r snap277 H7mlaGa+yHJb20sANRTOcIe3Rek xBWgShw3o/D6CjtI8VNfKL2xMfQ 2020-04-20 06:09:27 109.29.51.232 37433 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r cimmeria H7rnI/gYaEfjDqHAPMo9QIHU4vk inlCDZE1ejTA2+ZRDDcueEnEOYM 2020-04-20 00:00:40 91.219.239.92 443 80 +a [2001:4c48:2:8400::5bdb:ef5c]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=913 +p reject 1-65535 +r yv3r3nd5yi1k H76wAdm+0L9fz8ZXIlquBlrJ7NI GOZrRBQPSz5cLghFYg2MEJjtt3Q 2020-04-20 00:29:25 86.21.160.245 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=650 +p reject 1-65535 +r TugaonionMR4 H9bc+TuWYPzd6UBQGf7UBoFVnqg 0eGFaH+WyCgQHRFdURA0Vj6hyg4 2020-04-20 10:34:07 37.187.3.92 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9520 +p reject 1-65535 +r serana H+cdD4j7iV95zgeuIil4WxILH7A +Aaw7c3rn6BVgLaI/MHaV9OaA6A 2020-04-20 04:53:19 104.225.219.232 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2190 +p reject 1-65535 +r deckard H+nw+Zn7cvSvsNG5I5t46VGcEfc TmUqKes6O5ZGtOIU9khZUZaxyfk 2020-04-20 01:12:10 87.16.211.203 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r TorNodeAP H/oiL5zixvzfqBElING37lriyN8 UUwkctg+nAo1n6lRKb/FZwUDCUY 2020-04-20 01:16:54 87.231.48.99 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=93 +p reject 1-65535 +r DarkRelay IARzt5dOjXi3Wyjb1sIY2joLgFk mp7C7D7QQ2PSeCH6FBBp9ktjYIg 2020-04-20 12:04:34 93.73.41.238 443 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1010 +p reject 1-65535 +r freiundwunderbar IBo461SEoUB0NhJXU6MWyB71Bng nomaXTvv8S8GUz/GNvTVl8LlTXI 2020-04-19 18:56:16 146.0.40.126 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=34400 +p reject 1-65535 +r Unnamed ICK8s3RT3BaObLe02tEZrAcvLe4 nriad2AZzlMTAZexese+GyRqYCU 2020-04-20 00:59:00 185.80.222.158 80 443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1560 +p reject 1-65535 +r Bernard IDYYZiU72xoHHX6tN0ThhwT85vE FQFMyj7Ng00TambuA1Ow7P3+IBg 2020-04-20 04:19:05 45.92.238.246 6666 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=330 +p reject 1-65535 +r lunaTor IDemVoxXcaXY/1xk/BgZJH5v7ns eNOHPzHHfOq81HQuqhNyphHYdr0 2020-04-20 06:49:41 66.146.193.33 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p accept 53,80,443,6660-6667 +r thedoctor IDhtmjK+y+YCN14BX8cBF5VWU/E mzVFKgpxzon68Ta5HLNfy1ixU5c 2020-04-19 20:45:28 192.44.30.40 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r heHuffedAndHePuffed IELyqaILkvEYRF6TOs8plD2iPvY 3sYSYCk70lL9joAaHZvIQdb/gyI 2020-04-19 20:06:38 69.28.82.48 10001 30303 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=225 +p reject 1-65535 +r scaletor IEYsul2kwtljVn0X0LcklxgRSmg jlU4/MujXlQgZxiPCoiiot4Z/0s 2020-04-20 00:02:08 212.47.229.2 9001 9030 +a [2001:bc8:47ac:23a::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29800 +p reject 1-65535 +r SXbqvQix9zBHtEnBY3R IEZfPf1396yV8xpNNXJvttgvDmc h9VpA323O+GlO05TB2DklZAZNpI 2020-04-20 09:28:22 178.78.213.214 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r PinwenTorRelay IEdZnwHpDO51i0swS/ztS8hl7Nk UT3C3jYZVmqGTmXdlkSSpGILLXs 2020-04-19 22:06:54 45.156.22.24 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r ragnardanneskjold IErTccInouFX4C6fODqp9oClEkY L/16VChoWMBI4V5u6pjJptRnL6g 2020-04-19 19:52:04 178.79.148.186 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2390 +p accept 18081 +r HaveHeart IE39KixqDcH6Dqy0lSGOC2YXBP0 b9nSHL0IhgnCcJrFsigY8U3No/c 2020-04-20 04:50:48 77.247.181.164 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=71000 +p reject 25 +r ccc2 IE7MT/j5OGLoL6GcU7W8mLGvYEY +95jjRkk9j+jKBPOq6Q2YqDap4Y 2020-04-19 20:02:35 54.37.207.84 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10800 +p reject 1-65535 +r SilverOne IFsbtofkHbvaxKItcRt7XK2sbzE Bqme1Akzt8tJucEBJP2hb0u0Ln4 2020-04-20 08:24:38 216.229.34.70 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48 +p reject 1-65535 +r RazorsEdge IF7SwwmZnw8YdnoezNOEtYAHC6k l2SXOi0C7r++3KgvlBc/mKynTl0 2020-04-20 08:25:59 209.250.2.254 443 80 +a [2001:470:1f19:c2::9090:1]:9090 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3300 +p reject 1-65535 +r kawaii IGa/bi/LuvRPngvNcX5IVtLlNf4 cvzK5I1V5FwYU5MmeKcluwwwftY 2020-04-20 00:52:41 13.48.137.162 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=770 +p reject 1-65535 +r summerfield IHHudbUfSijdecH2kM1w2KONuTM XxOc7L6djXMfcIE1Nn1O8z1OxGY 2020-04-19 19:52:09 185.189.112.162 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13000 +p reject 1-65535 +r biggie IHY1n8O+tqtNDybFQZcSowzehdA IF6aUyCykuM5blrQ5nJyRLFLoy0 2020-04-20 05:06:39 104.223.45.150 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8300 +p reject 1-65535 +r CAUSTiC IHa6DJpwSguKvqlRHtG6OTlEqFo kz3bp3kmJFEIfL/urcW0RC0GHFs 2020-04-20 03:48:34 103.119.112.61 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14700 +p reject 1-65535 +r edenDelroth IHqzYjPGhKiMVJrPdmqNJoy095Y U1g4nWA7Dk9tkZI/sLSSFbdlpfc 2020-04-20 10:02:05 172.105.199.155 143 0 +a [2400:8902::f03c:91ff:feaf:723b]:143 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=420 +p reject 1-65535 +r jfred IIACpYWOpm9MK0eWe6GIopArnVg kqC+2pNoPljJ1siSTRp8ylvjnuw 2020-04-20 07:56:02 50.116.56.48 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=909 +p reject 1-65535 +r Unnamed IIP7taZ9sV+KvwyDGVlO6fvmXa8 imbqo6y/zuWRBCU0+YeiqoFcOvM 2020-04-19 21:04:18 172.86.144.15 443 80 +a [2001:19f0:1604:3ede::3:f]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3570 +p reject 1-65535 +r norisknofun II2QDQ4ZM4wpDK4gbNe8FP5pgq8 wPMJdlFJMvXYThYgFsWtvEzZE70 2020-04-20 01:19:28 81.169.253.27 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r Unnamed II6WXmldZKRlO6whGd7MpLMX6j0 AAOAnVSKZAxeiQGe9kiKELfDDe0 2020-04-19 19:59:33 167.114.89.205 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r freja IJa8/ruVoRNPOfz4zrB2/0GitIs Hmc/ZqPOvzscENuwqaRMwP3kRwk 2020-04-19 21:48:10 194.88.143.66 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14800 +p accept 20,43,53,79,81,88,110,143,194,220,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8087-8088,8443,8888,9418,9999-10000,19638 +r cvbnet IJdNKOtmjmidQlYEbg4yA0N1oKI /vXs3Nq5A4DWXQouB9kfji04nQs 2020-04-20 10:14:13 46.38.236.250 9001 9030 +a [2a03:4000:2:ba4:88e9:eff:fe89:3637]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r somerecuer IJ+jGJuKeEKO6UHZ8QxGwDTePsI ZOmVCWolRwnPFzhWs0EA/PbjMVE 2020-04-20 10:53:18 207.246.94.103 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=2350 +p reject 1-65535 +r FuckingRelayMe IMgxuFaIPwr7YFKRdZXWAi1SsZk sBhFbiSEeWe+emr8m4aYIg5IWqE 2020-04-19 19:31:14 188.250.74.215 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7870 +p reject 1-65535 +r Unnamed IMojNtUotcXhKIYGGjkM51UkAB4 4XITOpFpRbvvV88qm5Q9WiO65cM 2020-04-20 06:26:35 209.97.173.48 19091 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=554 +p reject 1-65535 +r dude2019 IM5+nEmnSGYeZsdHxuIQnO6qVwU dBQescg0r2RqDACCyeDLfJtPH0Q 2020-04-19 19:39:39 194.59.206.54 9001 9030 +a [2a03:4000:34:3f9:4db:c3ff:fe7c:13a3]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18900 +p reject 1-65535 +r marunga INKhhqQS6kM9m60v29e0izayCzQ WgsLFhBJqgHeGei51FWJKcLMWXs 2020-04-20 01:46:19 125.212.217.197 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=129 +p reject 1-65535 +r hopeforabetterworld IODdOtJmGV9GIOgzS0z39Ro/IQ0 JvVJZ8/ZzuRHjylLFv3fHtZ9nbQ 2020-04-20 09:24:50 188.68.45.72 483 0 +a [2a03:4000:1d:46d::483]:483 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14100 +p reject 1-65535 +r redquasarxyz IOOfFTyLUrmw9uEAN76/oKCNDWM ARe4KvaLTvQinccZBFmCM/awFKQ 2020-04-19 23:16:49 172.105.168.144 9001 0 +a [2400:8907::f03c:92ff:fe9b:f9fe]:9001 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=104 +p reject 1-65535 +r NotTomHolland IOOwleiEO7JwCdjbbk4JLOnbYDI 0kyGhkCHr077O93qiyA392rLiSs 2020-04-20 11:31:21 173.249.60.101 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p reject 1-65535 +r ULayerKlein IOeltbo9y55vSbnQ8+ueIO/H6mM 1zQf43H+KO8vUgt6xjfn0GBxuxQ 2020-04-20 03:34:18 198.98.48.30 443 80 +a [2605:6400:10:668:6e3e:3ce6:28b0:f2da]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r MrRelay IQAB7oqOCGmDo71I8Nk2mWRRycs zGx95R0ula2tyjQxrudmigdqd34 2020-04-20 03:09:18 185.225.17.60 443 0 +a [2a0a:c800:1:5::2e]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7640 +p reject 1-65535 +r endurcissent IQFMig2YBrhTID7xE3vS4g5p1dc 2Le18byzmmtwAKz0Zb46WOSeCcM 2020-04-19 21:07:56 172.104.76.242 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=660 +p reject 1-65535 +r mamadu IQTo6+XgCWm+gP+h38xYM6xDDXk j3zx0Ls+Z0XzmXFNLHMSK2LGnQU 2020-04-20 00:39:16 85.195.238.100 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=190 +p reject 1-65535 +r Unnamed IQZEmcpT/ZLf8J26E1ODmm0BIPw MBfrxDAJqzXql6frj3zacB/WRrk 2020-04-20 01:09:24 46.166.163.76 443 0 +s Fast Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5730 +p reject 1-65535 +r ModernisePollutnt IQwPEc3kraX4PQiMWolxDjG9yd0 QYchco8ubsORb2g8oYP9iOOzk5g 2020-04-19 21:22:06 47.254.25.107 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1920 +p reject 1-65535 +r bmwanon784717819 IRMQzQnsKQUFwfJAGK5TMAdkEqA K6XfTnO3/uTIZ6gXqaGxUYpcdaw 2020-04-19 21:29:12 78.47.178.19 443 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17800 +p reject 1-65535 +r fallout IRT6mgU6QpDMdss8IBF68bJEFb8 dg+diZx+1S+ofmAjs3btYoqwDQM 2020-04-20 10:51:58 81.17.16.150 9001 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r nighthawk IRnlpLX0IBZb9d8ZpaKPRhD/0QM nkQlfhGoBd1gvgsH8b5zECg74Oc 2020-04-20 12:04:50 78.47.36.20 9001 9030 +a [2a01:4f8:1c0c:603f::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p reject 1-65535 +r Lavaronn IR8DPPmSzBQZxXvleRVvw0UzvVE 2Dymr1n7mH05TzEBhE5v5CoQhyw 2020-04-20 10:24:29 92.232.175.224 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r 0 ISOcwxOiiz5s7kjZSb93h0cbFRk /G2Kf3BRgy5P+3DCTWf2w2RPamg 2020-04-19 19:51:25 185.163.45.29 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6860 +p reject 1-65535 +r notorious3 ISm+mEUW9aZEmDbx+jbUKh4ZG00 hStvtnVKhq015oTJQXIdfw9lyJQ 2020-04-19 22:07:27 207.148.8.210 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r tamanegi ITEPSAZqTKresr/TJPCzj44USNY X/sHJs+5ul2j4lkFJsIFsLLXI9c 2020-04-20 01:52:19 212.89.225.242 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17000 +p reject 1-65535 +r nl2xtracodews IT8rSrCe5v+MohuASy4b2INQiNM HsSZBZQR/FsqMRYscjO9EykKGKw 2020-04-20 12:18:59 51.15.42.172 9001 9030 +a [2001:bc8:1820:a23::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=30900 +p reject 1-65535 +r otac IVFyL8iTKen6QESPqHW5tFmQHmY CN5copdFTHT/kMNG/Yt8gbtLAbM 2020-04-20 07:37:25 87.120.36.212 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4000 +p reject 1-65535 +r RBN1 IVVVCmlfqezKng9nwCzsUDFp15Y oyD8jIu0llq4B7zQg33Z+TSNpxc 2020-04-20 02:09:24 68.183.66.229 443 80 +s Fast Running V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2800 +p reject 1-65535 +r Assange013us IVYWUn+5ftW+C/jSFmvbRO62qEA senKHP97NQ4XJzkdvYosWGrd7lk 2020-04-20 08:02:15 94.26.73.162 9001 9011 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r Unnamed IVl9lCTHRgoWEZ+i2A0LsPe7TMA GnTvGNPxSRNkPbcLKnnTIMn0cuI 2020-04-20 12:56:20 31.220.4.133 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=191 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r tkContrex IWAoMqAJSZay3ktfpveOkw2YTGE mSznpgEdkumYKm6g9JGW8davohw 2020-04-20 09:42:59 91.121.2.157 9092 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=20000 +p reject 1-65535 +r NoGodsNoMastersUA IXub5w3GAvbZKRMuoqnfYLrtjOA 0JC6kOdgBls9UZ+bO4NiINUscV8 2020-04-20 06:10:52 217.12.210.210 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7260 +p reject 1-65535 +r detonator IX9dfYs/Rkjr17CBueCpV11J1Vs SOkGxE16mRmUMGDsg1VvTTyQwMo 2020-04-20 04:03:20 51.89.149.208 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13200 +p reject 1-65535 +r king IYyPINeQ8xjLk1j9pXRiWw7y3Ao +wCo+42d62L4cQuKWbInPrptKro 2020-04-20 08:25:04 51.89.200.120 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r FaerieOnion IaXVjAQr+clRHheTDC/4t1aWmfk l5s5sYJ5HI6jlIE01IHrWQTjh4U 2020-04-20 12:45:21 119.17.158.221 15151 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=150 +p reject 1-65535 +r Assange013us2 Iaxu8VyGZBzmI7igjWQUS8rBSuw csP2kk/mt2UYkjWnLWCAgbiarZQ 2020-04-20 08:02:15 94.26.73.162 9201 9211 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19900 +p reject 1-65535 +r snap277 IbD3k9W/qXexcoAmLE83zQ2fTfc wvJZeKMh5B9MxM9fh/qhbstXec4 2020-04-20 11:54:09 95.44.180.215 37621 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=34 +p reject 1-65535 +r relay IbVF7gnaTt7zmfjuClzZO96YdcY 5iaFLeYTdjMFAD5U7TazJ3sg96A 2020-04-20 10:09:07 125.205.45.73 443 0 +s Running Stable Valid +v Tor 0.4.2.4-rc-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4 +p reject 1-65535 +r Unnamed IbVQcsAPRSKFdlX7sPPiXXWlNXs ouYrG7D+nMYp0o5GjR3ytEOLoiw 2020-04-19 21:26:41 109.107.35.154 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=760 +p reject 1-65535 +r smell IcNtH6IAecYQHFWpkzG6KYESSQE 1doU8D8DQdgV02jZG2ZA0ePJWhQ 2020-04-20 01:21:51 205.185.115.70 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r cebolin02fr1a IdoVbBor6nq4idJ/mILFoyXtGCE QRB9MGast4qWktv2pfuAjZyqMUY 2020-04-20 01:32:54 51.15.143.49 9001 9030 +a [2001:bc8:604:82f::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33200 +p reject 1-65535 +r Enterprise Ieshdt/XNkqONwWr9RjogDYkJfw Wr+Uglhf/OzYls5GZXE/QvOWp9s 2020-04-19 23:43:21 163.172.184.243 443 80 +a [2001:bc8:47a8:2415::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=41300 +p reject 1-65535 +r snap277 IfFn5fAYa6DKoI2HzIVO3smSsDc 5oAdqHQrl3xQTqW9zD2iuaftG8s 2020-04-20 09:41:28 109.129.222.94 46501 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1550 +p reject 1-65535 +r Zalax IfL27ASZCX/vAHVNEKA+IPWu8SA K1s+hvpIxzbCs+28X5k0CrAMm8Q 2020-04-19 23:54:02 51.178.122.233 9050 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35500 +p reject 1-65535 +r Unnamed IfxL+ELsS09mvRJASm2MUH3FNCM HdLtYQQfB0cCqcxhiv9wPwcgYiM 2020-04-20 07:45:32 163.172.176.21 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=1230 +p reject 1-65535 +r fwioetwg4utghw4ignc Ig5hH21IohA89Ryrhdse1UMeRWA wncwaeawRU71NRJbEWwziYd/1Cg 2020-04-19 22:52:38 157.65.61.9 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=280 +p reject 1-65535 +r ne0 IhVG2uhrADE5sTvW9q4bS0K1nfg gfRLijgy1eNC6ACjNaSaE4z3x9Q 2020-04-19 21:51:13 176.9.114.252 4080 4443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=91000 +p reject 1-65535 +r amsnl Ihd6BAXSjVql0MNbXF81Jlvm1iQ QT+sC8RaldgD4lRIn6A0e6xIkx0 2020-04-19 20:04:58 195.123.217.153 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=928 +p accept 43,53,79-81,443,531,873,981,8008,8080-8082,8888 +r malechick Ih6Xa1RuYASKAZUCUDmbhTTU5Lc Jrqn7FraQFmNazKBMXj8Fj/0e08 2020-04-20 03:26:02 37.187.122.8 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6700 +p reject 1-65535 +r Unnamed Ih8DWjMKxCMaLj2QHxyxFIPBn2Y Szi0ripjsP/M1ldOOznx4ayju8c 2020-04-19 22:13:45 130.193.15.49 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16100 +p reject 1-65535 +r Kodachrome Ii7y198p/U3Jq/WUSc/u5UWqz+M 1KCcF35hCHMvgrHTsfU7rYTDDNQ 2020-04-20 12:12:44 217.123.216.103 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1100 +p reject 1-65535 +r raspitor Ii+niyWD95YKt7u9BkOLvfrTO7Q ICyWyzDnQjH9YowL9y9CUDEcg4c 2020-04-19 21:06:08 213.140.92.199 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=210 +p reject 1-65535 +r artikel5ev7 IkBKPofy1/4vxjWf3nG23C1ucw8 QL0P9o+qfIZS/2Y5ecdbkqJOUTk 2020-04-19 20:35:53 185.84.81.240 443 9030 +a [2a02:248:2:41dc:5054:ff:fe80:10f]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2110 +p reject 1-65535 +r Unnamed IkTKw6mMHPM+B5nBvecQ7uCWrII yfYqO7GpXLnHaZvfMUyuD5Qp/uw 2020-04-20 06:38:30 51.79.53.146 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 25 +r nasiOne Ikw90d/28RIZYEhw1IlTJJ7jwm8 Ci6qI4IdCkeT2rp/Km91vD0MLYw 2020-04-20 10:32:45 212.51.134.4 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r Manureva IlqOo2ffMHNDPgqEXd2ibSNX5MY zYsrZR5QcI17wBZM868fVJBh0EI 2020-04-20 09:30:40 82.64.243.112 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r Assange021us ImWDaOWqB1rqrMGQda3BlnCncWU o89ZUg+u5w+PvPdh56pma7xSWGQ 2020-04-20 07:45:57 107.174.244.102 9001 9011 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3030 +p reject 1-65535 +r Unnamed ImdZYrdUZqgdhRfr58WIXNNSqYA S5dneSnzwr1gsjG2uDn4a0kPhiU 2020-04-20 10:10:34 45.76.43.42 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14000 +p reject 1-65535 +r lucinda Im2eXBAgkYRdD+qrBHFIeqPFyKc dwt4VJeQ+C62Kja1Lr1vcTdOKxc 2020-04-20 04:07:14 163.172.53.100 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=449 +p reject 1-65535 +r Zenobia Ina/iDR9A+uqFt2fY1wK4uOXKnw Ofzv/OExKIunxnvJZ/oT9ylHL7A 2020-04-20 04:20:35 147.87.116.199 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36000 +p reject 1-65535 +r fruitybooty IndblT5mIVFUnBFMuO5fvby9rQI sZge19PFCeHNkRLQnk7kS0Hoe5I 2020-04-20 10:47:40 88.198.35.188 9030 9993 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=75200 +p reject 1-65535 +r PataquetsDockerTor InvEkn6leQmiNV4wiLjeiy6sQ9U y30pKjCZq4odYPv7ZncFQcpwdBc 2020-04-20 10:59:53 188.40.81.198 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=27000 +p reject 1-65535 +r cyanexit Ip2GXXrAhNMOX1AWzlqMIXQPdPQ Q7zMHm/hkNKmXZFCwtcwN+jAVs4 2020-04-20 00:31:07 51.38.233.93 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22900 +p accept 53,80,443 +r Seccom03 Iqa+mNIBsQHDJmFzmWe/Te0S75Y nkhFYxijg5sJOCP1fyEMO7HL/NQ 2020-04-20 00:34:47 54.39.176.60 443 80 +a [2607:5300:201:2100::b8]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14100 +p reject 1-65535 +r Pombero Irb1SHantv4mwedGQqWEfKfURFE f8YmpE74/+5MeLo0ODDp4WYjPgc 2020-04-20 11:32:00 84.194.130.155 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3630 +p reject 1-65535 +r Fastnet IrzQ39FIIJyYYMf4mQerTe6XSgg /hcRRpJoOseaysrQ53Dum/BZckk 2020-04-19 19:41:53 95.216.115.85 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24100 +p reject 1-65535 +r Pegase ItIxS8UUaJCo5cGciE2WwMv+qiQ LQmF+OHbSH+N9Egq5aHEsCiFWik 2020-04-20 06:01:14 80.67.167.81 9001 9030 +a [2a0b:cbc0:1100:1::1f]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10300 +p reject 1-65535 +r 1804m1 IuHR20cjoXTnE7G/QHPawcJTUbM geMwsUGXgYLA0mBX8v4mqM/hDCw 2020-04-20 07:33:52 198.211.103.103 443 80 +a [2604:a880:400:d0::1516:c001]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r Unnamed Iub72413tMD6AX1sX5tFvs3Lz/g YHX/wIljzjUb/RZa7t/Wuwz3PQI 2020-04-20 00:42:03 82.251.74.105 23353 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=39000 +p reject 1-65535 +r hydrogenuine Iul1k1unfqWaKOoaqDh/kGA0/L4 DE5ozRTsHkuB7j+dRu91p8cCbGM 2020-04-19 22:30:21 172.104.208.190 443 80 +a [2600:3c03:e000:19f:0:11:11:11]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9010 +p reject 1-65535 +r MakeSecure IvdOF2+ANJnU+A2c59MliDqMDkU eACndd8x9s4cpLYrbQ+0MO+rsfE 2020-04-20 11:04:16 83.96.213.63 443 0 +s Exit Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r SouthernFreedom IwUzfTiM6rWB7TuTCOJu7U+KMPA RxDfPoP5hzfYdixDtySW5urFt4s 2020-04-20 02:45:13 72.187.245.134 32987 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=725 +p reject 1-65535 +r niij01 IwqLKouoYSENm0upd0WuwhepQgc uTMXsNQn9YaA5g9LcAjfV52yFV0 2020-04-19 23:03:59 163.172.176.167 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p reject 1-65535 +r CBTorPi IxGsL6h40AWLs3a6OBI9gc7jhAI gFr/rzHjFY95jcMFGT4+9sThAqg 2020-04-20 01:48:23 210.54.88.208 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=166 +p reject 1-65535 +r Unnamed IxwAzTc8XajluomIMwBQa8lYgdk Qm/9gmhU0Z7ENXY+tAYa59m8yug 2020-04-20 10:24:53 178.17.170.164 443 80 +a [2a00:1dc0:cafe::f290:7489]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4220 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Bael IzHeXS6a5qNjV05OQB2kLQZ8HS0 aSVZhC3ywdTC/0y9ABe/zWRPBtc 2020-04-20 00:17:51 200.98.161.148 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49 +p accept 22,43,53,80-81,443,636,853,873,989-990,993,995,1194,1723,3690,5900,8080,8082,8332-8333,9418,11371,50002 +r snap277 IzsuWhom9AehyD6NVT6H/8D1paU hYfKflx//xNAFH70Z354Oht74I4 2020-04-20 10:58:26 78.244.194.160 32875 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=279 +p reject 1-65535 +r AuroraBorealis Iz7Z2TlctbkGMGOpgO9XTpkyEnw BUZCtwWJzpORq/XY5ecAQe4TJGc 2020-04-20 11:38:14 178.17.170.226 9001 9030 +a [2a00:1dc0:caff:183::95bd]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7100 +p reject 1-65535 +r Ceres I01nDqp5Twkve9dY1dKqf04/++M +INTZC8PasaK1cG50yL7wzAFYbk 2020-04-19 20:35:40 80.67.167.82 9001 9030 +a [2a0b:cbc0:1100:1::21]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7490 +p reject 1-65535 +r Tor4eefeeyoh I1jQyB3CMVO1bjYqSaPPAH5YNcg 9jU8gUhThP3+VocZuutMGZks33U 2020-04-20 05:26:55 5.164.219.245 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=3300 +p reject 1-65535 +r UenoStation54 I100RCNqvCj0Euk4FPa3gyANRjA v772vZkXiIcvxghzOyYRwOP8J0I 2020-04-20 05:59:05 51.15.249.81 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23400 +p reject 1-65535 +r Nightosphere I2Ba3hYpjKFSzGLwx1k7PrV70PQ bd7CjdXrbLPwi0xU2D+wCdKj8qU 2020-04-20 03:08:45 79.242.148.62 9005 9003 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1100 +p reject 1-65535 +r Eutaxy I3f0FawkvGzgHB4A4fXoUK8oQC0 5vSb/88aDCy0nr/NDKxZWvzwygk 2020-04-19 19:07:35 67.249.138.113 9250 9251 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=264 +p reject 1-65535 +r Rondoletia I3q4KZEJLNbU+trOEinoQAjjddk sYJ8Cq/khzctoMPNfsFYsfozioo 2020-04-19 19:49:53 147.87.116.61 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=58300 +p reject 1-65535 +r ProtoAES256 I3+QXnRIUM/jtRCMkRL9/OjcBdY 7Z7+X9G/aUO2jRHe5pDeNz/DBZw 2020-04-20 08:29:48 104.207.146.208 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=220 +p reject 1-65535 +r SkyLights I5F7s/OZS8YfDJ160ZsGn54VDSY UhiBG+XxfS2uOEjEIoae5waK3R8 2020-04-20 06:56:30 67.215.255.140 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=140 +p accept 80,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033 +r FamGuyFunnyMoments I5i3/Wycl6IP3X5jfL2tF11bdh8 cia783K4RBJLdaad7/ON94hTChI 2020-04-20 07:23:23 188.240.210.50 42069 42070 +a [2a04:9dc0:c1:7::e9d:4eee]:42069 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=850 +p reject 1-65535 +r shallotandredwine I5ouDwm4/qVRcnSGUZBAWYoCJ3g Ag/7p3LGqb4AFAEb2UV9OCOf03w 2020-04-19 21:09:54 37.187.21.153 9001 0 +a [2001:41d0:a:1599::705]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1220 +p reject 1-65535 +r k0nslNET1488 I543OxCOBJErOvjDLpn/DtxJKmg e5x8iVzwR0jZuWY4t63S5L/uwYg 2020-04-19 19:29:31 198.98.53.61 443 80 +a [2605:6400:1:fed5:22:f80c:3ee8:9e1f]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12800 +p accept 1-65535 +r p4r7154n I6AiBYlIhnZZ5ppSgqxONnsqz70 qGmUCnoz3Ibd9uJe5XhbGwV6gXY 2020-04-20 11:23:53 99.131.45.143 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7920 +p reject 1-65535 +r xenon I6LY3fdh81zGO99l5gS3an4vaXE tfixFtrpnghQFnQ/ZS5QuPjjBoQ 2020-04-20 10:07:38 217.160.59.39 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45300 +p reject 1-65535 +r fr33as1n5p33ch I6S03cIXABU+0b1YU4Owx8Y241M kEfEuCY+Bb3VHeS0Sm7FjMScIew 2020-04-20 01:04:34 212.51.137.248 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=683 +p reject 1-65535 +r marschiertor I6qMYewyXB+bJEOmT1chyNEHTgw VbC8Dq6Bx4st8H8ckmEoyv7tUWo 2020-04-20 03:19:26 134.130.181.43 9001 9030 +a [2a00:8a60:e011:e1:94b3:e439:2197:4433]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28600 +p reject 1-65535 +r apostate I61rFlE32VfAmqD3o+57Bc7EqPI VNoQpZT7CRFPwVWoZEXXZXI+YYE 2020-04-20 09:45:30 51.15.62.130 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6300 +p reject 1-65535 +r GaoZhisheng I7PvQnHjinROI6zENF5Wy9tCoaU /wWjToe4Tl/sSlxD4Ji17IBcB8A 2020-04-20 12:15:52 89.221.214.122 444 81 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r TRUMP2020 I7sSvWiVK/49a/Tv0BDbZNl1ywI votIT3RCQzMujmcWpHQmo+uXDXE 2020-04-19 19:05:30 199.195.251.226 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 21-25,119,135-139,445,465,563,4661-4666,6346-6429,6660-6667,6697,6699,6881-6999 +r Relay01 I8GMgBDqyD7IUaObJeR1rIKo74o E8EHcwF0xHY/AxeLUS5LslXgr3g 2020-04-20 03:12:45 187.63.100.24 9001 9030 +a [2804:538:0:1::24]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=180 +p reject 1-65535 +r esko I9wpXXcdUdqYEAjRuXAqA8ZEiNg O/CH9HLOAYFxuVreN4hxsPG3VrU 2020-04-19 20:27:59 188.127.197.42 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=260 +p reject 1-65535 +r freebsdrelay I98NYhMdS09przhSYdm2CmmB13M yIDBt2pOkUAR2RO/zF8erQizMUs 2020-04-20 15:31:48 131.150.192.182 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=925 +p reject 1-65535 +r FR1sevpsNET I+fu+dGg/YB5kha5cO52J+8FC7c 9DqzT1TKUzxSDJWYH9YThsnhV24 2020-04-20 05:12:08 193.70.73.242 50102 0 +a [2001:41d0:1:777c:200:c0a8:6606:0]:50102 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3760 +p reject 1-65535 +r cannellini I/U0tHndWh3HsY5Dw5FOQhL+414 a+q0IqDaKjvwq9/a8xytBveECxs 2020-04-20 05:29:29 185.65.135.166 20240 28912 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=290 +p reject 1-65535 +r Node102 JBny8e/5qrcDwcyViqc93t9ngqo H4itBZXTw11XiiQq6o/lL1lgaxg 2020-04-19 23:22:37 93.196.81.87 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r niftywabbit14 JDUtMBlr7+W7KaUJI/eaKARSdhE t1RzvYa+xsRr4bxuhekFUMwdnQU 2020-04-19 22:15:47 185.220.101.154 13154 14154 +a [2a0b:f4c2:1::154]:10154 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24500 +p accept 80,443 +r king JFAMTnt7UEGsekyn4pR982kOAgU 1dqDaMWIkCCRsvqjGa7T7S3GUD4 2020-04-20 08:37:07 51.75.175.27 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r chydenius JFktsc2gZs3KQfZAPO1mGDnN4iM 6lLe8lRVQEe11mqaxVtj8Rwb9IQ 2020-04-20 00:18:00 37.228.129.2 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6410 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r atacama JGRFbCh+cVg6bq38+ClZcitulv8 PmxOwGVGK57tHVJqn6VR0hHJj+g 2020-04-20 12:00:00 85.119.82.142 443 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5340 +p accept 706,853,873 +r flowjob03 JHWE30mPX5mYbAYnYPMOFCP1dxQ Npa+shjXowkssa1LFfQo3Kq5/M0 2020-04-20 06:49:11 152.89.105.84 9001 9030 +a [2a03:4000:39:3a4:343f:dff:feb9:4da1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46100 +p reject 1-65535 +r Unnamed JI4xIEsQy9kLAjB2q+eg8D7hp4E wTHItUlsHUvf1AY5vJa660yIWf8 2020-04-19 22:13:34 155.138.143.28 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13400 +p reject 1-65535 +r Unnamed JJMblZev/lApu9uKraU038OMZAc gWuQC0KTeOGR7EnAp2rtHASFlvU 2020-04-20 02:14:37 172.104.170.82 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=239 +p reject 1-65535 +r dragonhoard JKF6TB+owhCKzeO+aBsHMThL86U ttbkUUlEA4ASudF2bFAYhevdqF4 2020-04-19 19:25:40 159.69.21.196 8080 8008 +a [2a01:4f8:1c1c:2e49::1]:8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25400 +p reject 1-65535 +r fury JK8WA8300Rjh966/aAwYvaXo95M BHF0SJA/Whn97CbXmuHVYvWnpy0 2020-04-20 06:57:45 51.15.73.97 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11300 +p reject 1-65535 +r spechttor2 JLHfgHaDMpkLqPEjC6QdldgtUr0 Lp0iWV2ZkSCONgRFjxEc2j7r9JA 2020-04-20 02:29:39 81.7.10.86 443 0 +a [2a02:180:a:61::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4900 +p reject 1-65535 +r bennytorbot JLg0IxdJImc7sa9Ds4lCkF8c4wA aHC1VPeSORFNvtKR/MqLIR0lwYU 2020-04-20 10:13:38 204.83.204.143 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31 +p reject 1-65535 +r Tor4iesongev JL2j5h6YVgcHJAVQL4vCbm4MZDM C3egfHGk08ihnGsDP40WTphqt7U 2020-04-20 07:14:10 71.127.179.7 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=7250 +p reject 1-65535 +r Unnamed JMDcPzmbC6bZIU4ydkvbFv+sVHY 0Y7+ir4jB4yhed7PnASBtMF/EOY 2020-04-20 08:40:40 194.124.33.248 36851 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=17500 +p reject 1-65535 +r bakunin JNBJGiraq1LBdiX7ySbYRHeuoyI MpuZc4VwFPBnChGzl2kVj4ri/mg 2020-04-20 01:15:08 193.234.15.57 443 80 +a [2a00:1c20:4089:1234:7825:2c5d:1ecd:c66f]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11200 +p reject 1-65535 +r niftymastomys JOHGQSGDlyv9dtg4rATR7SYXQ9M dyjczRp2LSbedMkEAeq9+bCDZ3o 2020-04-19 22:25:22 54.38.73.16 80 443 +a [2001:41d0:800:1b3e:1:1:158:2f44]:80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56000 +p reject 1-65535 +r bastet JOLxORIdQ5TFS1vMNos7QRhXxBM nAKYMiRztZ+GvB+pSxJgmbV+BDc 2020-04-19 20:17:10 204.13.164.118 443 80 +a [2620:13:4000:6000::1000:118]:443 +s Authority Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r rmdck JOVE/gdGqTcBn9qUM+co/igECk4 IN7DuGrxZIs8qmiRjMpQ6kqJZms 2020-04-19 20:02:28 92.158.70.4 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=402 +p reject 1-65535 +r niftymouse JOkZVdlprqHYBBPGT+EG+uf9Lqk 1flLBBQWzinH8TTp9g/O+V6LwK4 2020-04-19 20:26:39 185.220.101.10 10010 20010 +a [2a0b:f4c2::10]:10010 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35400 +p reject 22,25 +r cosimaniehaus JPl/mMReR1RlW+ZnmQSXY9rumc4 nRevqtEujxMPgPFsidfbzmuAI8A 2020-04-19 21:40:36 136.243.4.139 8008 8081 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.1-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=69000 +p reject 1-65535 +r LeslieRelay1 JQfmqXrFLcCfpRnTE0AVbuxials gf1uapUIeE8zc6KTlTQnCw8MqfM 2020-04-20 12:12:34 193.218.118.50 9001 9030 +a [2a0f:e586:f:f::50]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1870 +p reject 1-65535 +r Unnamed JQhpjO4nruYOL9Ja/aTiKr9FPSo G0mDzuB1YC0Fn6lJxKzZpzYUwLI 2020-04-20 11:48:49 128.199.146.186 9001 9030 +a [2400:6180:0:d0::50b:9001]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=570 +p reject 1-65535 +r smell JSIk9ym12+8yJRbA2cH5NcUjglU 7Jlm+U/+v12HE+K/xMLItPWJ+kQ 2020-04-19 22:23:22 45.9.148.219 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11900 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r corsair626 JTUFCa6dI3Nocc/MLPgL+cmqXTY 5i1Punfmj/13A3Vl7ozgdWUBros 2020-04-20 11:28:34 79.111.15.131 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3700 +p reject 1-65535 +r snap277 JThbCXVkrm6vHzONm5iqQfH6KVk Ir8YPvQzP5+7nJhP3qp/WZd1S5k 2020-04-20 12:19:55 90.78.122.14 34457 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2 +p reject 1-65535 +r snap277 JUEIo82GsSi54gJfttB0ogFbNdg UtU55amF+kG7Xr8xKPRyZQ22JoI 2020-04-20 09:08:46 109.171.11.233 37813 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1060 +p reject 1-65535 +r kukks JUO8rfy6K1reg/uTGUtenUWBBTI 3GpqV7idLN4iNG7mI55YeR89BmQ 2020-04-19 20:52:40 91.205.175.156 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p reject 1-65535 +r Unnamed JU/0gL9WQpKUYFMv9ZvOFd8QcOs Sj4pEM6o7GWLC/ONAzowuAn1dEw 2020-04-20 11:17:54 185.113.140.20 37899 46906 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=196 +p reject 1-65535 +r niftyrabbitrat JVJuYbi8IrZi49SlBQQCHMPZhz0 TqIWxYpJbMN/LA6Ly0evgP5RFd8 2020-04-19 20:26:55 185.220.101.19 10019 20019 +a [2a0b:f4c2::19]:10019 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59000 +p reject 22,25 +r Leodagan JVz4zGgTdEnevUQ3l6s9hR4wZbI oIA8L8zUXK6S32d4w8ivBRBjvfY 2020-04-19 23:36:34 178.17.174.196 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3500 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r galapagospadda JWLUY9FcPDg1FOfWEXYFBzrEedk cg+gsN0SA7hZ0kzd8jJ1GE65afw 2020-04-20 07:30:44 213.66.107.250 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=278 +p reject 1-65535 +r willcarey JXL73aRWfaZudoSpo8W05KVLuzc sXm1ZcbaTjU4Q/AA4r51VC0ouHg 2020-04-19 20:25:38 139.59.0.6 9001 0 +s Fast Running Stable Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=631 +p reject 1-65535 +r pitorbyjens JXNkjUVh7w6lX5JP8/QvbguVxdo HC/i85tGUWr2CKLh9iP88dUXX4s 2020-04-20 04:13:14 77.179.31.49 29035 29040 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3470 +p reject 1-65535 +r TotorBE1 JZkPxU1yaMkUFwoRjuTudQJUUdo W/Pdyh/KKGAP51z1jjdH1MpIXrE 2020-04-20 02:20:05 137.74.32.25 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50800 +p reject 1-65535 +r 8e55c66ff8a8 JaP9nf/d3ITFm6USPJFqLX4YZeU ZUE4qc0Bosu76t465ULZbn68HRc 2020-04-20 08:07:02 51.81.254.2 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11600 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r darrieux JbaU6pX4JfFWxdrlYHszdehsDE4 Ei/vEsgl7Kb29dIqajyW/uXBPkU 2020-04-20 02:07:13 153.92.126.234 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9100 +p reject 1-65535 +r freudianpopsicle JbtRgt5o2m/BvuLIpjRUNpWH6V8 Xn7YjC6YdURHzLxs6huhVmZFSfo 2020-04-20 05:45:32 142.93.135.71 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p reject 1-65535 +r bumblebee93ed JbximMduuTmPau/nEXq2v6CfEeo wF6DCGu3Zvk8+fVpibesplTj5Xg 2020-04-20 04:20:03 139.59.85.141 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=608 +p accept 20-23,53,79-81,88,110,143,194,220,389,443,531,554,587,636,749,873,902-904,981,989-990,992-995,1194,1220,1293,2082-2083,2086-2087,2102-2104,3128,3690,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8888,9418,11371,19294,50002,64738 +r lapin JeB4zR5TenQYMYFo9+GZDvKhYMg LsldqvgHVCxCSClmc+kr9rffVfA 2020-04-20 11:22:45 195.154.161.5 9999 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31900 +p reject 1-65535 +r hkt001 JfSSR2RvH5ycSzEheuAEMIsnE1k JyTNjCvWsZ9QmsV/qmuXu6SDTKA 2020-04-20 08:50:06 103.35.74.74 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=539 +p accept 20-21,43,53,79-81,88,110,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1293,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,3128,3389,3690,4321,5190,5222-5223,5228,5900,8008,8080,8082,8443,8888,9418,11371,19294,64738 +r snap277 JfqzG7f3dOgCNgrTYQm00jc7pT4 7qprewYL74h0luiPJ9d/1mi6l1I 2020-04-20 11:37:47 84.62.255.196 37583 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=750 +p reject 1-65535 +r trooper JguGoEy+3mBfGDYkwvyjzoH9JKE nKdc+alwA3dIpMcGAe+7mOQAGXM 2020-04-20 05:40:35 31.31.72.24 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2220 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,11371,19294,19638,50002,64738 +r mramazoni Jg5RNkXLCZ9Ugo47BqwxFP1gP94 eRP6bH88dsfL4dJV+twS+0YNyrQ 2020-04-19 19:09:40 95.67.90.202 443 8080 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=669 +p reject 1-65535 +r Unnamed JhRQvPS9WiCOyogr5M++3c0dFx8 x42kQtKrfdtUMdR6BBTRjkXa7JA 2020-04-19 20:00:48 45.12.206.106 34513 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=18100 +p reject 1-65535 +r Q JiIK6hiLjQ5Hu1QeGmFus61wKV8 q5G9cSac9OxGaXfUMypk1Px7Q90 2020-04-20 07:04:27 78.47.221.71 3451 3480 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p reject 1-65535 +r bikerduderelay Ji3SbjcdwCov+wunso/OGrcHmbo W8BS2P/2ob8QOLoeUipb61Xqvd4 2020-04-19 23:46:32 176.10.223.50 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r anonymous30012 JjQdIW0e2qp++DEtoNGbMJgBsuI yvERfmWebJmB9HHxdtFXAHOzNk8 2020-04-20 04:13:38 83.135.238.77 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3690 +p reject 1-65535 +r shenanigans JjyEWNxYkJSYY8Ahlq/OaOl719I 3/M7aVeOsCSF+GG5tVZoHwPR8bw 2020-04-20 08:22:16 71.39.169.105 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=85 +p reject 1-65535 +r khjmklykyu JkDsGmEbJ6sFDWB5Y3L73S+QR4k IeC4AiXW3x73MrWthb4OVKNjz44 2020-04-20 09:17:21 94.158.244.26 443 80 +a [2a0a:c802:0:1::1a]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6220 +p accept 20-23,43,53,80-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,981,989-990,992-993,995,1194,1220,1293,1500,1533,1677,1723,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Magmarowzee JkEHMh5NjqavR6XY5piU/24/Z8k nWHYkAHd1SVmykeP1iK7ysBGsjA 2020-04-19 23:33:00 139.59.19.222 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=410 +p reject 1-65535 +r Unnamed Jkm7l2z9pKENVfKM92xrXte+fp8 JkktG7THyX6BOKgtIiYudWnqUfw 2020-04-20 10:32:00 104.244.75.173 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r hatcheck JlmsqhQLaEXjjxibQICBe5gZ65o H7XgrVdG7jAPH8+yAU8mACfHrqs 2020-04-20 07:36:13 94.156.175.120 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19900 +p reject 1-65535 +r p14nd4sark Jm8sXOOoL3NXcosQKYiCbjjZjxc ggzSWD0ZVzi7o7t5/6PAefo2UYE 2020-04-19 19:57:37 207.153.17.244 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r NSAGOV JnWSY5SNBD8mBBOb3ZPvTzzyIoY R85GRDOcDAz0BKDTENMUSStf79I 2020-04-20 09:25:40 78.55.240.245 443 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=846 +p reject 1-65535 +r whynot Jn+h7PG7fghXtKrP/WEIGnoMTa8 zBbRad0orN7FF8g/8VOKSXinuO4 2020-04-19 23:39:50 118.211.154.56 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=178 +p reject 1-65535 +r TJM JoUyonKtwD2X+WBmJ4nmKWasgsA wgMIV+Y2MNOZD16gj9KNbT0tylI 2020-04-20 08:51:29 107.175.147.73 9001 0 +s Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r torrelay01hacklabor JpCJdV4x5KVtBkwjidk7+N+WYN4 hRwDQufk4Nxl5tQu9Ha+LyjVwGM 2020-04-20 00:20:48 213.254.32.26 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1300 +p reject 1-65535 +r torzpi222 JqzToe/su2lc6N8ut2nbkkKWTGw wPPS7YtENi4qXNTZqt3zZsGbzlo 2020-04-20 03:19:54 130.204.161.3 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=800 +p accept 20-22,43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ageinghacker Jq08HBjxzSs1ejP6dlKpBtsTqMw yv+Th9Bw8nbem5NEejDQcY4RITg 2020-04-20 08:30:30 82.221.139.190 9001 0 +s Exit Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2 +p accept 1-65535 +r CastleBlack JrCaTJ9qnUgV20bro2JqDtjXHo8 BVJcB/AQgw87vzWJEc5f+3POCe8 2020-04-20 07:46:33 116.203.82.167 9001 9030 +a [2a01:4f8:c2c:25b2::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10800 +p reject 1-65535 +r philotes JrK75nFJlzqm9jH9CeKjTnMlOrQ 5VMnhYu53pakjrHgj0vrLAiLN78 2020-04-20 09:12:19 94.16.118.250 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18300 +p reject 1-65535 +r seegurke JrWaTpDvcSlKRCYQZ/JHWl3Oxto etVoMfVnwi0W+sW1kGAKmIzjpJ8 2020-04-20 01:12:41 84.139.42.34 9001 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=810 +p reject 1-65535 +r artikel5ev4 JsKPKbYR303iOs9dncHrSJXvXos dwkhXe55uhdJO5HKnnzZa2yEttE 2020-04-20 02:01:04 87.118.116.103 443 9030 +a [2001:1b60:3:221:4134:101:0:1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34600 +p accept 43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r sasoom JsQ/tErKrtt6T38fH07JMFuHhRM LewU1Wkpzv7jm1ZBNk4KBditqxo 2020-04-19 19:51:51 70.89.115.157 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9 +p reject 1-65535 +r snap277 Js0wmm1RhxJN8sX74Y3+8wC4u/8 a+MQJR7uSL+Jq18hBGARwKy/hbk 2020-04-20 05:26:20 128.72.96.23 33094 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1030 +p reject 1-65535 +r ViscaCatalunya Js5HYsxpYLmnJSdW4SsqAMIoDQg UaZssZKVHxFPaSf+ZsLkZPBPuEE 2020-04-20 10:23:18 81.37.42.80 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=95 +p reject 1-65535 +r torexitteffalump Jth7ji6BbN3EEF8U9Tyw/eKTQyA 003CKAOca7O+yZdN2DOX6BzyMaE 2020-04-19 22:18:27 50.116.37.141 443 0 +s Exit Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,8332-8333,9418,11371,64738 +r ksp96 JwP9nVapuoAkoEbNtlsbgLihiA4 PMW+cLyehsexvgSj/ZVrOfgGp6E 2020-04-19 23:20:09 34.71.56.77 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r florian Jwg17kmmCQBlp1Vac0xBT45fA/4 fksmQNvEbDpH/EASl4iBAZG5HOw 2020-04-19 19:19:33 5.135.152.143 4444 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r Unnamed Jwh3+0ACFLJONX/weXXz3mtVIJM +ApcRhasfLhp1N/csO3JItbGBFI 2020-04-20 10:38:28 91.219.236.168 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2080 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r toloso Jwk0pPe2aao4fy1HX755PQNpRUc SR/gRmU6/JoJpJDhM7HpWOInZIo 2020-04-20 07:56:35 212.7.217.52 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p reject 1-65535 +r Unnamed Jwois3/ZS/44G5giBs/fPEwsZww 2uG9D1xH680LlN0JOW/zpwRASCY 2020-04-20 10:00:01 84.198.112.154 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=680 +p reject 1-65535 +r TheMind JyitJkKElE293f4Mbb5laoWpNgI XavMYvTiP925SViJ+tpgdIg0RAo 2020-04-20 11:14:06 138.59.18.105 88 999 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=610 +p reject 1-65535 +r bsdtorbrokencode J1GhjSlm25qVX64L19dDG54v7KQ lolBpEWb/nWmG9nJdjIE1DvN6SM 2020-04-19 23:45:37 108.197.232.51 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2950 +p reject 1-65535 +r moeph J1ffvs/3tbAmgPXOCEpE/bwIsZY 1uaoPlD/VnNTb5qlNUWW3tCOOCo 2020-04-19 23:03:01 139.162.117.43 9001 9080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=472 +p reject 1-65535 +r Unnamed J16kJWJiRxO4uJqPFVd5bF8qoks bF1cn4kxavAFhayOnhu7p61QP88 2020-04-20 04:36:29 149.56.99.85 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p reject 25 +r 4f9e6fe80a32 J2N9Uk6W4rlrkYhJWOxHd7NxvMQ jjDAFe2bXdPcb5sQf1VMlfzlWuQ 2020-04-20 08:13:21 51.81.254.22 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16200 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r async102 J2QaKxHMHdB7+tG78X0jnf4FBts NmWGfde/0lcRvxPwXQzIDzUkhNs 2020-04-20 01:16:03 68.142.39.64 443 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32 +p reject 1-65535 +r wintermute J26tYRnDJ5MMC40+NwvxY++wJEs KcAG5C0pbQm8jJYOo4fBMrDi8ok 2020-04-19 19:05:41 188.166.87.136 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=800 +p reject 1-65535 +r snap277 J3QoVtqohYtyY0FvZnGtlqEndNo j8SFA7z81X5ZrR4dTg7offGZgpk 2020-04-20 12:25:54 90.43.22.207 37241 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r preecher J3nbO3oO7DLzl5Ljk8qhNIR7v2w 3soVEcu6/GG384gnJkngH8lISn0 2020-04-19 19:58:34 51.77.158.218 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21300 +p reject 1-65535 +r puma J4XEpl/prcXHXnnwsDTs3jcA+CA +MUYF0iqhdiNQbQQypfSlyQ8avc 2020-04-19 23:02:20 185.100.87.244 9000 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19400 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Yani J6Wg7nLPBQ+fCgkuKw5/+kBlN80 /jzIItXxPh/WF9kzfaattzn8QGY 2020-04-19 19:17:16 37.97.185.116 9999 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=520 +p reject 1-65535 +r tordebain J65sanN750b2ShMSbOAXZVvARxU aYvKJ2ZhwNy23IHO0jN2s1Fg5as 2020-04-19 23:35:57 95.216.212.220 443 80 +a [2a01:4f9:c010:491e::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3430 +p reject 1-65535 +r DacMonalds J8Ya4I692LJreJksdkfYkCaengM 6t+GLk17vnD4LQMZQX6ohbjsO/E 2020-04-20 10:36:54 94.63.75.74 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5800 +p reject 1-65535 +r Hydra3 J9Alea1fPjKJXZnDjkgtHcbLrl4 ukQLndnGxfFU3Cd+Oukdumytp30 2020-04-20 03:08:34 178.17.174.232 9001 9030 +a [2a00:1dc0:caff:111::785b]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4260 +p accept 53,80,443,1194 +r REDPILLsuppository J9CXAjnnBPQYjee/HwCNOGtZpXY kH4xQVd1wk4ZOuGg/7QhyAPLZbw 2020-04-20 11:04:09 139.59.36.149 443 80 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=45 +p reject 1-65535 +r Unnamed J9LQCQDBklJWelCnwOa3SFQFogc Ue4H1oC4muQUFkbaxWkhjUOYkTo 2020-04-20 05:06:15 167.86.93.74 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=19600 +p reject 1-65535 +r PeachEm J9Zov7ODnYxuNhk//D303W15tRM qHTHpsGbgRjF1rzmK9TsWrGcAxE 2020-04-20 05:24:23 51.161.11.228 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12900 +p reject 1-65535 +r Unnamed J+aq19rSLWQGvo1OfMuiM7KMqY4 WD9Jissalbgxm8yhXZJmrC5kuJQ 2020-04-19 20:04:10 167.114.89.201 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10400 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 J+vm0JLMr0/6ut1taUr8QeCg8fQ 5RPCFi3+GmqAS5b9OzksPeWfoB4 2020-04-20 12:30:16 87.222.93.243 37841 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22 +p reject 1-65535 +r deepspace9 J+wBjIB9+k9Goh1pzUU10fMMe10 fkG6tmLO+gOUdda64am2yuDvP7c 2020-04-19 22:41:00 79.140.41.118 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=948 +p reject 1-65535 +r spe J+5IVNA/gfrqOISkQwO+AN7u5VU /TaIFnJUuqigz4Xuro6r3Kxq5uM 2020-04-20 00:48:32 80.112.144.249 9001 9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5690 +p reject 1-65535 +r WhatsGoingOn J/ODNFPEAG3x4hxr9i5PzY6Z3vI /sYLE83/QsC7DVrjxjb/YKb2FsQ 2020-04-19 20:37:32 66.70.207.168 10001 10030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=420 +p reject 1-65535 +r alternativlos KAkHEKvkM6RwIfIiCLPsJFqRKQA wyerfzO+AgGGDPB6jF/cEMDBum0 2020-04-20 00:08:22 213.136.94.10 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2810 +p reject 1-65535 +r CerealKiller KA7CwRCPWPOZQsh0CwZlcC3AXkM EsjWH6hKeZlZTWjYsgynmbC/JfM 2020-04-19 23:00:05 23.129.64.208 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12100 +p accept 1-65535 +r Unnamed KBojLYy5Vdqw20lCKK9kGVsVebI 7hGWVvx3sXKDRnLr7VIMCLDZKTI 2020-04-20 10:59:44 31.18.177.147 9002 9031 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=984 +p reject 1-65535 +r niftywoodlandvole KDMSuySfy2Yzp8fh6CQUYQAOYAQ FIqXapLsRjMgZsi6+WjWZPpG1TE 2020-04-20 12:07:03 185.220.101.134 20000 20001 +a [2a0b:f4c2:1::134]:21365 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41000 +p reject 1-65535 +r Unnamed KFBWSgugCxolMiuvO3y/OzoYfpA 72+P+9H0nMdze796LsVJRl4kaw8 2020-04-20 06:30:19 185.183.107.38 65093 41001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=120 +p reject 1-65535 +r 3230613567394501 KFsxlSVt6mbH9YwFlrF9kjeIBWw 64RufzGExiD33ufGbY2IkRDXKfU 2020-04-20 10:38:38 5.2.79.179 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2670 +p accept 80,443,8080,8443 +r ratatata KG8i9dGYqyDFDGW5SgO1LK5YiUY XyBUtn9e8RNMFvAHdZIsfD+Lr+A 2020-04-19 21:59:41 217.20.130.72 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6730 +p reject 1-65535 +r Unnamed KHlGRnjU210tLkGXUbex6kXQ4FU dOYLZ5Oz/KOHV9xwoclT0S1ijj0 2020-04-19 23:09:06 99.166.172.244 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=169 +p reject 1-65535 +r Tortule KHqapFHOYxtkAxQ08aZicH9E5jo 1yCW3NQBA83tCWiWdGKBGYa5d/Q 2020-04-20 12:19:47 109.136.135.193 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6 +p reject 1-65535 +r Beet KH4QQd/DoD4WUKYa31gOoca/Nkk ug/OOcQJKqeF95QJwpvBcxNGTbw 2020-04-20 07:34:09 46.19.141.85 8100 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22500 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r investigator KIwQD/plaTjCPzIgfK8NqTLs0kc caUxoj+XglKsBTzUDIX5YSkEfag 2020-04-20 10:24:57 138.201.19.5 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=110000 +p reject 1-65535 +r derdave KI16jqRxtdljW2qKwIF2TjzTl5g rRGPxKZ7zCcVBms91D2ttTExfmg 2020-04-20 02:01:01 62.210.109.48 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=575 +p reject 1-65535 +r Pleiv KI2i8n4wvHP8ioQ2dpbJ32tMG5A NUg58ea0Fx/5vM3RdgSOElyU46o 2020-04-20 04:46:25 195.154.133.124 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13800 +p reject 1-65535 +r intothetylerzone KJIHNgiYWXfe0z+YqfonqcR8i2E uecGHmaA1q01VOGpMxUFRZzs5k0 2020-04-20 02:25:32 198.58.107.53 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=600 +p accept 22,80,443,465,993-995,5222,6660-6697 +r PixelBullyRelay KJ+VX6BL0iTxje2dR2ZSlwX73Eg qKGM/EDhAOOd9ZoRur5bO3xSUQw 2020-04-19 22:49:18 82.35.159.254 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=405 +p reject 1-65535 +r niftyentry108 KKTGTDQSDgdXAbBBXXSQbsaH8h8 XXZC1aO4OOLRuUUydpqufeoXlc0 2020-04-19 20:25:55 185.220.101.108 10108 20108 +a [2a0b:f4c2::108]:10108 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14400 +p reject 1-65535 +r th00ht KLOdZ70Y0TaU3gNnnqSoZOtpd+k Fr4Aa8LEpLjA1vLuhP/49Z3M/tY 2020-04-20 02:02:07 83.97.80.89 9051 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5500 +p reject 1-65535 +r king KLyc3VLY2BeGK0k3sR+CUbiWp3E 0VO5Ibu2HjxLssYtumCcHJJ8yrM 2020-04-20 05:51:49 51.89.200.99 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14200 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ayb KMUs27eNpGEk2mLsHWeWaJ5xkhA VGtFYtKsLSPysvIwObVFpvzMGgY 2020-04-19 20:29:00 88.198.70.137 9090 9091 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=728 +p reject 1-65535 +r Unnamed KN8c5AjS4LpVYYjoHsdJnfkLWDo hDWsC05JvwmxcRHB+TEypHswYd4 2020-04-20 11:31:23 185.108.129.78 443 0 +s Fast Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5260 +p reject 1-65535 +r niftycottonmouse KPTzkvjxnj+94JYW2duBQ6Hi3dM DvUZNEMTyDmEm4gXtnPXkt46Jzw 2020-04-19 22:15:27 185.220.101.137 1137 2137 +a [2a0b:f4c2:1::137]:1137 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56900 +p reject 22,25 +r bb24d2d87e39 KPmkuAzUWh82gLu6unhXLGuXZUk CyMMv1OrRvYNanDZett0VI2VLwE 2020-04-20 07:16:19 51.81.254.27 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8130 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed KP3MI36DxO+DN2M225YNEdSfp1Y Mu3Iu7wVdCk/ojMWA0ZPaUGkp5I 2020-04-19 23:05:20 109.92.182.91 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=210 +p reject 1-65535 +r MediumSlesmn KTXg8DtxvkT28mX++XboELqtb04 74Q+o35pLLqYC5OQrzHkiDcdxyo 2020-04-19 18:59:11 144.202.63.243 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15700 +p reject 1-65535 +r glittershy KTalOU0toUv0c1Ra7HZ1wMh7hZ4 +H1nGLnJZHqqu8xTVSwW1P0Ae6M 2020-04-19 19:22:41 74.96.242.116 9001 9030 +a [2001:470:8:79b:1::beef]:9001 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7310 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r treebark KUgRowVTDdgGMcKuD0h1OoNmmKA Rhzw351a1jjR5R7qgHmwzSY2nYU 2020-04-19 19:17:53 208.113.134.18 9001 0 +a [2607:f298:5:101d:f816:3eff:fe4d:3e77]:9001 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11 +p reject 1-65535 +r karbtor KUibPNaf5qmpzt3312WAebsXoLM +mc4zQr+VIBDwztnvObOneOlpdE 2020-04-20 04:21:04 185.47.222.34 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=121 +p reject 1-65535 +r Eliise03 KUtM3qh4uo/i5wiuevZD+t0RDw4 AhLuxP/JWV2PhS6reN7QIkQkKXc 2020-04-20 12:04:15 185.195.237.25 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r 84197ae125b4 KV18jLcnL6k124pp3AqQP3EpGbk f4KAiJG/pyP3ShF78VHexj+R1W8 2020-04-20 08:14:05 51.81.253.214 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7960 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r iiyatsu KV8Fq1HLftR6xtbmaQuBiDrR9+o 4FCoXeOonX6slJ1XvbksPm2Dkmo 2020-04-20 05:55:41 159.65.16.134 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=550 +p reject 1-65535 +r angeltest6 KV8b2JlaEuzHfgUMz27GQVcnOek gTj4uE8BL2cIDWZbjJ7loHq1qxk 2020-04-20 04:33:39 185.61.149.67 443 9030 +a [2a02:7aa0:43::827a:763d]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31000 +p reject 1-65535 +r nodvrelay16 KWgPLJtiyZdxh1vnrxYel/6eKco DdukE6xO7/PGbnTh50SwRqVnDxs 2020-04-19 19:16:34 45.62.212.103 9001 9000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3410 +p reject 1-65535 +r hlin KWqaLJYkm8XYyozxlu9eP8yASI4 E4iq9ewuI2Td1ISIDI4UPOBMzcc 2020-04-20 09:33:06 88.198.36.122 465 993 +a [2a01:4f8:a0:23a1::122]:465 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5300 +p reject 1-65535 +r soltor0 KWsheP10KrNasgya3wTV39PUB+s sOVzXTg9OhmVDipVUk+ygiqhcxA 2020-04-19 21:35:10 206.55.74.0 443 80 +s BadExit Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=520 +p reject 1-65535 +r snap277 KXnIwRg2cc+2N2AO6hG2+lmeBLo BTWHJ/CTl12f9JUqalQYn1F+0hU 2020-04-20 09:17:03 109.129.169.1 36621 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=855 +p reject 1-65535 +r mirrorfdroidorg KZTNRBezu2m8HrK7mSavKt2lLsY RWJzT8N0zKVLJoz8yTkX+8sqsmU 2020-04-20 01:37:21 37.218.242.145 8443 0 +a [2a00:c6c0:0:151:3::145]:8443 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=230 +p reject 1-65535 +r Unnamed KZiVXIClxVdalgICr84NffYz9u8 QKNJKCHmEjWkNp8EWGaNlZ4WvKc 2020-04-20 09:01:51 188.195.3.98 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=858 +p reject 1-65535 +r BorrisvCorbyn KaORRK0UEkJDbQeQH3qLkfdRamY HaEktkuBzqBmYswakITdK1dJxik 2020-04-19 20:59:56 176.31.116.155 8443 9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42000 +p reject 1-65535 +r bassblitzed KaccgkdnCJNnMq/KvijIlcE/3HY Y8aYra5fScGoXxfDVsrxO/9ii24 2020-04-20 11:02:40 75.3.204.124 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10300 +p reject 1-65535 +r jenniJosh KaqqY85F7pT3jwaH5YsawzS2Erk 9V+6c+oeCRAFaYkArfpGIi1f6vY 2020-04-20 12:11:23 196.12.37.70 9002 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8 +p reject 1-65535 +r mrTrololol KbHBZgZ60zkimJSS9zvNPm4GZ8o VWZCFZUI8OjsguDdcXh2sQWKqVw 2020-04-19 21:00:00 94.177.171.20 9001 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5440 +p reject 1-65535 +r Leon KbH5U2WoxFI9CqnILVBQiEKLpQ8 9wUh0bZkSRyKm8AbwUp3XdRM6hs 2020-04-20 02:17:30 74.208.88.58 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6130 +p reject 1-65535 +r neximon KbH/RgKeIdYMnFROIuhFPMRh730 UHm40hQNjMPnEeAjTwaZJAAAHSQ 2020-04-20 04:12:39 103.253.41.111 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r corona Kd3SXIOD/aVZ1ODoj4IKuIwmISo jv7pz8u9uSlvJJj/WSgzM1cxU4k 2020-04-20 00:45:17 116.203.234.246 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13900 +p reject 1-65535 +r DKRelay Kd5+4IZtT0NArgz9cq3DUZ9lRho Y/xQkzw2/Y0LnI0jyI5uVIAcmTo 2020-04-20 01:53:34 116.48.109.89 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=590 +p reject 1-65535 +r darmon KfpRHmejGhqHSqv7K2JK0SKuTtQ 3/uJgmeH8OSXOyGIZkdopOY4fvU 2020-04-19 23:07:00 138.201.143.186 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22000 +p reject 1-65535 +r Unnamed KfuOBYparzIl0IjqEFnSMoAYQeQ 1sqXl7ZBwa2JbcfiW8U/MEP48Sc 2020-04-20 06:29:52 134.249.119.130 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1310 +p reject 1-65535 +r snap277 KggKdJI845+SxcMUf5N8+No6o44 feMLGYs4Gjndj4/lO4JAws6nnk4 2020-04-19 22:27:00 79.92.138.106 42191 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8 +p reject 1-65535 +r king Kg1WHcN6VWQCetLew0AeowDjytQ NMORQy6d+cw21PsmxLpaR2NdaTQ 2020-04-20 04:19:14 51.89.147.65 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11200 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r HassoBarks Kg+tPKehkMQ9jteJZye9Qm6MLvo jvCaUO6Po2vsNKTCZijDx192Q9Y 2020-04-20 09:43:38 217.160.13.173 6574 6547 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2990 +p reject 1-65535 +r hellokitty KiAi04aJTTyzQ4dSl3wnp69Quvo j1rRRhC55UpjHdCwzls+Cy3OK48 2020-04-20 10:52:35 203.186.69.98 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=810 +p reject 1-65535 +r niftyneochoerus KiMaXKevkQKbdHVRHX0W34XskiE D6HpvS6GRknFSHX0VkMyya5GfKQ 2020-04-19 20:26:39 185.220.101.12 10012 20012 +a [2a0b:f4c2::12]:10012 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42300 +p reject 22,25 +r askatasuna64 KiTgt/fWS4CNcPvpLmQcnW/Zmz0 ILf+THUQQa64MUZs1467NKxZcw0 2020-04-19 23:56:24 163.172.41.228 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6900 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r BreakingB4d Kik+TDXOv9GhUUddFQ90LoUgntQ qJOn8nn1pDOS8kpiJRsz0qYdzZc 2020-04-20 04:21:06 185.229.109.155 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1790 +p reject 1-65535 +r stewwerter007 Kimc9HPd1GjRkBkXEiSwUDPCFX8 FrX1VTm0C6Uw91Ahi7agFi7M9NQ 2020-04-20 09:31:17 188.136.78.234 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=88 +p reject 1-65535 +r Angband KjYAWoEci0IPOA1nxKnWMGVfCQA 126Ony11JV14ZT/k9ZzudXzGY4U 2020-04-20 02:34:34 178.17.171.102 9001 9030 +a [2a00:1dc0:caff:138::94d2]:9001 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4430 +p reject 22,25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r Unnamed Kk7MOXB9oErsLbK98nchdgdtv/0 Uj/luD1UJr+m1EXN5i/WKndDyMg 2020-04-20 05:31:49 95.213.150.194 30069 14945 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=822 +p reject 1-65535 +r Challenger KldGv/MqNjzTqtBRlsDxDnFDu7Y aingZCUJwI//KRtI2S9DnIQZtu0 2020-04-20 07:46:08 54.38.36.44 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13000 +p reject 1-65535 +r neurostar KmIaQP8wgfYSlG/fuNx4G86FmgU FzjHghyyhZd3TqMhcKeF5YPTnkM 2020-04-20 02:17:56 116.203.88.24 9001 9030 +a [2a01:4f8:c2c:7a40::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=17400 +p reject 1-65535 +r BLEPTOR2 Kmb29lDIt1cZ8xnjjwfgpSJ3zTY /vA1XOg1B2HgGpRaTwLCgVytO9k 2020-04-20 06:13:13 5.135.232.46 9001 9030 +a [2001:41d0:2:8042:0:6:1:0]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9980 +p reject 1-65535 +r ZankleRotaryEngine Km56v0P5eWrUoT3ysgR/kOcpGl8 wTUcmtWxnGCzkGvd9nYEv4AfSH0 2020-04-20 09:53:17 24.52.242.153 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=450 +p reject 1-65535 +r edsnow1 KpvAzV2jt/mFSgka824qcFK0FNs qRiTbYOLdaJtwGqSd7C51FV7AuM 2020-04-19 21:59:27 91.168.166.18 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13100 +p reject 1-65535 +r setsun KqX1mPmhgS8BzZnjtZu4c2LtdDg hGHmEF6sWay7bactKd0lxQhQipQ 2020-04-19 21:33:58 144.76.200.80 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=92000 +p reject 1-65535 +r snap277 KqaPrRcE2E4u9k4qaORPoXyyPsk kwjnCAL51TLI+KUAJpBNDt+8R9s 2020-04-20 06:27:55 109.87.55.221 37707 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=914 +p reject 1-65535 +r SleepJeep2 KrcIu8LVLHg/n8gh98qOUaLPupg 2a5fxeYRRdJ268vXfbmZbSKUa98 2020-04-20 05:48:04 31.220.2.134 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=54700 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r kellogs Krn/zGYY+7yXPEV/xr5ehiCmD9w /4ie5kKp2u0+49FzXpuKHD0mSHU 2020-04-20 06:47:13 51.75.65.10 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7160 +p reject 1-65535 +r zshjumper KroTRfyZdRUjcvQtBqGn3MhwwvU 1GuNQr+WqEZwPv/yKYK+cfHfRBY 2020-04-19 23:03:09 188.143.77.14 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p reject 1-65535 +r foreach KrqRhi/QImNy8GPJS4w3UT7Iprc GGa0a8mv4LdKiTtWrANUXmtS1zQ 2020-04-20 07:45:21 104.207.149.101 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=77 +p reject 1-65535 +r vienttorrelay KrqSiUX37B6d0QWmKNXAVgnbW20 t6K66qxON5lbJDYFxcjIFfary+w 2020-04-20 12:35:55 51.15.91.217 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r KienjochRO Ks7A60+ScpuMoiyGhUWGa5UpQxw MJTMDcXP2Vf5oNzb4A6iKgvGrk8 2020-04-20 00:20:26 89.34.27.24 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4100 +p reject 1-65535 +r Unnamed KtIt3jR5C74Z+00R3cu/3EXvFqY anNy05mwESF9L5DtYoaH7WKtiow 2020-04-19 21:02:18 185.65.205.98 9090 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r Unnamed KtgvOWTTJbP+L/dOmA+wBjdO8ZA BBJVKTdN1nhSMe1G9/vUf0zL3yM 2020-04-19 22:44:25 91.134.147.134 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21000 +p reject 1-65535 +r Tuca Kuwb1jS806QlHcAEVYs+nF0cBaI aq3r0zAXRW0fy6l+9H9vr6049sU 2020-04-20 08:39:44 193.148.69.128 3030 4921 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3430 +p reject 1-65535 +r nodvrelay32 KvlDUpuqfOyTknHySpMYkqrXCcM lrRtAo021UlP0ioH9cTa4BH0Imw 2020-04-20 12:32:25 45.62.235.25 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=730 +p reject 1-65535 +r calu Kv/7RNk7LwZqaFP6GZ+3vq88U9M BrP4OFlIysyu0WLs116lBMLkrqU 2020-04-20 00:29:23 92.243.6.46 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=521 +p reject 1-65535 +r Idatha Kxuyp5bHDX3llv+foMukjxKZTEw uOIYNMMhSryMZra4Sbp5lqmqVKQ 2020-04-20 07:05:42 91.228.52.186 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=191 +p reject 1-65535 +r snap277 Kx1K4TGS6F3+Tikx1NqwlOA1018 nJS9EEz9o/4y6VXJSRRNvHo7rRQ 2020-04-19 21:32:44 24.20.165.214 46159 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=289 +p reject 1-65535 +r FOO Ky1hS4IqadeRn3/4B5u/wg9Mtrc M6cKiDDRa4Ra/z7kLZwPtFKYRJc 2020-04-20 05:17:29 178.175.148.42 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=10400 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r MrTerence KzH7gn1M6nNLn3jBYTfP1viuu3s 9nXfN1ID/5cY/yG7nC1beS90gBI 2020-04-20 00:33:38 185.165.168.229 8443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p accept 22,80,389,443,2222,3389,5000,5222,8080 +r RunningOnFumes4 KzQJntK8WYxHRclshz/XOkRWRr0 zOGgBfvSumhgsdXQHGfCCocH6K8 2020-04-20 11:01:28 185.82.219.109 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=752 +p accept 53,80,443 +r xmppse K0wMGJBv7jepNoFb67X46xhs5FU ad7H3vzub7CaVNJyVzahzwXs3BU 2020-04-20 02:21:25 94.254.86.22 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=564 +p reject 1-65535 +r snap277 K0yNwPSgeQq3LSajGblNMofqRM0 Sh7NE+dLTeHp5ahd15h+syt8zfM 2020-04-20 01:25:26 74.210.249.117 37945 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=740 +p reject 1-65535 +r thealgorithm K1EZMgXQkcyAuQTWVyH/jcvlHJY +bPuZ9lKKP1vFHPYYZC7Mkkl84U 2020-04-20 03:47:02 77.109.191.140 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13300 +p reject 25,119,135-139,445,1214,4661-4666,6346-6429,6699,6881-6999 +r Konditional K15QJTakNv422ixodfTHfzWTs38 V/oOzs7R9ooPZ8+9Saoq2jvU6to 2020-04-20 05:17:21 50.7.116.58 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4300 +p reject 1-65535 +r nitrohorse K17SgaOZ4fwcfAlk80mxKhdd3gc ozdUYQ9DgKZ7tN3GmB/xjq4jVWU 2020-04-19 22:58:09 23.129.64.212 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7030 +p accept 1-65535 +r ididedittheconfig K2Ll72pbcyRD1prI6JNpnZww4B4 s/FB2usKHMK0zc4l+o0J+G1hems 2020-04-20 03:57:47 3.92.225.220 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.3.1-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14 +p reject 1-65535 +r SNAFU K2kZsCs36l6lZ2BnCdJ7UhLyTQk b7qn301V4HNHK/YF7U75DC75U4w 2020-04-20 03:40:38 87.98.185.5 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r crivit1955 K29vBBQEZOUxgLlA7uxXu3JWsQ0 KMYoyUFhZXYq1OqavDBJyBvJMQs 2020-04-20 05:42:36 81.100.16.81 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=407 +p reject 1-65535 +r lobRelay K3B2BlyBd/Lal8vIQwfOuyE0Bv0 UxauokYU/qKFP2Sv5QtKP131sqM 2020-04-20 05:39:37 213.209.221.53 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4620 +p reject 1-65535 +r nortor3 K3apFMrzsSHRTviigyfK7hJ5lKQ pQgPHuVCw1PcgMaAGxs8qwV5yx4 2020-04-19 19:48:06 217.170.206.138 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r tauro K4iq0uYB5W5eroK+w4qrDKbvIoM lDNUvdPkoY2Kx7G+AUMzWfuh4ZI 2020-04-19 22:26:55 189.84.21.44 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=200 +p accept 20-23,43,53,79-81,88,110,143,194,220,443,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r torbogenpi K45kKBH/b2EGAPJwOrWeQvuaAMs L4w/vCoSNCS3404T9z7mxIxr2T0 2020-04-20 03:13:11 37.138.225.163 9002 9031 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=279 +p reject 1-65535 +r LaserSystem K5T++WjJlJ/S8Q6xVJOElLL1BSc Ypm7fyojLzGxhpM2k9R1fEwXAME 2020-04-20 05:17:23 134.249.231.207 8080 9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4820 +p reject 1-65535 +r fuckthefuckingfuck K5k8EXeCGzQN6QMnF4NM8q2EKRY mmx6/xj5Bg1NCNphTxTu+LUvsaw 2020-04-20 02:13:47 91.5.200.76 9001 0 +s Fast Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=338 +p reject 1-65535 +r storm K6LI6WslkOEHKuzivbXEiSG/hRA we13QlB+VlM+0gWeB92hv/9isxQ 2020-04-20 08:43:29 138.201.250.33 9011 9012 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37300 +p reject 1-65535 +r parittya K6ZlV+heu+N7+3YN0pRDRothjiY vmoiDo0PS8UPVPWTkATK0ard8T4 2020-04-20 06:03:11 80.98.57.24 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2180 +p reject 1-65535 +r Unnamed K6jvjndm9Hr/eDXk09IzNTtnUyY 6sSPS+gyH/KzuDmduvCoj7tNEMs 2020-04-20 05:32:13 91.219.237.154 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=246 +p reject 1-65535 +r finTor K68JLoZnwAyj2WhsdtjsPMa8fFs 8R5Mg/Oe91XDe2Mzv5Y1QPDgFoM 2020-04-20 04:08:25 95.217.15.125 443 0 +a [2a01:4f9:c010:607c::1]:443 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r snap277 K7KTIhLoswxike9OfHWlpMlBoos 5t489oAoEKCJfgFyYAJInl4oupc 2020-04-20 12:11:09 92.52.130.147 43296 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r AlanTuring K7hdxb08bw2BpPK1iCF2xr9+z1o 36X+5I//QWSPyExSE9cYzdg/AFU 2020-04-20 04:57:53 5.181.50.99 443 80 +a [2a03:4000:3f:16c:3851:6bff:fe07:bd2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p reject 1-65535 +r carpetor2 K7m+J7BhUvXnV1u54wUKM9iaC2c VRroQKQCgOOeCJuC8vPkUg0rqMo 2020-04-20 11:18:05 79.199.149.96 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25 +p reject 1-65535 +r MoisTorRelayNr2 K8yJMxOiEOILCSvKo/xVxaOJkk8 CMt4ilS/dH6v7wsk6ycKJDnEnP8 2020-04-19 22:36:17 80.127.103.214 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1500 +p reject 1-65535 +r atomator K83dIAamAAuNX21jx9bSAOQ/ixs C9KnQ9WkN94P4OYzOvN+weoKOm8 2020-04-20 04:11:57 51.15.187.209 443 80 +a [2001:bc8:272a::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13200 +p reject 1-65535 +r fiedlerRelay01 K88b/LcUc7eNRLzRjIU49AbeMM0 RBWqyGrIZdrUVEvw4xHiHmgwlt0 2020-04-20 04:08:01 37.120.173.173 9001 0 +a [2a03:4000:6:757e::2]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r medidntdoit K9DfzTRijNGG1Dz4B0QFrr7nqLc NF7dPYxxq7p7YXuA8+ZimBnA6K0 2020-04-20 12:02:15 87.123.237.61 42901 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=60 +p reject 1-65535 +r 0001 K9GTbgtNW7YVz5mwz/dOrxlCaIg HNsSLiUIAn0CxouUDeOvUaO50I4 2020-04-20 11:03:31 91.92.109.43 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8100 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r anonymous K9QNYbMo8/yunY03AyziaV0FK8c e8/4tBHvfElxCPfHdH/lhZW4/2A 2020-04-19 18:51:53 123.194.142.123 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=326 +p accept 853,993,995,5222-5223,5228,11371,19294 +r UnivUtah0 K+WX0KIlWk6PRMv7Emt6ehKpc3s 6bCq9w13LB5bXXgO/T46FnOiZ4s 2020-04-20 02:30:32 155.98.5.5 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6470 +p reject 1-65535 +r stellarator K/Bd1hC5pAPAfY0XSKhXNuJJ5B4 8sR/87Z/pm2zj21LdzhSwB4vwbY 2020-04-20 04:08:12 93.205.163.143 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=404 +p reject 1-65535 +r RavenSecurityIO K/77SDn295armgKH/f1R9ygO6i0 GdJix/qvkdJD0gh80XQtYgmM81c 2020-04-19 21:03:18 80.210.72.231 25 110 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2760 +p reject 1-65535 +r Nana LAZHYKpmV+LFdd2JfCWIsXCj/xI nbBcVtEFMHHvqbVCcs5DHK09yNA 2020-04-20 00:43:11 167.114.103.19 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=785 +p reject 1-65535 +r HiBuTorNoEx LEdwvulDu2HedIoAcPMcH1V7CJ4 WHQRvpH2XkLzorOI4Aap0QhvfVk 2020-04-20 04:12:46 93.244.144.114 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=853 +p reject 1-65535 +r Unzane LE4VzUDuPS1vBi8Erf6bhcjDxSs 4qMKVK+d+og84+iVizSYIeU3erc 2020-04-20 12:21:36 184.105.220.24 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=531 +p reject 25,80,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r Lexa LGyXDgJ6me/z5pd80bzdlYbgv7M 2cTjFO5zOH9r7Gpno1yHmHvF8Eg 2020-04-19 21:10:41 89.107.57.79 80 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1160 +p reject 1-65535 +r dani LG4lhyh0N/oQv7FFzSaR/WBchwk p1lNOaHc9N6pS73EEUYSYKk4uUs 2020-04-20 05:22:01 160.119.249.240 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=329 +p accept 20-21,43,53,389,554,873,902-904,989-992,1194,1293,3690,4321,5190,5222-5223,5228,8008,8232-8233,8332-8333,8888,9418,11371,19294,64738 +r rittervgexit LHUsGACJ3cibw//MsX+s/ur9eao hfoUki5laG4nlQv91AGUthVqUxw 2020-04-19 20:43:45 185.165.168.77 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=859 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r livefreeordie LHwfAPNMIF6v7Rqm66nv0mtz0Hs /+HLQOURF8GALpEmEPc1iFTlOP4 2020-04-20 11:52:37 68.199.157.183 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=611 +p reject 1-65535 +r ckti LKcSAwwrt+D5g8pKSzgmfQ1HRfY CkWtP5/lqrC2iOwQZDKKj8UHH68 2020-04-20 11:56:58 80.194.62.219 80 443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=98 +p reject 1-65535 +r Unnamed LK3yVEEdoX+FVFSSX2jj4TTSPu8 uT9PPp4jBXBtqJJz1x8gnXCzD8E 2020-04-20 10:17:06 54.38.214.30 9001 9030 +a [2001:41d0:801:2000::877]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5590 +p reject 1-65535 +r geri LK7FWnhU/jyze+gDKAhv34nggsQ NXJLgs5rjV2g72wnlPy8D50/8qI 2020-04-20 11:26:00 185.100.87.206 9001 443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=74000 +p reject 25,465,587,4899 +r Assange016it LNMXxiSAO3fq0yyWOCiEsMrU2z8 mFfoF+cpWNlvaulIQQ/005wkOic 2020-04-20 08:54:04 91.201.65.29 9001 9011 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3610 +p reject 1-65535 +r Unnamed LNQZ2hBkBllVVXB6KqX8/Z8Wlqo JEpHD28daxLhff+qqJQFMPv4vuY 2020-04-20 07:06:24 138.91.18.238 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=459 +p reject 1-65535 +r onYourOwn LNVHTjPRJikVa5L71h+qsi0HsPc VYlvhi3ONobCaz4S+ELRrxFmOAA 2020-04-19 21:07:30 85.241.106.203 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9500 +p reject 1-65535 +r snap280 LNkF7XjlI9k8bJDJ2b368Nf+2Vk fBk7t4N9VDdJxms32KjUAect+Mg 2020-04-20 02:17:19 24.127.121.202 38223 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=700 +p reject 1-65535 +r hothand LNw/G6ixzGmCZv9cQCT55Rm7LAg cdy5lSsRHUTGxqeu00KAdAo6x44 2020-04-19 23:11:42 88.115.22.244 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1400 +p reject 1-65535 +r bed03eafeacd LN4j8/L9WLQ/8EeRe5ZKue3SbBI Pam8YZZLsA8coO7Ij+PDkm2GzjU 2020-04-20 08:13:02 51.81.254.21 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9240 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r dairy LOLe6DC5VO2jprtX6nQg4PXuPBM 3dky6RTpS33WPMLQ6qRe6D4AzuA 2020-04-20 06:10:00 207.180.230.109 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12200 +p reject 1-65535 +r sinsg LObF3bUWOitkAPuWvRDGBQ+0Ovc qCN06p3jFXep38t5/LMYLpVZLIQ 2020-04-19 20:16:47 195.123.237.251 9001 9030 +s Exit Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=41 +p accept 43,53,79-81,443,531,873,981,8008,8080-8082,8888 +r Doedel24 LOlqih2gMmZMkPV0r/vs4Ypujfw BLAqAqLGNzQPwiu6hi4oPgTn5us 2020-04-20 05:04:57 81.7.19.110 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8200 +p reject 1-65535 +r ridin LOm+H8iLnQ+gPzh8nk8AC11LKuk T1uozE/tqX53CmzcprP7qUjIef8 2020-04-20 02:53:29 51.75.129.204 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=72900 +p reject 1-65535 +r zeta LPTLNZtXY/1g6RZR2CnZzb5+I28 +ykQk6I7PcpE4PKta3OSmkfgFTg 2020-04-20 03:16:18 163.172.7.233 143 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36 +p reject 1-65535 +r HyperLoop LPZhzwWpB96lK4Uq9oGN2njBoPk fPoBsIiSake55BemGUUNLPL1t8E 2020-04-20 11:54:15 51.154.53.96 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7280 +p reject 1-65535 +r ThePromisedLAN LPbWY8wKOP8dYpJxYhsEEdtOQM4 pn61nuKb7XGIwc3jOlh9Daos0eE 2020-04-20 09:32:19 69.125.70.73 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3800 +p reject 1-65535 +r ThePlague LP27eFRK8QYsH3DHbWqQDw+Cw/g iDnlfqtxSs6cu73esHNH/3wuxok 2020-04-19 22:58:16 23.129.64.209 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10200 +p accept 1-65535 +r InglebardRelay LQYdZVO7CmIAQsUF/1dyWF2ovtw 5aR9ERQxBelsy1aHgk6/OGCZu0s 2020-04-19 23:44:29 5.135.176.38 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1400 +p reject 1-65535 +r snap277 LQq3sbn8y+dD2/PJI+Do2dCnyro t8lFFBPahP9AwzgccmSfKo0SsYk 2020-04-20 08:18:31 93.30.153.129 38357 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=300 +p reject 1-65535 +r ICSIL1xDEDISx1 LR+dWful7Na+WgsAGX3CgfwsQMQ AqwR9udrlrfF8flJRbQ9o2VwL5E 2020-04-19 22:12:20 192.33.193.24 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=42 +p reject 1-65535 +r Unnamed LS7iZU+2dZaW4AMHpU9QQC8J2TI GGpd/B9KTvzHBvRzg0YLdQvmCQQ 2020-04-19 22:14:05 51.83.41.148 9998 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r reporterx LTF3iO6OvRG+aY7Firhx3G4Pwpc CXEC45OKD53Hnh/c2booRpDDmhE 2020-04-20 08:23:54 95.94.83.36 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=54 +p reject 1-65535 +r MYLEX LUFpcBbABwF0vwebracgdgQIahU JZ3WFsWfFvQWezNBkYGwgVrltzQ 2020-04-20 00:10:33 77.123.42.148 444 800 +a [2001:470:1f15:325:52e5:49ff:fe66:911d]:444 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3280 +p reject 1-65535 +r cloud13beam LUWyk1mbLahbG3UXcZxgFEU8trM R03MPPir62qUoBqnWw6p74FIhmo 2020-04-20 12:00:59 18.221.85.232 9001 0 +s Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=42 +p reject 1-65535 +r aanetuk LUfwOfBO7APqvkhMwBd5agq0gkA fBWuxxFLSmz1fohbglviQ6OVTtk 2020-04-19 20:57:56 90.155.5.6 443 0 +a [2001:8b0:1628:a008::aa]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2300 +p reject 1-65535 +r texthtml LVMcF4J+AFTfYS8m7qrlEiDP55k srm4HsAuMkNs5jqf1GSiWmZziaM 2020-04-20 06:19:41 62.210.148.97 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=77000 +p reject 1-65535 +r tor4ever13 LV02kes+Kpk4n4xqBuQqvb6xNW4 nlu8hZVdemNsvGzB1v/6O4Ktzto 2020-04-20 06:33:10 45.62.228.39 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=960 +p reject 1-65535 +r TM LWPsJMt8p6z7wUOXUqVKkWGVBn0 NNeJ+uvaJgTdbWFW1eWlzJD7DZo 2020-04-20 01:44:26 115.70.167.41 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=202 +p reject 1-65535 +r hiboo LWyTojNjaNmld4QW/U3d2X/zfUA diorLwpMo6y2SqwtmBCkcBvNzxw 2020-04-19 21:22:28 91.121.83.108 44931 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5800 +p reject 1-65535 +r tor01as208196 LXBYOv3pDHw9nP+fDAdvDAIswpw fQy6GXwh5Am4rTvnFOkmgLFlbFc 2020-04-20 03:07:20 45.154.168.135 443 0 +a [2a0f:bf00:2:0:f823:96ff:fef5:b2ca]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12400 +p reject 1-65535 +r ExportShuttle LXjRy8z4IZgiEZv6A0b/IzFvGRM ZzNcTOicWMHhL4KJDl5za2FV7HI 2020-04-20 01:39:07 8.209.94.85 9001 8081 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3420 +p reject 1-65535 +r rogemedic LYLvd+sHrys7G8FAqrUnjjlj1k4 +/8Coeg3wo0Vaks/+37NYGuBXgo 2020-04-19 19:42:41 208.38.243.113 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r sauronkingofmortor LYr6kS4rhiO7LNrNGTMiCdUk0aM D7fhSpRxqYbkYuFMlI4BqiPOUn0 2020-04-20 11:21:11 137.74.116.214 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17100 +p reject 1-65535 +r godzilla LZHMYMu517n3TMwkfxZdWeAM5Vw f7PHlNG6vtnVLdDGlP/QKw9ROTs 2020-04-19 20:04:56 23.237.80.90 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4600 +p reject 1-65535 +r Yuishy La6ptzaBKyaRQe0YImlTSZoW2ic 6jjsulPH9fBfy7u9mv/tWEMS8F0 2020-04-20 00:47:54 178.79.160.57 9001 9030 +a [2a01:7e00::f03c:91ff:fe93:e774]:9002 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=230 +p reject 1-65535 +r rwxrwxrwx La/mepvhEZJq97c9fao/f65lptk VwIxIZtMBkyN5EI0oLo+5OsbFzE 2020-04-20 08:53:20 78.46.120.54 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=71 +p reject 1-65535 +r mongoboy LbyLmVQnX0Lm2p2wY/xQV+6fDEg U9NeZKoMDieol3rRB0tl+PODRxU 2020-04-20 09:02:34 80.60.245.234 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r maximator LcfDp34u8KFdFuvKAFC3PckefCc I7eGlGj5n0S+q8hAzHk/ijfsD5g 2020-04-19 19:28:48 212.47.233.14 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42 +p reject 1-65535 +r eclipse12 Lc6n6DC7d8mzMu63wVAaXuK6AAE 59RSQ+l9gMDh1KFP9LiOV8uhN9I 2020-04-19 22:10:09 88.117.48.161 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=80 +p reject 1-65535 +r undso Lef2KUM2xHwL348QhW9Ug0iy+2M 1dVlQ7xfnjXxIyqh4C8rOfzJRdM 2020-04-20 11:42:21 79.143.183.44 9001 0 +a [2a02:c205:3001:5506::1]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p reject 1-65535 +r ParadiseTorRelay3 LepmRVE3b7gDILDKeyNDtax51hA K4EJQNLzb9JgRNzT3+it/1d6Aqg 2020-04-20 01:37:16 193.182.111.132 80 110 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=9650 +p reject 1-65535 +r inculpe Le8cX0UpZluwilk8Zbr2kX6dIIE 4fuQA/067Wip1kwQPc0ntGMLAlQ 2020-04-20 08:08:34 172.105.59.110 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1030 +p reject 1-65535 +r erbridge2 LfWGlMGFJaSJL1FNAQObz0SgVDM tysljRILJWjBnQR0BOhy33UozI0 2020-04-20 08:01:20 176.31.211.86 9001 9030 +a [2001:41d0:a:3616::74:6f72]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30300 +p reject 1-65535 +r smell LffRsUcyly31G/7dZgYcx1cebfo yXXGrMl8NTF2pwjSDHD4ABIvViI 2020-04-20 01:09:57 205.185.117.253 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3060 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r AccessNow003 Lf3qXdQVuVWUv7EtWf6EEWf5S18 q/mKgnlQQUCs4/i50IVFflADAGA 2020-04-20 10:32:13 176.10.99.203 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30500 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r Torsten Lgg2zmH8+Yw0AQA0vTZE/jlH4Z0 U8purHBX7uKJ42Fc93ORc0aAn6A 2020-04-20 10:01:41 159.69.250.201 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43000 +p reject 1-65535 +r WalkWithMeInHell LhgU/Epy6mOVoVfen1cd5gcYnKg 3mZc6kwtfcVO2gm3Rg9eYDn1DH4 2020-04-20 01:43:08 85.212.120.215 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=224 +p reject 1-65535 +r Unnamed Lh1D0AmtqeMvh31zF8UAIx9UXrs YZd1XeQpuFfYu9aaT/Pdbgf+XlE 2020-04-20 04:13:54 95.141.37.112 18616 10098 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1230 +p reject 1-65535 +r TVISION04 LiVOJUofxm1q2WjlZ7IvN4wGMCY 737/HObpMX2iA9/YyeQ8KeFmiU4 2020-04-20 04:50:37 87.253.152.203 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1900 +p reject 1-65535 +r InTheWeeds Li9CTNnA+2uw8WOQv8tGhTrjfME ZtWjcfrHVXCELUXh5NgdOPJZ0cA 2020-04-19 18:59:23 71.19.154.6 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r tidal LkFM0ogjta61H9Fyqg7j6eubypA VfyY0TU3ovC2vhVbcwgLo8zDL0s 2020-04-20 10:08:31 70.63.106.230 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1260 +p reject 1-65535 +r niftyexit8 LkTo64x3EcEVe9gCXwcWXP+PorY TU/58ebtJBYYV3mvksdWokUgHeI 2020-04-19 20:27:35 185.220.101.39 10039 20039 +a [2a0b:f4c2::39]:10039 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24200 +p accept 80,443 +r Unnamed LltTl83X8CeY+XE7LD2Fw/77r74 g/z75t+FicR2t4tnWkWr9ygMV/I 2020-04-20 06:22:11 138.197.171.88 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=620 +p reject 1-65535 +r snap277 LmbSDMQOMDX5Kfeo6LazMDpIwI0 jmtrRvXfpzCIMZ5DJU6Hcf9yM0s 2020-04-20 03:13:44 86.234.166.67 38697 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r mashedPotato Lm7g1j7qqf8ESqkvlR5XZxBv9zg XAc9nmVaraBCG8YXLrJLtisznS4 2020-04-20 01:29:06 91.250.242.12 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10000 +p accept 22-23,80-81,88,194,443,706,749,853,873,902-904,981,989-992,1194,1293,1500,1723,1755,1863,2082-2083,2086-2087,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8080,8082,8087-8088,8443,8888,9999-10000,11371,19638 +r torpinkbyte LnLNr6Eq4VR3lfm6/0AvwWtlPOA qprZU2QhDQhbQ8dcFH6++mDDurA 2020-04-20 03:01:34 91.220.220.5 9030 9001 +a [2001:678:220::5]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4290 +p reject 1-65535 +r znxpar01 LnLuq+TuGRg776oQ2Is8FoKcn5k rpoR3SHw+2EBI/Q0092KwgUzbHc 2020-04-20 07:40:44 163.172.142.92 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21600 +p reject 1-65535 +r SolarPower LnT0pute08AYKlSQDjpnHFyNstg TwGQ1Zl4XLDwVPb+Gl/u/FzTs6k 2020-04-20 00:01:26 134.3.166.154 993 8080 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r Unnamed LnsD1lF0+T8xJd4QYsWoSE3mWMQ gFWELtYa8Q1nMiUOCMiT2zmnRek 2020-04-19 19:51:22 167.114.89.207 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9930 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r nonanet05 Ln12u70iuBP548jaFxXDuRnYzvI CP9aYDEn98y9vh4QARESQV3epXo 2020-04-19 23:08:09 198.251.89.176 443 80 +a [2605:6400:30:f718::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8510 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r 46df0a18bd19 LolQIyb1VxqcVxObzjtVK3thu8I Qytsva73Tw9f/lRSsFCt5YoDiR8 2020-04-20 07:32:38 51.81.253.203 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17300 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r wltfseE37Cgd Lo5yYuOe8WYcwRc6oPRzHJIZdaE ZWlLRdOwUJwMepN1iE6Pjlz1n4k 2020-04-19 22:07:01 149.210.150.150 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8350 +p reject 1-65535 +r Unnamed LrMScYNBR7sLt2YHwJdJQxvEgBU mW/Go1tKmH9q4X3OFqwG7n7jzmk 2020-04-20 12:06:24 198.98.58.23 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18100 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Alastor LrPCMBgGlKHoSAAeIPNvdqIocDk T+JiWPoP1e01IFy/HZ2wu/LkxPQ 2020-04-19 21:21:00 62.210.123.24 443 80 +a [2001:bc8:30c6:100::dead]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48700 +p reject 1-65535 +r ToBeAnnounced LsBC9CdMyKVDgceOjRvzIvomoJU gOEHsoRZcMX7e9RMYHgutGr4YcI 2020-04-19 23:16:59 96.246.192.163 9999 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3380 +p reject 1-65535 +r QuintexAirVPN27 LtTSV2aXNxPrjFaikL8H4GuFvxI RDstC3bIiFvOk5srTqzBFqRYxzg 2020-04-20 04:33:23 199.249.230.80 443 80 +a [2620:7:6001::ffff:c759:e650]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14200 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r hamburgooo LuNBeVyK9V/GhGZ8nZqPxXUh/qI 8WXb5y8/P4YqJwChMRZPyB77F4c 2020-04-20 07:49:11 31.16.135.198 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28 +p reject 1-65535 +r snap277 LwFk1TcTjsj4hasfh5qUviewFP4 qBFErOUcxjCxFNunAK5HW6LxmkI 2020-04-20 07:35:42 82.235.113.201 38949 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21 +p reject 1-65535 +r TOR2DFN01b Lwm9bZotWn1tJsF2Uc6Ozwt7olc AMUOltG0ZWb0L4HlciwTK4wuZ7E 2020-04-20 10:47:54 217.182.198.95 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38000 +p reject 1-65535 +r Minotaur Lw8yqx5blDyn0GLAPxiWDIbnDZQ dO+ceZcLkwfEjTN0FNcv41Oz4AI 2020-04-20 10:05:08 97.74.237.196 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3200 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Coderi LxNXDQFq871/v1RP6+9++jsUfN8 7ONPyK2+7I+k+qmcNJ/nZqLQObE 2020-04-20 03:16:51 200.98.137.240 9001 9030 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=62 +p accept 22,43,53,80-81,443,636,853,873,989-990,993,995,1194,1723,3690,5900,8080,8082,8332-8333,9418,11371,50002 +r OrgnicCcount2 Lx2nHs9J+gP2abOPSLiveOdnLYU 9xRjQeInHRt6xOTf/EgchebVzqo 2020-04-20 10:48:23 47.56.94.159 9101 9130 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-4 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=150 +p reject 1-65535 +r ephemera LybUMlgoX+s55DIIiN+vqKDSDhE pTGXRZeXcLa8Jd62ijtvUwZIIDE 2020-04-20 09:45:25 95.216.1.161 7973 7712 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24800 +p reject 1-65535 +r b33333f LycQFSojRLHePvYZ6FyxsphkPSc bAKwNwoBkkbxxITLTxqrKb3bV+E 2020-04-20 06:54:57 147.135.4.68 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24300 +p reject 1-65535 +r barwin LyuNW7op99vUEWP/UYenfkRsUn0 KzTgkJ5Qa6vPJTaBO4cCKvIQR2U 2020-04-20 09:44:17 138.59.17.40 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1800 +p accept 20-22,543-544,554,563,636,706,749,853,1500,1533,1677,1723,1755,1863,2082-2083,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r YoloMcSwag LzOoNMMhbo9BaEtRFKer5o4hazs urroMmJstcL8n4tkgpK4b5loNz4 2020-04-20 00:22:26 178.78.241.182 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5030 +p reject 1-65535 +r arachnid L0XNvWBY4migCEyU1JLKvfv2nkw 0YOBTsJn3sWwuYDyfDU33Kmzrsg 2020-04-19 20:00:46 23.237.36.114 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2400 +p reject 1-65535 +r ServerForge1 L0xgPMu8ooewTsqw6w7snfypztk rsTpMleJ63dbdpfWr+NpWWpgB/Y 2020-04-20 11:12:42 71.120.197.19 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12200 +p reject 1-65535 +r DomisTorDE L09fuwVbAddT+o3Ek7nbsQQ40xs HlG1SjCLYV+cJzPkSiR/crmVav0 2020-04-20 05:49:51 87.172.103.15 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2330 +p reject 1-65535 +r kookaburra L2BSWwbis0+PKrAwKvRcoMl2i74 fkSIIGXSsSaB5SVLgTFk5CcFz7s 2020-04-19 22:18:46 31.13.195.122 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4800 +p accept 20-23,79-81,88,443,8000,8008,8080,8888 +r DaddyCool L2Es3YNisAezNBOVAWUB/Zp2Gx4 m8VQlQjBSdKurb1rUuGhtnb9QSU 2020-04-20 02:15:31 79.124.60.174 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3340 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r antoniou L2RN3vi6oxugJA5sbTZmXZDaV8k zSID74RSp7SshciILFmOil/12hE 2020-04-19 22:32:30 5.135.115.34 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7430 +p accept 194,220,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r niftywabbit2 L2TqUnxKpvmeJhMY3R/xJ4KOJSU dioJ96WJ2qtuChAt4VD8DIL4Xvs 2020-04-20 10:52:47 185.220.101.194 1194 2194 +a [2a0b:f4c2:2::194]:1194 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=60000 +p reject 25 +r fpuzhpx L2epQFINHJ5mSX04R/D97lRa58A In33D8WOYko2kpw7TP3cTY4W0K8 2020-04-20 00:08:03 23.92.19.230 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=310 +p reject 1-65535 +r crmh L2n4xNwC3RWjm/20B4p5HYns6qI Y8romCX6hQM/UAEN1fCJCDOGEhg 2020-04-19 22:01:00 78.47.11.224 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35700 +p reject 1-65535 +r 0x64657573 L3cxXK5HdVDkd3O6WxMj9/++Oj4 PmLPGjFCHVp4P5NDSDuEdFXYmCo 2020-04-20 07:16:53 207.180.251.11 9001 0 +a [2a02:c207:3003:3204::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9310 +p reject 1-65535 +r angeltest31 L4uVANyYwT/SjMUeR9NBbeQj7Xg +DLzofn3N2hZhH99+yr3yHoA0Cg 2020-04-20 08:11:20 185.101.35.219 443 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2940 +p reject 1-65535 +r dutreuil L5r95D3I4/BYAzBMAb09vzKRaaw 4V1YBZ7I0IjP1sqiVZUiFVi4pps 2020-04-20 08:03:14 213.152.168.27 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p reject 1-65535 +r tapiri L6Sz1GCHZaNa1O9hwC3IiXO//0c pC4h9xL/cTUALSzbpuCZtjVEl18 2020-04-20 09:53:36 5.9.60.4 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=370 +p reject 1-65535 +r uname L7vDR87IXPuLxo/ZHX2JyROVpuM UYuJowhx/JSHwLvcKAzFp1geyPk 2020-04-20 09:03:20 86.57.149.10 1443 9130 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=2790 +p reject 1-65535 +r citizen17 L8WveVpXOqqXPr/qOUjpIhE1rOw QcL3SuFhxaD9bzVdDJrU6S6U/lY 2020-04-19 22:55:22 83.97.20.100 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=190 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r lumipGoesOnion L8nJgZdFaBHhuByIhIxyKvJQWCw KSYo4ptZ+lkcgKP3yzGjA808tYA 2020-04-19 22:21:07 185.233.105.61 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1520 +p reject 1-65535 +r niftyguard79 L9A//ievIN1rHL5avv73sGaT1Vc 0ezfrBNWxA77RhgXImQsHYxUvXk 2020-04-19 22:16:58 185.220.101.157 1157 2157 +a [2a0b:f4c2:1::157]:1157 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12600 +p reject 1-65535 +r revopromostik L9QAfnCFG0vBK6Heqf/EjKG9guI g+eDknITcXe5cRny2xaDlA3CFdk 2020-04-19 21:42:38 185.225.19.168 9001 0 +s Exit Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r maisterikabalakki L9xxovV7gzn+EYKzhu3LcaLt34M IZrk78C6pizk/Ww+ubb6qp9eBrU 2020-04-20 07:27:18 81.197.96.73 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=94 +p reject 1-65535 +r GrayBeard L+1QAPf7eBpU+W0aUCLdn87uRlI ZLE6yQQUyjmvOILmzE3SOjm06TM 2020-04-20 12:42:22 71.187.101.250 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12 +p reject 1-65535 +r Unnamed L/XqWzJRxRDnx1B6hpj94IkQwwQ oWM8as+v+0dY0W7T8KdPUlY+DQs 2020-04-19 21:48:24 37.120.193.42 39959 48772 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=270 +p reject 1-65535 +r lifeisabitch L/uuvE1KiMqWvV9rDTodGnoA1fI Lw7pZkJuPh1rnel5Qli6Zw/Ba6g 2020-04-19 22:43:28 54.39.202.202 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8700 +p reject 1-65535 +r Unkn0wn L/5fr3DSDnawR0rp5AwqC1P42fA HDAi8o9Xzwhe7DDSHzO79WCThkw 2020-04-19 19:50:31 5.39.72.2 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41400 +p reject 1-65535 +r NetherlandsRelay L/64nx47BYEqmmUYHgjXBO4Kbsw zff/bJRvRQH4T+dnOr7TtG9y+TA 2020-04-20 06:03:27 34.91.80.184 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=466 +p reject 1-65535 +r smell MCS4+gxBHpFyj/9y942an/K4bCA ppE07+P/BKIaF+fjs0+q5S/xOFQ 2020-04-19 22:23:21 45.9.148.216 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8870 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Unnamed MCkjGX3h0O78lSEbKfEJHaRdG2o ttRNeip8ODC/lPcAMnu3wBRfAmo 2020-04-19 19:02:05 23.102.75.243 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=469 +p reject 1-65535 +r xangaeN8 MDEyfGdp1yJPlFw6fR3uxrOJels m7vxnP4a4Xh5UDU5igBhH6AuWII 2020-04-20 04:28:50 77.13.249.155 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2840 +p reject 1-65535 +r sagfreundtrittein MDP9GLvWWMXs6Sb7F9Imm/4zc1g TbY3ajgy6rYdrRyRTltAVpjl11k 2020-04-20 08:07:36 51.158.166.230 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=34500 +p reject 1-65535 +r Ukko MDUJq5EO8ge3Q4wnQ1xKL9V58bE TzwStEgbWxlChRlpg+7JMlU+qqQ 2020-04-20 09:06:43 95.216.33.30 443 0 +a [2a01:4f9:2a:2145::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=75500 +p reject 1-65535 +r kubernetor MEnv5oaTEjLIHqTdl1r2DJYs7QE K0tk5lUR9Vu7Og2OqZbVNDAPsrA 2020-04-20 02:31:12 157.245.26.52 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=683 +p reject 1-65535 +r torette MEtjGxvFFwXa57r1Zkh6/iWAc4A 4BAHAxEPM8PJW6yyb3G3krz3Qxg 2020-04-19 23:25:59 51.91.110.62 9000 9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p reject 1-65535 +r kostirez1 MF2jPsSbF7GDgDPJm4JN65JlBoM 9CqfMNuItWIxTLTEy/8ZmZKl+GM 2020-04-19 22:38:19 85.255.1.158 9001 0 +a [2001:15e8:110:199e::1]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2540 +p reject 1-65535 +r halah MGkKxA/NB0r5GKKL11R1fCgHZ1U q0jEwwlu6GOTsCoVqv6O0r4BgHM 2020-04-19 20:51:37 80.211.211.235 443 0 +a [2001:15e8:110:52eb::1]:443 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r hrmphhh MIKKWtDcfd1pOFKb18kB0MDzXE4 cKHE+m75792vN3xf3xq6qs5Ji9s 2020-04-19 22:05:46 173.230.153.109 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p reject 1-65535 +r king MIS2tYyQfAOp5Ue73BccRF+6ryg sI6mmPtig0UMFfDVFrXz9wTb9kg 2020-04-20 04:54:55 51.89.213.90 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 MIof/slh/EOvOSJu8DmRiyTilPw NyukegDeioeWq9znsM/m1Q2jbC8 2020-04-20 12:13:51 186.60.153.216 41003 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9 +p reject 1-65535 +r vamir MI/kDkmfaH1dYBq/Vrx5ZiTjwOg ZWv6UpG2CJpRXGgmKhghAiILh5c 2020-04-19 20:04:50 94.100.6.23 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5000 +p reject 1-65535 +r tor4ever3 MJzUNluCSBI8wZxkuRZT936lkKs YoVqvQTVF5nZlTNGfEJ0cKL2M+I 2020-04-19 22:21:02 45.62.231.6 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2510 +p reject 1-65535 +r snap278 MLVnFEZ2zV8ovYGUlf9AL3T4pug eeHwCI99JXfoPugFLFfcLGhyGD4 2020-04-20 08:43:57 176.167.172.205 41161 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=641 +p reject 1-65535 +r HorstHanfblatt MLbPD8ugUF/XEFkHmZx1HXma5NI y3Qgwp+QTdhWo3XwSszVMArimXk 2020-04-20 12:09:40 5.189.146.133 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1570 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r torvic MMC03ljPuzUEhbMmoNZzUuATjM8 AhtGeZ5GRUF2SiW/FDsXtcYLIak 2020-04-20 11:15:05 5.189.164.230 8888 8080 +a [2a02:c207:2009:1479::1]:8888 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r Libero MMGbgZgfRQxAIwbi58+2w/ectrI DsMBW5roQFMGqn8s/jPpH1VmLKg 2020-04-20 12:32:48 64.113.32.29 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=20000 +p reject 25,53,465,7676,8888,10010 +r Unnamed MMx4YqDC9Zyvw7dj7uERMHYRmv8 LzMjNHa5acV+H7RzSt2mPH5uoUo 2020-04-20 11:53:09 209.141.58.91 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5370 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r savanna MNRXMXeJ4gRJy8EuAvVlj6I+C+4 xPiBjKr0W1SUIw30ohtkWc+sgSA 2020-04-19 20:52:31 176.9.17.112 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34600 +p reject 1-65535 +r niftywabbit MNv3p3P07jv20bdAfa7PQCIKyM0 zbKioC3QqRZiMhtVTRvC2odWP44 2020-04-20 10:53:41 185.220.101.193 1193 2193 +a [2a0b:f4c2:2::193]:1193 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68000 +p reject 25 +r niftyentry113 MOdHswWJlMzL6vi1tHkanxYoq30 B3LXI+kNvvt5gx6n5S/GX8oGdLc 2020-04-19 20:26:03 185.220.101.113 10113 20113 +a [2a0b:f4c2::113]:10113 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17500 +p reject 1-65535 +r Zicar MOiZqv63Qp/qQ6FfK0N1nZZeKJ8 I4d4zJ+msiE61L5juJDLN++afvo 2020-04-20 00:35:49 128.199.44.47 444 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=644 +p reject 1-65535 +r snap277 MPCAV/aMHX5hXH9HsVNCrpwz2u0 fVx1n5353ZAytd3H2LzBxIGtk4M 2020-04-20 08:28:15 77.79.18.145 37781 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1300 +p reject 1-65535 +r cheyne MQBW41ObLunyJ7DSMLCDVVQFFHU 6TR1C2PulLIPeLUtWpb6FHyHgM4 2020-04-20 06:47:48 50.7.151.32 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7000 +p reject 1-65535 +r sentinel MQZYwJHEmF8vNN1aSrUo0ht5opA 2mqHihqlLb8VikHAyZAkky37DjI 2020-04-19 19:55:29 147.232.191.48 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6740 +p reject 1-65535 +r DigiGesTor3e2 MRpFM/eiQV9CNGpsj6d+b9J5WUw mwc6wJopg1djm/oZELuMYD+f3N0 2020-04-20 09:40:58 94.230.208.147 8443 8080 +a [2a02:418:6017::147]:8443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35700 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r BESTIOMONDE MS5qMEqt5Mm1y+WW84q5FY/D8bo 34t/V2PlqDIXOpUrF2QMw98rafU 2020-04-20 12:42:36 92.222.127.232 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18600 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r mulloy MUGaZBiLyAcO6J887mqpjqrH6Og WDH3TxNiVlz2P7g8+ynmcvs0UV0 2020-04-20 04:17:13 46.249.37.109 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17300 +p reject 1-65535 +r FawkesSwissBlade MUajOVRujXXSu0hGySw2mKQNzvA 7LG0rhIxN5iDffr2M7d22PPWzB8 2020-04-20 00:10:51 151.24.114.144 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=95 +p reject 1-65535 +r nodvrelay10 MV8L81XZbWeCZ9e3CBJ6y8h7p+k jKIcm1QhjlMITb7Wn1MWYVCUSVg 2020-04-19 19:48:33 45.62.245.142 9001 9000 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4820 +p reject 1-65535 +r Watchtower2 MWUAbaRps8uxGeiBtfdcjul+XSE LSJSP0rpiBuh8o0nGNrJs//+n4Y 2020-04-19 22:46:17 66.228.39.83 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.9 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=823 +p reject 1-65535 +r PankyPL1 MW3kXv+1NnHJ/VPOCZKVKEZwmik TrgieLxpEhI9GvRI/5cdBEUYwKk 2020-04-20 02:07:44 51.68.136.44 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10900 +p reject 1-65535 +r Unnamed MYytGgCzPS9llYIQsJuJN4Numa8 +IJQFI14IYkrFj0Ejn96+AoYJBc 2020-04-19 22:04:44 91.39.81.93 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=330 +p reject 1-65535 +r redonionring MYy3/A6uuSMR61G1t448rUXrzyE xtutDg3RPUPftodEpAabEPdPw5g 2020-04-19 22:42:46 45.79.181.228 9001 0 +a [2600:3c03:e000:1fe::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r snap277 MZiG1PmL4VWunRFNPjhqzI8PJk8 CdAS5NgOcG5LnIY9fmUuqgjoVfY 2020-04-20 12:41:36 94.253.159.38 46499 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r zeos MalxmMbivr9X64/H3FWiCK01A44 EBTKYMIVEYYeE28/x001yurafAw 2020-04-20 10:09:12 68.183.194.242 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=458 +p reject 1-65535 +r psychedelichipo Ma8jyZpWSx8dXIpdM8pzD8W3k1Q +49RcWNcbXDkFgtdlZs41rRiCRc 2020-04-19 21:23:36 194.230.11.153 19927 19928 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=993 +p reject 1-65535 +r anonymouseTheFirst Mb+Gmu1qdFW4VmsxdVU2K/wFTRc o1nMNea+uDchspnsyB7fX5uP4kA 2020-04-20 06:41:30 80.255.7.165 9001 9030 +a [2a01:4a0:68:21::62b9]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=812 +p reject 1-65535 +r hellohuman McMVMmOz+TIrWC9KBunlFfAzjE8 IoI+qnwx6prz0ZVBwhQc+8O4uJk 2020-04-20 04:48:29 104.248.118.241 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=190 +p reject 1-65535 +r Belgium MdJwo4UF1L+7yr9xfp+0vKbd8v8 zBGJMUJKJwau5gAB/2bB+bfj/tI 2020-04-19 22:11:27 45.128.133.206 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48300 +p reject 1-65535 +r Toast MdlfqGGDky79a0tvtvB1TPEBAZ8 okC6VNSh6WRkT2odvCuYKLsPFRs 2020-04-20 06:32:28 155.4.70.10 443 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15200 +p reject 1-65535 +r torcow2 Md34ewRkyKo3Ffmsk+imGeYOUDE FJ0TJMA+B6R70QPdNdbY6oYXgt4 2020-04-20 08:55:14 66.70.222.240 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3670 +p reject 1-65535 +r TubularRelayPiersLU Md7RmZw97p2sFIt8laE64J8w9LA 3aJnhGdpQOt3HeuvX/YHRsVrNBY 2020-04-19 22:17:07 104.244.76.56 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13300 +p reject 25,465,587 +r Unnamed MeLOseUxCGMpbl03skNJ2kLAOco 6zbZtcqa4DEXHhxUEAdtIpEW6uI 2020-04-20 07:00:40 195.123.226.52 80 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r JustAnotherNode MeRWfqR8ZHoq7Hd5zZwMUmrzpI4 knuQgnsem8tQbzX5mdrYz5QQOeY 2020-04-19 20:36:42 87.236.212.128 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10600 +p reject 1-65535 +r Unnamed MfFKl0FgOV3Mt0j5RLpoqYVgeDc yOuSYuzVrkRThiF3FFE2c3oKbe0 2020-04-20 09:13:18 14.13.85.96 58048 58049 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=326 +p reject 1-65535 +r niftyguard09 MfNzVxqm7LTXMmbhFNWLCvcic2k jw17D7EjLfF5c5H5eV0ZNzziUKE 2020-04-20 12:44:40 185.220.101.218 1218 2218 +a [2a0b:f4c2:2::218]:1218 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27600 +p accept 80,443 +r Bab0 MhoWUls7qfL7kP0mXFz0dXRM6xA 0/T8vscvmuFTaloBUG0uR6z5ya8 2020-04-20 08:16:36 195.228.75.149 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=39600 +p reject 1-65535 +r HefeweizeIstGut MiuCaO323/90fIaGqHgyUfqC32c iv8icvGIY7oXpnP2DfAXxTN9vyw 2020-04-20 12:27:24 80.255.0.180 9001 0 +s Running Stable Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=78 +p reject 1-65535 +r BananaNode03 MiuzP0iHIwsHZ/VLoIpFC2jXd/I cjl42yz4eZIfU4U+rAOhkP9/0Ek 2020-04-20 11:15:50 90.231.75.5 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2390 +p reject 1-65535 +r bauruine204 MixuOpc7wQ/DbeMDetJ7yJ8Ucjs STd563uqtn/H7jF9WZGCMn37Gtk 2020-04-20 06:03:54 212.83.154.33 8443 8080 +a [2001:bc8:31d3:1dd::1]:8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25600 +p reject 1-65535 +r TOR2DFN01a MjkAfOH7Ls398gZ98juUkpXcXvY IqfHfP9WgGICtwACZkcrOO6vq9s 2020-04-20 11:33:43 217.182.198.80 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=110000 +p reject 1-65535 +r TahirElci Mkbsyu3E/ylJtlXgJFr/9C+Mnfw CAfW5/5dpGH2UZVdGU00iNFUWDk 2020-04-19 20:31:33 144.217.60.211 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6700 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Alina Mk4T/XlXE73W6LTfAkOHQsof2/E o1JfA7BRRhrolSgH0eny6+DvBLk 2020-04-20 05:01:49 199.195.251.84 9001 9030 +a [2605:6400:10:80e::1]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 25,465,587 +r silentflash Mk4vVuBMIylZjqxRLDRVrUXOSow ez/aEDwX6sPrkBKSTJdiV3wOvFs 2020-04-20 08:07:25 82.165.122.222 9001 9030 +a [2001:8d8:1801:10c::1]:9001 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11500 +p reject 1-65535 +r Swartz MlX9L2BxZezPPcLNQ7jGQx8ZYEg tOzicEp+KjFQNct/Lhtofil1ZMY 2020-04-20 04:06:33 72.46.61.208 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r Unnamed MlxqApVHTVBj6zTzfJ8xxTl2gKc 01DWQIrVJbAnBNvKhzwCj5AWBF4 2020-04-19 18:54:30 167.114.89.204 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Kakkapissa MmWMHxcPIre2FBDE0TmIVe3hr1U Cx34jcACa1crp8J7C9ep8xUcxwI 2020-04-20 05:56:51 91.159.139.61 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1960 +p reject 1-65535 +r Unnamed MmYqwXfpXfpXCmHx+y6W8i48Pok 6zI0l4AWlpHsuZmgx5N1kjqE7sc 2020-04-19 20:02:57 139.99.178.25 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=525 +p reject 1-65535 +r Unnamed MnVYmhVoLLfTcBtxmZM2Z02G7j4 l1PrkvhnZ8lEHjfuU7rmg5AaalM 2020-04-20 06:37:30 51.79.86.175 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 25 +r demang Mn9YI0OLjshuwzNVwUfYRVqxwUs 5XgJbdxoZN9egpTVPw44EeuVUAw 2020-04-20 04:37:05 93.115.91.66 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50000 +p reject 1-65535 +r FreeSpeech61002 MoJxVQGhHVWUISFJu0q3lbkI9Ug O+G5qCdz5YA1/t4rs6fBgfB8GzA 2020-04-20 05:08:53 87.177.73.175 61002 61012 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=470 +p accept 22,563,636,873,989-990,993,995,1194,5222-5223,8332-8333,11371,50002 +r Rhea MoKEdvT4ThXEK0w2ClzY3kw8K+c KSPK9mMPTa5xBdk2XUsf578dl30 2020-04-20 00:41:13 104.131.11.214 8080 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=98 +p reject 1-65535 +r UrquinaonaL5 MqHtcHNDze/8EF7I3waKDhVN9s4 uFtMjGl/iCq3yV4gwVn41W+ip78 2020-04-20 08:06:35 107.189.11.86 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p reject 1-65535 +r Tordom MqQ7DBU8Ipj9vSSjspjak2jcc7g 3yuPGxq8fCTDZ17yUHLYrmvPc74 2020-04-20 04:08:02 95.216.168.133 9001 0 +a [2a01:4f9:c010:1997::1]:9001 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r helloworld Mqq6jsV6oY4noZ8x8REv5q7uQT4 LAvZVxCBqImbvJ9M7M/mn/cgxn4 2020-04-20 02:33:24 198.13.54.184 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=65 +p reject 1-65535 +r Acrolepiopsis MrGROt6rDsbYdRaZXXVdfVpE/lY NGnJJOZUE/bmpgfOgODQSeU2t6I 2020-04-20 11:01:33 99.199.146.224 8080 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4700 +p reject 1-65535 +r BahnhufPowah MsEQC17xmlv7tDHo1CeBwtCdMcM e7yGeVKoD7RdagPXqjE6Lai9ZtA 2020-04-20 03:34:26 98.128.173.1 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14300 +p reject 1-65535 +r AnonUS00 Msa4juvU9vWqYfFZUujYjq18Z74 dgtfcbHMbI+jkO+opzun1Ds5pNY 2020-04-19 20:03:25 40.122.165.48 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1970 +p reject 1-65535 +r tomkai Ms12yNfR1LYg/K7QCyvMxXTyHlM U7D/tGiuugtGMz6lDOR9PK6aruU 2020-04-20 05:32:54 77.58.214.153 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4300 +p reject 1-65535 +r PorchPirate4 MtKJuV0c15DQcME/XRGw3BQF0/k nnb2HtrKbWMz7l37Jy9XbjA8WYc 2020-04-20 12:37:44 178.175.138.61 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28300 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed Mt8LjKwJl4jTE6aMEP0T7wq/HDA 9AfaqBN+GZaYBlzXJH69ceeyc6g 2020-04-20 11:56:30 205.185.116.74 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6040 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r loiu92 MubMbGtCiyBD8LPnj3My8QFtc+E URTiWInCTVar0wRXVBnLeShV6T4 2020-04-20 11:25:44 5.135.0.26 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12500 +p reject 1-65535 +r hajmat MusojA77UpZMz47yi+a8f/WSu1g VS47JxyMtoxiKX7h09e37kdQ+5s 2020-04-19 22:56:41 171.25.193.139 443 0 +a [2001:67c:289c:4::139]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6780 +p reject 1-65535 +r ndnr1 Mu6RHZaL4+AW7KVyux7Qqe5D/C8 rndtmcH+XQSj+z9T3ZpY+TVkcvU 2020-04-20 00:21:35 109.105.109.162 60784 52860 +a [2001:948:7:2::163]:5001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=36500 +p reject 1-65535 +r blinkenlights MvUZgXkZ0pC3/aVq9ckOV+VgMvk 3kWRV3A5RgaVt4VjM/EyzvoIBPU 2020-04-19 20:45:32 192.3.148.27 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=330 +p reject 1-65535 +r sci MvtMiVqp4lxgdgG+igQdg8taAsE 6EsMT8u4dCX9N6hbqq+cTwQ0Lbs 2020-04-19 20:04:17 95.179.218.180 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=2820 +p reject 1-65535 +r SilenceOfTheLANs Mv4FlkDcVEL6UQJiqHsm2R2HPxA tNlOYabaU8oQ7mt1Am5sMRjaU8Q 2020-04-20 07:26:52 188.97.0.27 9001 9030 +a [2001:470:6d:25f:f87d:2ad4:775b:f006]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=772 +p reject 1-65535 +r TeamTardis MwzT22rSZtxwzbUSsDaVfQPZvFk oc45KrjhC73igpwAD/JP5IL6zyA 2020-04-20 10:37:46 185.100.84.212 443 80 +a [2a06:1700:0:7::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4390 +p reject 1-65535 +r Voltaire MxxJnzb9eSqniFLZFjSY9OK3kpw J/Pe6TmxPwyzCQSSirA9dRK0S6E 2020-04-20 03:31:18 51.15.40.200 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11000 +p reject 1-65535 +r citadelEXIT Mx/J4SPsIId0hoRTQ7LTALj55Fo Bdrg6Ih2iZdfA7PEYS6lm+Zt3IM 2020-04-20 10:52:40 81.17.16.148 9001 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r CalyxInstitute05 MynnNsyhZEnQLVZ9Qmg78f15hnY QzbCvh9UN1hP0MUTFrj9tWy/cng 2020-04-20 04:29:23 162.247.74.74 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38400 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r central2rave4you My3JC3k48VqotgfAWMZssAV2LN0 34xawVJzumQl6mu28/i7Q+VQ/o8 2020-04-20 05:15:58 188.192.249.209 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=200 +p reject 1-65535 +r Wadera MzyHS1MrPqfhpAmAt2VvyuNOCKk A1mOnwCqpH6tD7eScq4zE2Rj6cg 2020-04-20 11:07:19 88.98.255.146 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38500 +p reject 1-65535 +r Zimmer52019 M0Uj13I+3GM8E2ypz+nCASzML+g rfYHhEdYCcjgzNy+sU3lUVeyvko 2020-04-20 02:59:19 178.17.170.105 9001 9030 +a [2a00:1dc0:caff:10d::234b]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4310 +p reject 22,25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r whiteshield M0eSORftnJ7BdH1bOMH15kM2Xb0 rpiDUxKGT9a2T5cUqWCG8kNNzBo 2020-04-20 07:52:12 176.36.64.101 443 9030 +s Fast Running V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=980 +p reject 1-65535 +r tortillero M03yFkMiuY/MVnvERJR7dKyS2uo jnA/XiLxtrt2CSbCL3aNscdAAIg 2020-04-19 19:56:04 90.94.83.26 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19000 +p accept 23,43,53,79,88,110,123,143,220,389,543-544,636,749,873,992-995,1194,3690,5900,8332-8333,9418,11371,12350,23456,33033 +r Proedias M12IFDBwCW80SMMTUGxSQox7sIo JHXf4anj7eZvrJicB+z4aKNCP3E 2020-04-20 12:17:49 79.236.166.32 443 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1360 +p reject 1-65535 +r snap277 M4CyFtwOOsFceBxrodZzcv91Tdg 01UQGzEUr0hOtK97/mIdhu9ukAo 2020-04-20 12:16:05 93.81.248.221 38821 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2870 +p reject 1-65535 +r JdMtOrReLaY3 M5JYiPXbTNAU5XGMs7H8gr/hrTc UBc5gi8nVwNcJbaG1ZBg9mOVuGY 2020-04-20 07:14:48 95.216.170.68 443 9030 +a [2a01:4f9:c010:2232::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9390 +p reject 1-65535 +r SoleLonelyRelay M6ps/hYaaYFptUjJ2XPa5t7Wvw4 S+q9lzuXrn5bM708OyjkBt6uqP8 2020-04-19 20:11:50 213.32.65.85 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21100 +p reject 1-65535 +r snap277 M6902I393YbrMqNdWGA3m7ym1Ro AiGt1K0yb9zt+YSBmi1Kqg5D9Dk 2020-04-20 12:38:31 68.8.113.193 34069 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=429 +p reject 1-65535 +r c M9iPMxQIFB8qLMVjI55U5I96IRs SoB79jf87GkTV9nDptLBju/BmvU 2020-04-20 02:46:48 151.127.52.79 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r 2HG M9ujMEM+KRW9DuZnh6SIY8gYwLs sAyw6Y6P4nTUTu6EWfrSJ9R0oMY 2020-04-19 21:37:22 163.172.68.222 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=750 +p reject 1-65535 +r snap277 M/C0uBxWmNZKgfFwbQje+W3QsB0 aSpN2FzBel7g/0SCU+OZoUDjVnU 2020-04-20 07:07:21 86.200.219.44 38713 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18 +p reject 1-65535 +r snap277 NAawjotay5qoazjxRyUkDJSPFsg N03zo3nwPedrtUjqAvhbslCTR1k 2020-04-20 09:46:26 219.79.239.203 41031 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=232 +p reject 1-65535 +r Unnamed NAigGpSb4VeXBREvg88r+1+oogQ Ac0EuhKsi4IxiW65ghWwDqdvzW4 2020-04-20 05:03:36 95.168.170.43 45536 47439 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=150 +p reject 1-65535 +r Assange005nl2 NAsJrM9FqYcRq7Bngg4lovIUUsY SZ01Z71ee7QfYXtD83YPaQjz2CM 2020-04-19 20:37:36 51.15.0.170 9201 9211 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16200 +p reject 1-65535 +r abgtor NAs6gBBb3Oo6Yl89u6rslNGer+c KAhdfEUNHT3fgb07TbvxnFBRnhE 2020-04-20 01:40:13 92.247.55.102 9090 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.15 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1040 +p reject 1-65535 +r Harambe NBM8wxks91OAibFFEUAN8huloHc zo60TGxbsQiH/1dqQvmKUNLBb68 2020-04-20 00:34:13 71.179.1.95 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37000 +p reject 1-65535 +r aergia NCoax2TYkkjmZFjAd8/2aNBf/zQ RYBzVhuJ/clflWWwpKn1IgX0egI 2020-04-19 22:13:27 37.187.98.185 22 49030 +a [2001:41d0:a:22b9::1]:22 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2850 +p reject 1-65535 +r pf32c09f2e22 NDjaLM48+H2kbc+kC2ofFUpzn8Y bYw3NVzbAVjM/xac2KYaWDtTprw 2020-04-20 02:42:27 205.185.124.65 9001 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=466 +p accept 53,80,443,4242,5222-5223,8082,8232-8233,8332-8333,8888,11371,50002 +r MiRelay NELxgTnktuOryyWY3yV5CesQaZ0 +Y/n/qlKYW4McYXVrp1jNHhLDZQ 2020-04-19 21:51:42 97.85.41.147 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34 +p reject 1-65535 +r Unnamed NENmjJ0P2HdFH4xljsxB3caMALo z1sGM3GCJZ9X38kYuREmTuPBBDI 2020-04-20 05:16:02 178.150.67.61 443 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=28 +p reject 1-65535 +r Mewse NF4Dzvt78EYT/KFFMvONG7ntvUc 3+In/UuIZ0W7FxlVshCx3TKSX20 2020-04-19 22:39:31 45.128.133.242 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32200 +p accept 43,79-81,88,110,143,194,443,464,531,543-544,554,563,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r MorlockRelay NGVR8vMkxn+jLS6cHGL0YsEx7fE 4rZJEO9Fl15Oda20W+5QlR1+/mg 2020-04-20 10:01:03 37.24.227.141 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=370 +p reject 1-65535 +r pocketdeer NGte/N9NklvPSw8EjOd7NvLx3fY GXn6hav4Do7VDZbZ6PzFrL4LKEg 2020-04-20 12:30:12 51.15.37.148 443 0 +a [2001:bc8:1820:191f::1]:443 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29000 +p reject 1-65535 +r Unnamed NG9WWop/AXNP2a8IXp+qLEy+cfQ F3dBVJ2R4M8Zs512T4CyVyc0YSk 2020-04-20 10:25:47 104.244.79.218 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30100 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Hecker NIQ59KPZWebRSBBw2oGhNTQ0Gcs /3Ctp9J9tHaT4Al0vu9ah6Z4Sqw 2020-04-20 10:04:23 89.163.143.8 445 82 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=58600 +p accept 53,80,443 +r Molotov NIZeubk2vm59Z3vIpyy1TWJ0PSM GdTFKalG4uxBW5Hqz3WM2HSqZ6c 2020-04-19 19:35:51 192.155.93.63 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2300 +p reject 1-65535 +r niftysquirrel NIuJAT7d2Z5HVZUdHsKE2f7XEiY s7vmCiStGANcdCmLQm0joNB9RGE 2020-04-19 20:27:03 185.220.101.32 10032 20032 +a [2a0b:f4c2::32]:10032 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42600 +p reject 22,25 +r snap277 NIyILY2Zy2cifakUF8gzFKNB75Q w4fSFhu+lLqZxHh8IAEZp0en3+I 2020-04-20 12:29:46 91.166.30.192 40755 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4810 +p reject 1-65535 +r GreatAttractor NJNzkXO77QXVLxDolTHIArlXfxw BVlqWfhGmygfaBtF8rZovF7QcUQ 2020-04-19 19:36:18 46.182.18.234 9001 0 +a [2a02:2970:1002::a8]:9001 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=290 +p reject 1-65535 +r Waldmeister3 NJedvUdf/tnPZVbjSd3t7mkQQ0U SpafOUoQ5gDuSnW+cyXaaBoCx1o 2020-04-20 00:09:36 145.239.7.170 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=67000 +p reject 1-65535 +r gaia NJ6i7ABcFnt/XDDPYN+m2s9sNB8 0CzoG+y+rOcy3OoeohQ1LqQiORY 2020-04-20 00:35:22 193.148.69.162 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6680 +p reject 1-65535 +r Unnamed NLEKHA89/Za3JfZLpCTKete50bc /e6v+p8b+q9KgDvDUn/+j+dZm3Q 2020-04-20 10:03:36 49.212.203.103 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r snap277 NLd21Zk7zTKCk6kbY2VXfsG9rzQ vZa8mlpFyYGoXkvtonQDaCN0nfc 2020-04-20 12:22:35 79.25.45.18 33685 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=607 +p reject 1-65535 +r manette NLhJUq/NsARE8ngFpe3vX33VScc hdo50FV890epkHij8r0Js4yEAFg 2020-04-20 10:52:28 185.2.43.87 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10300 +p reject 1-65535 +r donate2me4bandwidth NNcnaXcYL8lBsITTIzIwbLUkufA rhfmLKPvEY4VmnWQ6i+Qs659Wgc 2020-04-20 11:29:44 193.161.193.99 19399 80 +s Running V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r nodeXX NN2tvlq3ndAgVobYU58YIFbPnms Gl7DZm0MPmjJDRUlyYaRuJ7BNMw 2020-04-20 10:10:35 213.202.232.18 8550 8050 +a [2001:4ba0:ffa6:12f:213:202:232:18]:8555 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18900 +p reject 1-65535 +r ishouldeditheconfi NN5/kCilPVI413mwDa90OP3h16A Q+LdRoY7tRmP/d5Q8PhsrFUrgl0 2020-04-20 08:38:58 195.201.33.216 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45000 +p reject 1-65535 +r livia NN+EQ/as0aVDqqEKdiGjieMaRCI E1Q4USxbxNNu10A8JXl+arEEuXg 2020-04-20 05:34:31 46.36.39.134 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8400 +p reject 1-65535 +r b0rtje NPPQJqaMsMU2If5O44f6wSlmIdk J6MOmW2wJyfGWuNRaqD7rtjqmNU 2020-04-20 04:29:22 195.154.156.5 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=23600 +p reject 1-65535 +r niftyleastchipmunk NPXTPdRtf704CxFWcTKhh3O8T1c Ejo6a7V2K1DnJSEx0ssDGDl6E7M 2020-04-20 12:25:31 185.220.101.130 21441 11441 +a [2a0b:f4c2:1::130]:21360 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25300 +p reject 1-65535 +r leonide NQlNTyQYohabHAXUkFAn7obJ8NE cSPNdEcf1fZ6XKaRWYLI5ccH7V8 2020-04-19 23:09:36 91.234.19.55 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r 4663334194545314 NQq3K4dEzEDthpnm0ymMsUIV9Wg viJynQ5sPCILzLTY1OC+EnZr8Y0 2020-04-20 04:14:33 5.2.72.113 9001 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2340 +p accept 80,443,8080,8443 +r thardes2 NSMXH3ymOnXu+4ff6YyKwMkPerg 4ljJl6jRGQk5EruKicgl93KgLrw 2020-04-20 06:12:33 84.162.122.165 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=148 +p reject 1-65535 +r Unnamed NTDDBZp0XLF40KAs3qNreypzln4 ryhnRpsBeuiEtJdRzFdh9pAsIIM 2020-04-19 20:01:41 167.114.89.202 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13600 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r madadtorwus2 NTQR68c6Nxq0m4XOEu0M0eqi68w m17Dm3NbtBuH7t9OUbozx7Jg6A0 2020-04-19 20:41:51 13.66.193.19 443 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22 +p reject 1-65535 +r fogbank NTn5b8zcZFx4AQBvkoZMuv1KjrI 2j9hmQyEm1nD+5/Z74OUA2HboO0 2020-04-20 02:17:12 213.144.142.28 9001 9030 +a [2001:1620:ad1::36]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=104 +p reject 1-65535 +r Speicherprojekt NUf699ZSa76BzAf6ytYSqZvdmHY c+At8yIlVGPTgio259FutDzLbMo 2020-04-19 19:55:01 5.147.248.158 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9400 +p reject 1-65535 +r herminia NUgSnjtUv0uDO7y64hTbBcpGrms EYHbgPxXXI906IEjuwH/3WKQUt8 2020-04-20 07:31:47 93.115.26.181 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r Free NVE7HS6nBkk0bDxtNPY9aYLjlIo 5u2uDwHDs7jX9EQR269MW6NqX0g 2020-04-20 00:17:41 5.1.56.52 9001 9030 +a [2a00:e140::34]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=28000 +p reject 1-65535 +r flatcap NVNAJz542sZksjKOxG1hmY15cUE H1fhpxOEJA2F2EDK2u0ZtPIoEiY 2020-04-20 04:55:06 178.79.161.177 9001 9030 +a [2a01:7e00::f03c:91ff:fe93:4455]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3500 +p reject 1-65535 +r Anon20200411 NVzPGd//vmpdC45MyVak2f92qSI 5B7wFVNGzy1PYswaqBFurhk9/fM 2020-04-19 22:43:38 207.148.7.28 4567 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=292 +p reject 1-65535 +r alchimist NWrLotESyk0UV/J9LqB1m/gu6Jg YCRwzZyutA8AbzX3yLlAWcee99s 2020-04-20 12:29:22 137.74.189.95 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r Unnamed NWuUutMJZ5DkCXkImBRKQDCsIlw QFKGlH1ddSGAGIc46d13Ttf5gbo 2020-04-20 12:05:37 130.225.254.103 143 110 +a [2001:878:346:1:1::3]:143 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25300 +p reject 1-65535 +r shawnthesheep NW+rburVOLohJKeuf9VURnlKPok mwM/Kp+SglQmuk87vSJEgJaNOGs 2020-04-20 01:24:39 188.40.33.217 9090 0 +s Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r prebensprutter NXdU1ucKL9tTFh9nTTb/OtCU9Pg NhaQxGFl6kKEgA8klJpYjdC9w8Y 2020-04-20 01:34:59 212.60.123.161 9828 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6020 +p reject 1-65535 +r Growl NXzr2oxqRUjKaRp0j4hFC2S5TQI VBHYuY4TSPcCFO+TRi2EWW08f8I 2020-04-20 03:49:16 103.16.26.194 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=418 +p reject 1-65535 +r Unnamed NZFBiEAbgDnCq93jqIEMxhwR6G0 9ohXWtJYX+5CkI0pF9fGOtcHx34 2020-04-20 09:08:29 141.155.144.16 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=99 +p reject 1-65535 +r taz NZGeGXxsfzcqJsdH1mrKajlkKz4 mw9ZfjYicQvPf65GDHBaKLXo+oM 2020-04-19 23:39:11 193.104.220.35 443 80 +a [2001:67c:13c::35]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=160 +p reject 1-65535 +r Cryptocat NdoEqSY0ryOSy6avFY4AtViaHPo kjnYD8hUDV1Xv0uZfitF6/g95i4 2020-04-20 04:31:14 91.64.6.18 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6900 +p reject 1-65535 +r seabreeze Nek6WHw7ZbBoZWnuNz6LwFB/fg0 QzidZ1smXkpSn37kOat1Z7R4phA 2020-04-20 04:49:33 185.15.94.14 9001 9030 +a [2a02:ff80:1003:6::14]:9001 +s Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19 +p reject 1-65535 +r Hakkapeliitta NemPsLWR3zs1f/7dPa2xDa0CfX0 06J4yR89mMxRIyV4amulK0lDF9Y 2020-04-20 10:34:45 185.117.118.59 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p reject 1-65535 +r TheBadBADdRAGON Nfmn2ak8CpmY21iN71lZdnneebc OtNGmG4oi+SQ/uyYNpU+SdFu3zM 2020-04-20 01:03:46 198.199.118.134 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=130 +p reject 1-65535 +r divisionbell NfsoJ2v0HA4O+1bK4WwqtRB8+fE vo0iSjG7YOCl4g0Y/pApnNN62sQ 2020-04-19 20:26:34 212.186.218.74 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r Casper05 NgRcGQDsP98d2pvsct333lDa8CE foppkVi3xq4YP+sGgolmWimtOE4 2020-04-19 21:20:10 163.172.211.128 443 80 +a [2001:bc8:3fec:b00:b007::]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14500 +p reject 1-65535 +r snap277 Ngm3i3BuurjehoAUUMepSsBCcok 4CUNA8M9g5d8IeY4tTdnN04NnPQ 2020-04-20 10:23:27 85.14.74.217 34615 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=66 +p reject 1-65535 +r martyr1 NhZlP87E4bgqQdxURUJskl2iAsY 1G0nY7DnT4pXUICfPUcEzHRdMt0 2020-04-20 00:28:07 51.158.109.217 9091 9031 +a [2001:bc8:4400:2400::1811]:9091 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32500 +p reject 1-65535 +r cxx4freedom Nh0zyW0PFhJ17mfiyR7hCydud4s OX9YqlBuQoXCUzhUnOsHWLnX0Tw 2020-04-19 19:36:16 37.157.255.35 9090 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38200 +p reject 1-65535 +r cndkwfSDC Nh+tVwyl3s8QocJ+w/iWHQduENI fDzZ7djkY7m8+TNnLSBCLJHaqo0 2020-04-20 12:05:28 92.221.30.231 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2220 +p reject 1-65535 +r yatr NkFAeMUhuhkWgmD23yPJeZWXYok JAPKFcxE5dS3R1Dc+jJolX+8Wg8 2020-04-20 00:04:12 142.44.247.102 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r ididnteditheconfig NkTJiuYt4vdlveO6QqP52HpZc0c 7gzEo2xhHTLLbq3K/OOpoCTp7MA 2020-04-19 19:02:27 60.241.83.197 300 301 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=220 +p reject 1-65535 +r LechWalesa Nk4YhIRpOFxZSDdvr3eKxh1M+2c ATmI2dFLGG48cV7ukcEd+HExKho 2020-04-20 04:03:55 89.163.143.8 444 81 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=60200 +p accept 53,80,443 +r devilsrelay NlMhZ5aq5PJl1koJFWIF+UZnazE nI8A6OJvG6NmME1GF0I2VGXPF0g 2020-04-20 10:57:08 185.128.24.45 14919 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=299 +p reject 1-65535 +r server001 Nl85MECqKXncAdEC9QUsrQSPQvc sdpT4901ryzjjp3nbHcU6vPJQXI 2020-04-19 23:08:56 185.163.45.212 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4400 +p reject 1-65535 +r snap277 NmcAJgzcp0XCs56Fldw86kulr7U OWidqnvLg5wK9q1q3Vsk02CNgho 2020-04-20 08:31:12 186.155.197.56 34741 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1320 +p reject 1-65535 +r BostonSneakernet NnmDCTB20+tZgvqu8Gxlsp/M6ek gqzxks8jny6pRG6ZfMhFmpJkOm0 2020-04-20 08:25:04 98.110.213.239 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2690 +p reject 1-65535 +r KZL303 NoS4Zzowtz/tKANZxfup+VRpDUw ZhB2FVe17lwMkfLkN9Ey2IRDr2s 2020-04-20 01:47:00 99.122.201.244 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=545 +p reject 1-65535 +r Quintex33 Nof+x+c/Yaxm964lHn3ua72MAlI dkqM7y5pKGVIMA/cbK9q6NU3qXU 2020-04-20 02:37:22 199.249.230.113 443 80 +a [2620:7:6001::113]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14200 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r reallylittleserver NproiiaGfFpV8RzD/ZAGvdzIy4Q FotH0PFMleS6ZPXckQYDG1H2vro 2020-04-20 03:51:59 67.71.32.137 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=78 +p reject 1-65535 +r Mjoelnir NqNrZf7Erjfu/MpyIOtrXU08HtU dI9nfTYH/plJIuUjVDATsi/Drn0 2020-04-20 01:18:19 84.182.180.136 1443 0 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r Zimmer22020 NqXFAsMXKfJr3JI+S1+VAbCiC3k M3t2aIwqgc+dvYToI7fA7DY3vsA 2020-04-20 10:50:19 176.123.3.222 9001 80 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 22,25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r DiznayRelay02 Nrq7vAbiv50smSNxMkuVuBLhCkA 67ndH35fN38VGdII9nB9SraRawc 2020-04-20 00:21:04 51.79.66.196 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14300 +p reject 1-65535 +r Schmaller Ns+wfgcblKf/DnEuU1RSBsV1FpM NL3TSCsZ11yTyG1/GoET/YGZbNI 2020-04-20 03:32:44 77.185.81.19 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=77 +p reject 1-65535 +r Quintex40 NtaEeDZsuGJ4ZnV+vOf7PBf8HLg Ij06LPZnmxmXJFQ0SXWGem0cW60 2020-04-20 12:46:19 199.249.230.89 443 80 +a [2620:7:6001::ffff:c759:e659]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17600 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r kishaver NuugBc4bvZsWRgCkZm2eo3CC2Dg 3sV1PN3a34s2zMDc65kO7/3g3Ek 2020-04-20 11:28:38 134.255.102.63 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12600 +p reject 1-65535 +r R1610091651 Nu6NR+VwuNVRVGCply88/Z7f384 7Uf+xszKANt+473gTUEK8nxq3Vo 2020-04-20 11:32:24 84.196.17.95 9443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2730 +p reject 1-65535 +r ThorinMiddleEarth Nu67b47Tt36i+K5D3kqHlevtKrg OdB2Y93KCt2DdssoQiz3V14SZDU 2020-04-20 03:27:49 109.250.247.244 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=509 +p reject 1-65535 +r tor02aditaa Nu+rof/h0CRrNsFB+SJvTwm4lRw vLbCU69Nam3NhhkwA3gOgsEPMjk 2020-04-20 04:33:31 66.70.228.174 9001 0 +a [2607:5300:203:439c::112]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11800 +p reject 1-65535 +r maupin NvpwhbjPcpPe+oKowCgeDuQ/O14 OmKC5GuhbJ27/mTMEUcdyP2ah6s 2020-04-20 06:10:14 176.123.7.197 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5830 +p reject 1-65535 +r Unnamed NwsV5JMs92x6y5skCpYMICZ8JDA /xz3az8CvR4MWcMJh4fGdGW0hdA 2020-04-20 06:59:09 158.174.128.147 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4580 +p reject 1-65535 +r freeKotov NyCC8+Ad5qYzPTAynGkDoZ0Ojoc M779KevYHgP5ExdylErsiPUBW8A 2020-04-20 00:52:37 176.193.112.103 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5440 +p reject 1-65535 +r 2tangy NyO4VaErSOapzhv32Q6hFpALgZo R0QmKYdJFgo4ZZsYz2OcK92bUDA 2020-04-20 03:23:38 104.237.144.134 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=4120 +p reject 1-65535 +r StaySafeUseMonero Nyo4eUUniHMztS7R1wdgnYCMBlk IvdONFnBgJpqikjoVAzCrikfzDQ 2020-04-20 08:58:22 95.216.159.70 9001 9030 +a [2a01:4f9:c010:16b0::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11400 +p reject 1-65535 +r Zoidberg N0H6ltnunf1ltaULoc2F8EVngu8 HtR8a84AfKSoL7BPkSeWWQdOUPg 2020-04-20 11:42:13 83.97.20.68 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=418 +p accept 20-23,43,53,79-81,88,110,119,143,194,220,389,443,464-465,531,543-544,554,563,587,626,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5353,5900,6660-6669,6679,6697,6881-6889,6969,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9987,9999-10000,11371,19294,19638,30033,50002,64738 +r rasptorpipi2 N1NUCRAt/+kvPayAnkcOYrwn8d8 Cmg4gWWL3S9KoWMB8P2IADmntIA 2020-04-20 00:10:33 84.240.60.234 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p reject 1-65535 +r TimApple N1qv1OKAuVE2lp4ZGvTZofp8T9k 1hXTjhXNkTsq1SoUBFq2eH0e/EY 2020-04-20 00:32:14 23.129.64.183 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8300 +p accept 1-65535 +r ebola N13LstvZTlJjvAwBXwyedWZpYX4 aSgKbONK0/5bxx6j2P6SnmK3oZM 2020-04-19 18:56:12 64.79.152.132 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r Gnampf N2D2cUC2Ziv7OLkkXCtRBFW4jkU RpSWWHz+7myHGS2jj9CjqlqsA4Y 2020-04-20 05:52:47 87.168.27.71 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=61 +p reject 1-65535 +r MLaBnetTOREXIT01 N20FUpuQF5S2DZKX+hBOgYf39Dc YcXFpQGfjsRsoKEzGp3EEfVPbB8 2020-04-20 00:40:32 45.137.184.71 443 80 +a [2a0e:a6c0:1000:124:45:137:184:71]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39900 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r snap277 N4A6rpj+knYB5PirMqx9Uscn6e8 l5vuYGNOtwH9QnZJaSQl5CV0+WE 2020-04-20 09:25:03 159.28.232.119 43359 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=88 +p reject 1-65535 +r c0by N4L0hIEEWqckeRNjfqzp5yJc8U0 dW4f2bfzXF/iMallpp1nnH7H4OM 2020-04-20 07:15:40 116.203.219.116 9001 9091 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4720 +p reject 1-65535 +r snap278 N4hPhWv14E/7Luj+NadKzW5OK78 6Yp4+ZWV+xLWS42ti+iIzwX69+w 2020-04-20 08:25:37 80.42.1.36 43159 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=740 +p reject 1-65535 +r itsarelay N5EeAOWaO2kaqVZlsp6wcSwMuwA BM6tOFWQWpyYa88jmbM4ZvIUles 2020-04-20 09:29:52 108.61.96.230 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=105 +p reject 1-65535 +r BenjaminDover N7hd7DXcH+Vl2CVUTM2h+Rb5kYk azq3A7/wUCLCp+dp3hXd8D5zzGw 2020-04-19 21:30:42 5.146.220.175 9002 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6120 +p reject 1-65535 +r Unnamed N7l/mKoaUf8oJmDT5EDa2Wh7qBQ 9tVMYvme1bUnuCjSlAAo5tvDYJs 2020-04-20 11:40:28 165.227.107.198 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=713 +p reject 1-65535 +r coconuts N7syMwmL+bkJXCeDTmWi4X/4B/g +t32DcgGL/2gou3C9KNPDJDlhJk 2020-04-19 23:51:21 80.241.213.86 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21700 +p reject 1-65535 +r hsjeufh24h7 N8HWZVnQx4hOPSH33rWMddebmKg 1MCJfkSsGYIY9WOI6PR9QQ07ROg 2020-04-20 07:41:09 51.15.52.16 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p reject 1-65535 +r king N8bCerUSN3vb63NwPm7iOgzVOW4 7dcd5cUF7fYiNBhNdjY9NUUCL4w 2020-04-20 07:13:51 51.89.213.95 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r SuperNifty N8uG0g0BBPi/3YL032o1PSa5Tpw uwRcBJrS1qCZFaVyx5btxv2VEAY 2020-04-20 11:01:30 86.52.8.46 9001 9002 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=273 +p reject 1-65535 +r BrowseResponsibly N87ZuokrsGmZ8rjLY4YaBkomwbs 7d9PUMlDBeqkWPzkuAPPN5SjZIY 2020-04-20 01:59:14 23.129.64.215 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p accept 1-65535 +r blueblazer N92bZwlK52/V4hVL5yZMxFPrY/g AlkRWER1BhsWSDAxBg5tE6iXRDU 2020-04-19 19:57:34 50.31.252.28 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=371 +p reject 1-65535 +r pKD9jZ19N1LiTvsjOF3 N93xkG7j25YTCnF+pUZnxk2seN8 eE+x5Ba7wT6h+tsNYqCnH2U/vEI 2020-04-20 00:40:58 46.38.242.32 9030 9032 +a [2a03:4000:7:3a4::2]:9031 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17500 +p reject 1-65535 +r niftyentry89 OAEpg+guDAgky9YuQ1Bgf4z5SXo UE6UFYhwf4vbH5vDzJDzn0tt95Q 2020-04-20 10:51:45 185.220.101.229 10089 20089 +a [2a0b:f4c2:2::229]:10089 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18100 +p reject 1-65535 +r Bahar OAufFTOq1Yf09uPnqtZh+Nu6JG4 s49fsyFwa4TvHapiFeqACvkMvY0 2020-04-20 06:36:10 5.9.143.163 9002 0 +a [2a01:4f8:190:22a3::fefe:dead]:9002 +s Fast Running Stable Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=27000 +p reject 1-65535 +r orencioretamar OA5p7dAt7NMjtWhrxYphbAkv48w NA5RKPQGBJDx0TVkKSK8qrB5bVw 2020-04-20 09:03:01 87.220.28.235 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=580 +p reject 1-65535 +r niftyentry78 OA95FF/5wjMsv0ExMGLJnbqbDlA XUJsaUagPX6IukpiIwohydeOYv0 2020-04-20 10:52:22 185.220.101.218 10078 20078 +a [2a0b:f4c2:2::218]:10078 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r madness OB7CCad/xTZblM4hlCC6Aabw2i4 yCQMlpHizP3wmKvGLghhxtYV4Cs 2020-04-19 20:36:38 142.93.155.189 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=418 +p reject 1-65535 +r justsomefancynick ODEqQoH1Bd0xyILTtAYCXHJ+cWI 533N06gKNiTz7hASVkEY7LUBBR0 2020-04-20 05:05:16 37.201.176.129 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=476 +p reject 1-65535 +r lftor5 ODiC50D8khSiGmDo1LEKIgJyETs iYvKVQDeYEqU3O08DLPX7h79zzc 2020-04-19 20:00:29 163.172.180.42 443 80 +a [2001:470:c85d:32:216:3eff:fefb:bdb9]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7900 +p reject 1-65535 +r dune OD67SplHnfnNi+VyTgm5ZPCY4b0 L0FNyJTNerye8pexSyNPYMFsquY 2020-04-19 19:06:54 163.172.90.128 9001 0 +a [2001:bc8:3364:200::]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7060 +p reject 1-65535 +r poussin OEeGLApJJqzLm1rc1vYrYnjYiBI +KcBkF5rLoNSq3Kxpq2gv4gAK9U 2020-04-20 10:29:01 185.233.186.146 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2900 +p reject 1-65535 +r Unnamed OGSkN+2uv3hZucxxNI4SFL7lv2I aGfmz7wc8z9fGFLu3JqH4XKu0DM 2020-04-20 08:19:46 85.187.184.190 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2100 +p reject 1-65535 +r snap277 OIgn23tVdJ23kNGejmk4ebRRKVg BJx1m1F0SA1bMUEjLDSKZuYuQ90 2020-04-20 09:38:56 84.117.160.149 38407 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=59 +p reject 1-65535 +r apx3 OKQrjXwOY0b0pIIWF3QK7obqiFs Dw7A3zqxVlxu6tGz7CKvce+9U5k 2020-04-19 23:51:19 185.107.70.202 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=51500 +p reject 22,25,194,465,587,994,6657,6660-6670,6697,7000-7005,7070,8000-8004,9000-9001,9998-9999 +r ToserBan OK27N7hq423OHA1rafZCWbrOJrU IZAwu5Z4DnalLezPp4kZio0mUYw 2020-04-20 03:46:28 193.159.74.81 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56 +p reject 1-65535 +r heraklon OLlEPS/wuhgHpZjPZKx3CXh6M3w lkulBzYE0bU3LOrszKcj/Rmtuus 2020-04-20 08:38:13 188.65.149.32 9001 9030 +a [2a00:1aa0:1000:21::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=180 +p reject 1-65535 +r N00dl3 OL5Lndtxm2EW5hpyRKiBRJIOVXE azbfi1+59Nl3Tsed2FEAn6T45Ok 2020-04-20 10:54:15 174.16.50.58 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=714 +p reject 1-65535 +r rasputin OMs9gDqtfnJJSk+jPY0x7WQttMs WJ0qj6rs9AXiEfQ3XulIgKTU810 2020-04-20 03:45:40 188.195.173.22 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=4900 +p reject 1-65535 +r TykRelay02 OMyVqM6SpZHUpXeTWb7/uhP6G4g nPIZUGU6NRKaEMY0w4x4y4B52FY 2020-04-20 12:12:53 95.216.101.247 443 80 +a [2a01:4f9:2b:151f:95:216:101:247]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44600 +p reject 1-65535 +r himbeerschnitte ONCCGGJAg9Klr6oWHP1i99sCMaQ SToGSSlzZ3gAl0WymPgnh8jcb4M 2020-04-20 09:15:24 5.147.121.35 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38 +p reject 1-65535 +r StaticIT2 ONVne8jDd39o6N0Pb8IjYu14X5g 3revuaSHTviwBW4tlbaw/xYHa5M 2020-04-19 22:22:44 106.69.72.252 9001 9030 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4 +p reject 1-65535 +r ieditedtheconfig ONx4MC1csQe21czALuTYdzqpEN4 tuQoHDCIsXz1Q8RJvyoae231E3Y 2020-04-20 12:31:52 95.216.99.156 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=45100 +p reject 1-65535 +r LeslieRelay5 OOBZ7qzYbk1H/NNfCh+9JqNLq4M iTbhy2UZGjmIyb4JkEdU7+QzBRU 2020-04-20 04:53:27 198.167.223.65 9001 9030 +a [2c0f:f930:0:5::65]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1690 +p reject 1-65535 +r Cheese2 OOSMlQnhj0BXSYWe7ymevBuClgI Fd1QfmJyRxV8xcw15kfSIWnMlf0 2020-04-20 00:11:12 185.21.216.198 44545 33791 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=78300 +p reject 1-65535 +r KonjikiNoYami OO8vz+csScY0/ggtbKtdj0I7RiY Dl/xz2Fw/PiI/pZcwIU0cLGUZ7g 2020-04-19 20:28:40 212.47.237.127 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2470 +p reject 1-65535 +r trabajando OPId7inkDc35RgqAZit3I1YsoAg neyITi4gtitkiCF1uQxLxF2mdXs 2020-04-20 04:10:23 94.75.194.221 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=63600 +p reject 1-65535 +r lfstmpc8914e6a OP0Cg5c0k/UslQgI1IlMze06xoQ jlDPCIJBHZMY6pztdtcpqj8M/vA 2020-04-20 05:29:15 65.188.112.70 4433 8080 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r EdgeCompete OQhx1ZNIr+tcjW5yxOfAzgCm4dU /J1PudfPCbz5Q2iw6kM07k1WM4Y 2020-04-20 06:41:53 45.79.223.211 9001 0 +a [2600:3c02::f03c:91ff:fe8b:4cf9]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1570 +p reject 1-65535 +r criticalcat ORDFygzFr+IscJ30caK1trSu3Jg lJedNfVX5h7H/svfSbbNF0Uw1w0 2020-04-20 07:21:06 46.182.106.190 143 110 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r Reaction ORaiYpeSOC955cD3ijy8BFoCcBk gIvwDIX7E6qBEHTDX/qMFiQfjtg 2020-04-20 02:59:26 51.158.105.11 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=298 +p reject 1-65535 +r TwoFlamingos OR8NBTRdpWQQeTSflv6UwmmrFcA +HQP9x7R2eQUVQhoxR+/THbXWfg 2020-04-19 23:54:22 144.76.105.169 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8020 +p reject 1-65535 +r torMaydayGlades OTeeQXf/+w7ZDCAT2XZovShKF5g W3R4fnH9J7qgecEs4pIHVJy1Uf8 2020-04-19 23:04:10 85.229.87.232 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19700 +p reject 1-65535 +r snap277 OTwuWZ8Y+HWtwZRMPFWtHotqyko BuHqzdOg1LaJ103zYF21yyVXCwU 2020-04-20 12:12:22 41.142.79.169 43005 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r Unnamed OUfJymgO6Il/9cr9S1a+kS6+F9Q QomlEozfV9dSTWyni57TQ5nXmHY 2020-04-20 01:14:48 139.59.67.86 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=423 +p reject 1-65535 +r snap278 OUlvJ/oEWYtfrbhDcB5B/tSPdWU Fp7oGJcgh7jhHdIl1G4DYC5k06o 2020-04-19 17:58:28 78.193.19.64 42755 0 +s Fast Running StaleDesc V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5990 +p reject 1-65535 +r SumomoRelay OVzsT5eIV7EWnaeM8SCP0TtxX9A 9eGEygDNRCNC0ktkBMiAjr9gUhI 2020-04-20 11:04:40 51.68.214.45 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=8830 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r snukafly OV0pMmPp3uwYdFA9RbhUPausxpQ lDHRvNoaxbiDh02BCxGajRn7PmA 2020-04-19 23:27:59 217.160.40.194 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=96500 +p reject 1-65535 +r ExitNope OYOlidPrx6MAZO2HBXUojTRc57o tvdjH3COtQaQ2fP04Ke5YYuIz38 2020-04-19 21:53:08 88.218.17.43 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56000 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed OYl5mgNAyNlZs6OQj2QzEnZTd4Y mO+SA+P6qSzd89abqaAmqRw+CBA 2020-04-20 10:41:51 51.68.152.42 62332 47046 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=170 +p reject 1-65535 +r snap277 OY8xw4zjwBSOhyznUswRTrVvjDw o6eT7LtdBupnPbVqiXSikG+YhAg 2020-04-20 09:22:32 82.248.198.30 46311 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=580 +p reject 1-65535 +r sunburst OaVRzRiBURR9xNGVI9BqCbUofCk VzW07VLNzgSNGz+9wF2sDg+GgpY 2020-04-20 09:49:28 24.150.206.97 9003 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r cvbnet2 Oas1TxK0l/zUQ7hb6rW69LORz6w CeJuIG+vsq4gh+JhJNY5iZ3I4oA 2020-04-20 06:16:58 40.68.148.217 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1570 +p reject 1-65535 +r DobbyIsFree ObwoPZc0BzoTvjRqzUCRwPpQXKQ 1W1jDPutujWsOf1V8f+MQDPNXZU 2020-04-20 02:57:04 178.211.45.18 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5620 +p accept 194,220,389,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19638,50002,64738 +r angeltest5 Ocb4M9SwlSR3DTZV34JaESE8oKk ZkODqhLyNbvrWZPjiKYVRHx24AA 2020-04-20 07:42:46 51.38.134.104 443 9030 +a [2001:41d0:601:1100::2cd4]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p reject 1-65535 +r niftywabbit19 OfF+wb1B5lLRuASE0mjjkzR2/0I CPfWrbpq1NYUOEAxLGKWTqRqhqY 2020-04-20 10:53:46 185.220.101.249 10249 20249 +a [2a0b:f4c2:2::249]:10249 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53000 +p reject 25 +r vercingetorix01 OfI5kGAkj9N/7paZz934NF6Wumw qLtUTCb7X0+Qze4M4ZgGvzF25Cw 2020-04-20 00:31:32 165.22.145.40 9001 0 +a [2604:a880:2:d0::539e:a001]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=154 +p reject 1-65535 +r oirnonzasdfan OfTB2PNDvDTCbgJUx3oEjYDQ54Y WGEhHyneXwvKQgCF+nBesZBuM7c 2020-04-20 02:26:06 70.74.176.243 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1080 +p reject 1-65535 +r angeltest11 OfkZWUFnY6/TTb7sBUdEEblkstw FO7JvTc9QRZF9dtrInTQWgaoVZ0 2020-04-20 02:25:49 213.183.60.21 443 9030 +a [2a06:f904:1:100::4b]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6130 +p reject 1-65535 +r Kvikende OhRLyyaBq6EDuD1VO+/D65mhGAE sU1sZuyr4EqxJ6C7k32wt99RjvQ 2020-04-20 12:30:56 88.90.90.72 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3520 +p reject 1-65535 +r TokenLow OhujsIE+H9EYM8n0MPNQdmKlj0M c5VReh/o7bNW/+PNUxViNW64BSk 2020-04-20 00:00:47 37.205.9.131 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=291 +p reject 1-65535 +r Unnamed OiCcAF9YrwvN3txEI8/9OrO4JvU wpKz2JDCz3/rXni6lXUGuCmxp48 2020-04-19 23:25:58 139.162.162.238 9001 9030 +a [2a01:7e01::f03c:91ff:fed3:21d]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=101 +p reject 1-65535 +r torpidsFIhetzner1 OifMQUcGLk799G+Ej+p/8DKgTl8 l8Lgvz9q0+VvLXKS+wGT0mOISuo 2020-04-20 06:56:08 95.216.137.135 443 80 +a [2a01:4f9:c010:188::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34100 +p reject 1-65535 +r snap277 OjPJRacX3yyZIq1R17KJlMP4tDg grNM1HPiXWFmIDBpi2vb4//zsoY 2020-04-19 21:19:06 46.121.145.165 34345 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=33 +p reject 1-65535 +r toritico01 Ok0T9SpMmhOtYNlGFdTAsvX2njw AAH5jlxYHE/rEmjFGLKPmNwC/3g 2020-04-20 03:18:46 179.48.251.188 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=222 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r Unnamed Ok1zpJ7Y/o4+aeHeVVcVikLv3BA g8u6miHAfPUlgVPSuG5gUCWGQ1Y 2020-04-20 06:33:47 84.107.102.129 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r 40e62fcce23032 OlHjKjA6Dgo6uKocy+mP+HkeI0E IAIGiQyrJoqnH/MkdGHDokGFfiQ 2020-04-19 22:41:09 2.233.112.151 9001 9030 +a [2001:b07:2e9:7097::3a54:4f52]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4490 +p reject 1-65535 +r torminology OlahBhUTc8yMUkoDSlt54p4/YaQ Y9UXz+wyiRvEoh5XOf/nzRRzvCc 2020-04-19 20:46:04 51.254.201.90 9001 9030 +a [2001:41d0:302:2200::2328]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23700 +p reject 1-65535 +r kockodan Om2Qsgg6Kskb+v+6sM4TaGuSSxU HCapOdXVfmNN9EoDzpawHBqiAoA 2020-04-20 06:39:56 176.123.4.66 49001 9030 +a [2001:678:6d4:5000::aba:102]:49001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2390 +p reject 1-65535 +r sotlar OnUoQ24N2WdfsSdQ8+3iPPdPSss Fy8teAqIYe2f0Jubm5CwhH+pyv0 2020-04-20 07:38:19 185.63.253.130 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6670 +p reject 1-65535 +r colon OoVXsGf75T8Wi76qfRTRKYrlKlI Ia/vnU9UnkxjqkH82/wN9KAdF7M 2020-04-19 22:17:14 62.141.36.150 9001 9030 +a [2001:4ba0:cafe:24f::1]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18500 +p reject 1-65535 +r ViDiBox Oog2slScVb1ishN9FLdD7qTsBEQ dy7//Ap85QO0WaxiGbDgZRNKgTE 2020-04-20 02:48:22 84.119.134.77 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=940 +p reject 1-65535 +r TykRelay07 OpAdHZdQDQIem90qBr5ahGBRzQ8 WVHBg6XJzQX/hJE7ev/3Ym3s4Yo 2020-04-20 07:20:43 185.96.180.164 443 80 +a [2a00:4820:0:4:185:96:180:164]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56000 +p reject 1-65535 +r Pasquino3 OpTvv0oiCzWpLQpbSoDWMkw8MGo hpGtI0H5oU8P1HxsmQy5oz9xSYs 2020-04-19 22:51:52 209.44.114.178 37837 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9260 +p reject 1-65535 +r happyLittleTree OrM0MxgZrAuhqK/gAtQyFnIQnKw AksmkvWBbECZEaNM1pwha/0cjO0 2020-04-20 03:12:20 79.119.98.193 443 80 +a [2a02:2f0e:3002:2a00::df1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9030 +p reject 1-65535 +r nati OrdPVwL/QL4eymZ0uCfrpQmUbsg WK9voKzbiXhc38P8AeABXd4YNb8 2020-04-19 21:08:05 92.223.72.168 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=604 +p reject 1-65535 +r 7a7742007784 OsnCBWdy9Iam8eJbhanFUSH0o0s B0JDBfALO+LXSZw+Kgi73QdQ3nU 2020-04-20 08:15:15 51.81.253.212 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Discovery OuzGJGSQwHRVltFKu+a4KhE9joU vefWDd6X3a1x2pPn42E5eWXvkmA 2020-04-20 12:09:54 85.192.170.117 9001 9030 +a [2a03:e2c0:f99:5555::1]:9050 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1290 +p reject 1-65535 +r Karai OvabPsywAIecobzQs2thnb9xIpE BNEqa27j6gG/1yqbnDJ6M7eVF+s 2020-04-19 23:19:49 200.122.181.101 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=447 +p reject 1-65535 +r Edouardine Ovg5DT9LgQPaKXz9UUs1dAeBuH0 dQR8iX6CNqx/rvy4O8nIKwPzQYk 2020-04-20 10:06:32 163.172.85.155 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r theia7 Ov2q2RoVtManaGpTqoYnyocf9JE R0VOy3h/GOIwxuDVOlvlAmsM480 2020-04-19 22:57:54 50.7.74.174 9001 9030 +a [2001:49f0:d002:2::57]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6700 +p reject 1-65535 +r angeltest2 OwfFAKwX57Wh7mFmE+EEoJSrh/M MJRn0sg0eSgVa/W0XNAiR92CJCM 2020-04-19 22:43:39 5.39.60.243 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=3000 +p reject 1-65535 +r Unnamed OznlN864zmqhy+SOQnrDDiR0P1E HtQ65Y2TD7ctP9z8nW9Cwa/BMLg 2020-04-20 10:49:57 69.167.16.205 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=218 +p reject 1-65535 +r Assange009de2 Oz9FG9WPltwOjrfQHyCfyIA8M98 ZqYI7HtZ0MpoUt6D/p1z5GxaTFc 2020-04-19 22:33:51 173.212.239.78 9201 9211 +a [2a02:c207:2031:2233::1]:9201 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8630 +p reject 1-65535 +r snap278 O0KpmZg1PpNWzo1h2elyxPU5dPc X5OBPoSW1qwfIRhLzdQ0wgheM8Y 2020-04-20 11:41:41 81.11.143.218 38233 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=802 +p reject 1-65535 +r BeTheChange O0Rlm5pLOAURxeqH72Qest/e3Gc yqS8D2H2Rauzwi9B9Nwly0DrC2s 2020-04-19 22:01:07 188.141.61.83 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r FissionEx4 O0xXKfgpyi6JW4Gvg0pj2zNtD/4 6frRygCvgkDS//HBLVBPgTUXryM 2020-04-20 04:28:58 66.23.227.135 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r niftyguard31 O08NzgeAzk6XYnBeOyAsz6BG1fk HLI97dN8rvZdzHDoMYjvJ1Dc3vY 2020-04-20 12:46:31 185.220.101.240 1240 2240 +a [2a0b:f4c2:2::240]:1240 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6500 +p reject 1-65535 +r FRNode1EddaiSu O0+iODHMacE2QYsDBTgaUQOjtHA 9fURavrzA0wsU8wmplLUbNAKVHw 2020-04-20 07:06:16 92.222.22.113 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p accept 6660-6667 +r billingham O1xu0sHezrMr8a2beycvTOnOBlY sgc3ReKybUsKP7p45g3Gmidj5fk 2020-04-20 03:47:45 89.249.65.153 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12600 +p reject 1-65535 +r fiedlerRelay10 O2Xuo924kM9ImeZ1p7E40EdZ+vo D7knJPockFkS2Lv2bgr1oO1kXNY 2020-04-20 10:10:06 46.232.251.29 9030 0 +a [2a03:4000:2b:610::3]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4880 +p reject 1-65535 +r p1onX01 O2qOTX019LJM6gbXOt+AdaPSv/E U34OUWT5U/XuKDvXl/SOTY7/4pE 2020-04-20 02:17:47 5.39.81.102 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=53 +p reject 1-65535 +r georgysRelay O3v4H0h3p9xx/Y4tL4rj5vob4CE PU9zmA0H3T4yElpYtBZSmp22j0E 2020-04-20 02:08:32 91.35.17.157 444 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r snap277 O4Qo5Utg+mwNVsuQv+Fiq+HLgv8 Ewm3T2UkVnGLYzRUycIwk/+ijbY 2020-04-20 10:21:38 27.255.213.77 39061 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=358 +p reject 1-65535 +r RatznetRelay O4ZJSynFgfkHDbJifndcYY0HMos TVSRqVq4Pd0Yi/wFVUhZ8OA2aZk 2020-04-19 22:01:00 83.215.114.178 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=890 +p reject 1-65535 +r snap277 O4bGBmtdPZwtRIrRcQJcNtZBoM8 F58ErEvopZTFWGUx6r3AkW8D2C4 2020-04-20 10:53:39 85.72.248.193 44615 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=65 +p reject 1-65535 +r bereskaTor O5EDNu5n2UIswbG6lBqs8Rd0NXw Sthd07wrlUVNAN8f1UAwXyX8RZg 2020-04-20 00:44:57 185.18.6.160 6080 6443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=771 +p reject 1-65535 +r Eepi2 O5xVD5svJxbKY5i9oPtxXaIFQUI GCgKsyzzAY+eOeF3zzz2AJyJg6A 2020-04-19 19:56:56 95.217.0.140 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15500 +p reject 1-65535 +r TORque O6rOFJ2zFXSzJ7+DW1lLcH0SzVg JDrLYzHZmunGUgev9mN7y02sEIE 2020-04-19 21:03:13 176.9.137.110 4443 9993 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=64200 +p reject 1-65535 +r dexter O62z7/uHU0c2v6yaICSreEAb28M vP0rHZwWq7n+mQIe8FxepvSPGLI 2020-04-19 19:03:29 195.228.45.176 9001 0 +s BadExit Exit Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9530 +p accept 53,80,443,6660-6667 +r kerly O7A1UU+CRqw2e1Nw9P4SC7EdjG0 P8zSMZ1WCrldG/81Vno2qRHSYTM 2020-04-19 23:28:22 93.115.95.38 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29400 +p reject 1-65535 +r caersidi O7NMYwctnRDoNu5ClocT97kyX2Y iRFKu40UxSUXf62gmQB8x/GJWvI 2020-04-20 12:46:14 208.113.135.162 1443 1444 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5870 +p reject 1-65535 +r venser O7NMzY6pyATFxTYbIfM3Z/IggB0 Y+0Y07gTnH58QJ3A5c2qD0ClceM 2020-04-20 12:40:29 94.23.17.58 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6200 +p reject 1-65535 +r laruneheureuse O7R7/yeItTSluso3h5xI7r5eiAA h5GIcTh2WLz8E+AtNyOT3tlvgmI 2020-04-20 06:10:16 185.65.206.154 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=250 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r accidental O7cbqxc9u0+yS5CEPb1Q2PcEBuo qDXsu75EYhUeEFCRrK4gAbIBdYE 2020-04-19 18:52:00 185.18.176.226 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r Tiny O7+dmMfQWNfC5g9rpb1XTLTz/iY ChJeHTLINQp1s3R+oaJ9w8i4Ql0 2020-04-20 11:23:25 91.219.238.120 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1900 +p reject 1-65535 +r Unnamed O8fUJ21n1GaFfsc2nazhNCXWyLg 6XuTYIlQpCYd9XHpOX9asPeZTD8 2020-04-20 03:10:48 144.217.245.140 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=500 +p reject 1-65535 +r Raspi53Tor O9E3bNM57axq7881WnA6Fq+RNJY dsRBB8xCbu7YwJwusceekR/CyaE 2020-04-20 01:16:57 79.240.119.142 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=424 +p reject 1-65535 +r Arrakis O+4/HIEZH4K+2RSA/9YmHPf8Nm0 l9pULNdfYqt7kzI9XjPpokzm+uk 2020-04-19 21:20:05 51.15.76.184 443 9030 +a [2001:bc8:4700:2500::265]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13700 +p reject 1-65535 +r hers O/PwBA2vbmS2G0RWivjt5GD1fgI qibQhDvoULjKmCUJRVrWAEKK0AQ 2020-04-20 06:13:06 195.154.181.146 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=69600 +p reject 1-65535 +r BlackMesaAG PAGqNBBzwSWOwxdXix+jVh5el14 1kRAeJYYrjjeR/UX8Zt0KuQJSRA 2020-04-19 22:01:26 85.214.80.203 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34000 +p reject 1-65535 +r VSIFenterprise PAgKhnchtL4R87/rJcZi4mPkblY qvZvQClQM/gK81KcAIOCdR9H70E 2020-04-20 06:01:52 104.218.63.76 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5000 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r snap277 PBTtZhfqwgOTSTKfxbgxIA0XGrs ItR97uyZs8Vsa3QQJdoLOPEFzmw 2020-04-20 12:06:19 41.108.210.79 37449 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1 +p reject 1-65535 +r Unnamed PB0f1RsEqN8znjJThqrsIR9hVjo ywne1ND2DkbYtasZlnD0YKo1KH4 2020-04-20 09:13:16 37.48.116.26 47331 52354 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=82 +p reject 1-65535 +r snap277 PC22jktQBeUizdcQQNfm8Oi4pIc Iq5ONGe1PCYdDU/1pe3WYuz/kiI 2020-04-20 12:29:22 109.190.93.217 33975 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r CyberaX PDl05dCt03EaXCy+RSrTGszGB0g ChGYFT5EFsqueR7XOOXEt2Sp1TA 2020-04-20 07:24:50 90.55.221.251 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=527 +p reject 1-65535 +r Schlawiner PEtfZ+CSJh3YdibMp2x0AqShzMM BC+Umn5QYQpOP1QYf3s9TbhmO8c 2020-04-20 09:57:40 79.208.168.185 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p reject 1-65535 +r AccessNow001 PFkVNI1zFQXEgRL08DI1/ee4yDc pl6UtHWN/+AMCammiwJ678dt7MU 2020-04-20 10:33:23 176.10.99.201 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r SpaceyBlueShip PFxBmWVHuTirH+NG+oG83UUr2tM FWuwcdQ8sr59juTgjOz0njXMPJU 2020-04-20 05:00:31 93.8.30.170 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7600 +p reject 1-65535 +r glenda1 PGOPlfNmcfxxaQx7viUuIZIARNU I0rk+zFyrpVV+AUeIHkkfbLNI5I 2020-04-20 10:56:33 78.46.209.112 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r bauruine203 PHlpnU+8N94aIS1QM7VtrgeawO8 jWq2o4DCbcTO/nBV12bnQUICny8 2020-04-19 19:04:29 212.83.154.33 443 8888 +a [2001:bc8:31d3:1dd::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26600 +p reject 1-65535 +r HanseTor PHlwK8xKpJjLjp/silGnKuiRaeo qBemgvyCtAVbGQ0pwMxw2IMxpQs 2020-04-20 00:36:06 79.209.234.3 51901 51900 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r F3Netze PInIDiaZ+2NYu7ZP3JVHr8tcA/c wE19yfFMCJErR5elvRDauqMeFQQ 2020-04-20 07:05:44 185.220.100.240 9000 9001 +a [2a0b:f4c0:16c:13::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=84000 +p reject 25 +r QuintexAirVPN30 PKDRVWcCTS4LVX3Azz6WKzeZmnk rakfLjYx9rYYvYvTfdrHaO46WzI 2020-04-20 04:34:59 199.249.230.83 443 80 +a [2620:7:6001::ffff:c759:e653]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16100 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r FreedomBoxOL PKNhB1sKt3BxmJlIhGh2s7ImW6Q G+iG/+IQnYqwltRuDd4QlBzwiy8 2020-04-20 04:05:09 91.47.83.57 49001 49030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3930 +p reject 1-65535 +r rofltor10 PLQZPvTiOfztxNxDRo4LDWtnrMM KbhwYEhhh0e2lqivEbDifecyWRc 2020-04-20 06:43:14 51.38.65.160 9001 9030 +a [2001:41d0:801:2000::f6e]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16600 +p reject 1-65535 +r gongshow PLxUHyp2Ot1790KRkiklHiwGXk4 Oo3uOEK9wyRVwl8zHjLY8r790YQ 2020-04-19 22:46:55 209.126.103.140 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7800 +p reject 1-65535 +r Unnamed PMaCxozHfUGJv2kO8k5k3dRzNiA HL9OjZSfll4iOcGjeT5K1zY666w 2020-04-20 11:30:36 89.223.88.117 39001 39030 +a [2a04:ac00:4:5fbb:5054:ff:fe01:bab1]:39001 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=980 +p reject 22-23,25,119,135-139,445,465,563,587,1214,3389,4661-4666,5900,6346-6429,6699,6881-6999 +r BurningMan PM+Vc/WRN+Unh9nDIqwZ0r0JC3A dUcJJjM2cylahxxyceMjY7n1ph8 2020-04-20 03:45:26 95.216.211.81 443 80 +a [2a01:4f9:c010:4dfa::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21300 +p reject 1-65535 +r wintermaerchen PNX3dmz46W/jFWeLDKxqW5mfxH0 R7+G3VUSXMnfTSolHNX/i8cBUmc 2020-04-19 19:30:56 50.7.151.47 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9710 +p reject 1-65535 +r 7023b1766263 PN/7d+jrhOROQl4Cc8GiYCKv5xo OH8x51C0ADxdNSuu/t4beMrOK7A 2020-04-20 06:43:59 51.81.254.30 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20100 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r modupe POkFJ9VxIpa1jn63zVf304jSX7s xqZQs1SeMd5UfL4V8hVBNk2goxc 2020-04-19 23:16:39 104.238.188.98 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=36800 +p reject 1-65535 +r OnionRaspberrySoup POpWuBdFXhPEsGPn0+dybChvfJs hiOOS+tHk2AbaPg/6k+9gfAkLgA 2020-04-20 02:06:33 82.197.215.30 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8600 +p reject 1-65535 +r snap277 POuhg/Qle2NAAly9ubVy4uvqSW4 fh07+7+ov6CfTYMXVWw+xgPX88o 2020-04-20 12:12:08 178.156.17.10 36811 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 +p reject 1-65535 +r FlexibleSdness PO9oNzrbd9cMKxfoCNWwGk4VZ6c e0hn0UqS5YHBXgwoCzm8U+dFDKU 2020-04-19 23:30:53 47.56.198.152 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=185 +p reject 1-65535 +r zesaver PPhtN3qK1vv04/9hoDqqXY/wB+I OFIqQ3dTxEzbpoc9w6owjroTY7E 2020-04-19 23:05:55 46.119.200.109 59031 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1990 +p reject 1-65535 +r ULayerButler PPrQeY/107mU9AuJcdSnnYQWWg0 H03umbdBZ5m8E5jn/FlumI1LDYc 2020-04-20 07:42:55 45.11.18.120 443 80 +a [2a01:367:c1f2::704]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r smell PP/A7I7yYnN8v2aArghAO5EREDQ YHIwVW8QhaftDDmBtEXEdPWF3iU 2020-04-20 02:03:38 137.74.153.5 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5500 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r blazeit PSJqXIHF5btoLJvx01VL5tXD8Uk E9JjyQfvl6o7sNBShqw2cy7tQu8 2020-04-20 11:07:06 89.163.145.239 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15700 +p reject 1-65535 +r lukmiTorHq PTZYeKJEbUCxNa63F74MmoQz/js LA0Fi/zk72cn4BaX8hHLBsBRjdk 2020-04-19 20:25:31 178.0.91.187 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=63 +p reject 1-65535 +r TorZabehlice PV1heMRFN+NpKFOzRDhfZXKlV2c jXWaNMIHfMkHCIgTNE1D2K5JT4Y 2020-04-20 11:37:12 87.236.195.253 143 9030 +a [2a01:5f0:c001:107:2f::]:143 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50000 +p reject 1-65535 +r fs0cietyRO PWBUH5IVH5ZaiWNenheBY+wXOmM ZOoJ1MeGDlva7AT7eqGDroTG4gg 2020-04-20 03:22:41 193.148.69.35 53 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=5160 +p reject 1-65535 +r elektrobier2 PWFd75fzh2MfUCAfr6bntn/fP+8 yDJkEPz1WdHAZ6kccDYfUzLdC1E 2020-04-20 10:33:24 46.165.254.40 8000 0 +s Fast Running Stable Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r jackyes PWNvudJOp4HDwnZsBRBkxsocDZY wxMXiQnJb5FaKsRsSsdrBJ2bLKw 2020-04-20 04:20:29 94.140.114.177 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3490 +p reject 1-65535 +r marvin PWx3bovp6K5dBZFZQReZnjxUmMg fb6TFnOBuR3IVSSnVUDVD5ggeFw 2020-04-19 23:07:52 62.4.15.84 443 80 +a [2001:bc8:3f76:2301::84]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15700 +p reject 1-65535 +r JonDoeLastsGlitches PXM5ihNmMEtj0xQ4IBKfe/7Uojw xToKRJOw7tnX9oHm+87QHOhCU+A 2020-04-20 04:48:47 91.65.216.178 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53 +p reject 1-65535 +r FallingoutofFour PXarJ6wvQxji/ASQr55o9ExdWHY MrUFDEYFrzI3gvzgsbBPdj4oFfg 2020-04-19 20:10:23 159.89.162.77 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=909 +p reject 1-65535 +r StarbucksBathroom PXufr5atYD1anDjlQ02RMGghILA 8ucp2fsMxVdWDB5F9P/UqqcFPus 2020-04-20 03:48:14 68.183.141.111 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31 +p reject 1-65535 +r smell PX3stG9+IFatDJQbUmqb39FaP/o 4GUpmDyFTDQTyWC+ETOWZ1PkWO0 2020-04-20 06:30:23 51.178.185.234 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20300 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Torstrasse PYeU3xHJfRc9rKi9JPnFCdL+C3A MrnbI6GdMZNEAcTQqdGoWWvOz2Q 2020-04-20 11:32:40 51.15.252.175 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r Penguin PZijdOljaDtOjZnJhfudz9bqeqA fJbiWeJusm0agPtq4+0HPs0ylRk 2020-04-19 21:08:06 94.16.114.153 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4210 +p reject 1-65535 +r megatot PZzoA5m2jAE3f+xCOV45m57Rbhg yMhtd96ZMxyBJwOMZdoCR9OZRIU 2020-04-19 21:07:45 185.165.242.5 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49000 +p reject 1-65535 +r summerisle PaVGAOYV5a+EHAP7gdcyFzVWK1s V31Y29dHThxuD3IKW3dSTum/ATw 2020-04-19 19:35:51 82.71.25.129 9001 0 +a [2a02:8010:60c0::f3]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=164 +p reject 1-65535 +r GoAwayDAN PamPRuIEFCpeF9/hlR1HNOdD2nA FhN8kEJqJcswzNViDzAQU+bV9Vk 2020-04-20 06:44:40 89.74.97.7 9001 0 +s Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16 +p reject 1-65535 +r PorchPirate3 PaqRQ2QBuNSaOApSI9g609Zhg7M pajjlsErZMot4VtJMixRsTlfSBs 2020-04-20 12:36:34 178.175.138.60 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25300 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Fussy PcdIwt/x+OnaVia7PLqv8x1wbBA kTtzufo0ggsV5NRu0EBSrhsNrHA 2020-04-20 03:37:37 51.15.109.221 26173 5029 +a [2001:bc8:4734:6907::1]:42612 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27400 +p reject 1-65535 +r TykRelay04 PcqVWH+Rfz8hK1mHMbl724W/7pI Gf0I3OHy2YLPsSS3A8Wsqm82vgI 2020-04-20 00:33:37 88.198.128.218 443 80 +a [2a01:4f8:13a:890:88:198:128:218]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=64000 +p reject 1-65535 +r snap277 Pc2ZzxKCtSTO/2xBRkfAjzMsXsg /BlTddySCUpFIiI9fMl48We4Ntc 2020-04-20 07:42:46 81.53.7.1 36279 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2970 +p reject 1-65535 +r FlorzsNode Pd0ejsq5ue54/VyPbvg22/+61d4 3bQppudFWoRR5zFy6Ii2LoKI/BU 2020-04-20 03:00:52 149.154.159.172 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=410 +p reject 1-65535 +r sonsorolDotNet PeVnwTUMDoWMYUeuywbqmz6vMmE ErMsRBh5/zzoo/BPG8Vay3pa3A4 2020-04-20 06:31:05 71.174.105.126 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3450 +p accept 21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r Instigater PefnRJ6NIR7AVYhwojDAGowec28 kxVVkpRYXBLnNyVz9Hpwzxerav8 2020-04-20 03:53:55 91.105.203.93 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13300 +p reject 1-65535 +r OhLordy Peuc7qOtoSGam5N9rd9STCuX7dA PxGjdI0rhyYybzQfaAA0RF7i7b0 2020-04-20 00:49:26 178.17.171.201 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r DerRaffke PfKMaiH58GP6FkD3NnvoFDgW1A8 yjyCCidMFqSpFQINm9FtlGVwjD4 2020-04-19 23:21:10 130.180.111.194 9010 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1750 +p reject 1-65535 +r Anyuta Pga0C84nsEqvASqFXeH516WUm9A e36v57Qd91bbn0tVOjtD3tMNtms 2020-04-19 19:59:08 94.140.116.170 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5270 +p reject 1-65535 +r Unnamed PgmezYHYWT0wDJHI8qvd3u+DwNY JjqvM40GYewQV7vzuwdkAHrN88I 2020-04-20 10:30:04 51.15.235.73 9000 9001 +a [2001:bc8:4400:2c00::c:b09]:9000 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18800 +p reject 1-65535 +r Kudymyr PhLj11QBLTDCeHptJS5hmRuXmOA DTF3Vg9QxXRPsIoDkZ4j8i0WJiI 2020-04-19 19:33:51 167.172.252.56 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=1940 +p reject 1-65535 +r hotzenplotz PhPi64fM9WkFZO4z6fn5+Asin7s HpdyYHnzIYopZP1EH8Dd1/eDd1k 2020-04-20 03:21:33 31.28.168.174 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11000 +p reject 1-65535 +r Unnamed Phj+ur2UzcmGQWyVffMj/t6Xor0 +MiPS6/4KL5TFmXERkCOVfGTkow 2020-04-20 12:06:57 62.210.99.238 39819 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=498 +p reject 1-65535 +r AsukaWATARAI PhpTCqRDlSYdQliZztOnOsTqun0 7CWhnir2IYJIFCkf1dT/9S6PZuY 2020-04-20 11:02:47 160.16.228.57 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=47 +p reject 1-65535 +r judas PiyTO+VFhcdg/W0vP6ejPjc6cUU hXgnP2dD0fk8EZvpv55TJx7XG7s 2020-04-20 01:59:48 46.163.76.170 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5 +p reject 1-65535 +r neyaoz PjAFpLQ/r84HD/4Z1TB27CLuCUQ goMX6PHzVT3RcDRyWc/AWrbywDc 2020-04-19 20:20:03 174.138.44.242 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=358 +p reject 1-65535 +r serpent Pjr6+e7l2F8e7WRKds39c/eJHno 5A8J6+OfN0NO9OZh1BP3DnmScKA 2020-04-20 02:59:33 136.168.201.153 9001 0 +s Running Stable Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=27 +p reject 1-65535 +r RelayFoxEarsTK PlCKR97UzUGCoNhwD8wubkjB9ko F/xtv8tXiEjDRYqml9z1+OneZRc 2020-04-19 21:33:27 185.132.75.125 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14100 +p reject 1-65535 +r RSF12thMarch PlDLypiiD2N7xFUf1PEy0GLbmlE CLxOdJbGZX6tuCPW3Fhc4vp+eTc 2020-04-19 21:32:08 185.220.102.7 80 0 +a [2a0b:f4c1::7]:80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=73500 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3128,3690,4321,4643,5050,5190,5222-5223,5228,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed PlPTl52wfv1zZmHJNKHe0UEntoQ shSmKweJTa4E2DIYz2p3ZFGv+N8 2020-04-20 03:38:33 217.79.179.177 9001 9030 +a [2001:4ba0:fff9:131:6c4f::90d3]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=76200 +p reject 1-65535 +r snap277 PlrZONnZ3Rdq2iCCWPFq5NAoTuw EpIMW3DucWhMSU425FfDLq9aqg0 2020-04-20 05:54:29 73.14.254.96 38627 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r RLDeathrasher Pl5J2nmT4w85DOGKmLT9Kzu9j1c ZHHefpTcjgARxGgYoD3jsgZVqJ8 2020-04-19 20:21:06 176.92.45.102 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=677 +p reject 1-65535 +r gudegast PmCpAQ4r+Ok4f6tsP5OaKdprsdg 7T7xYnO96OUnl4Df3bMO6c96uyU 2020-04-19 19:41:36 210.140.10.24 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13 +p accept 22-23,43,53,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233 +r baphomet PohzeXmKm2J5P8LghGnGqS4dvM4 f7gdpcufzz7ShaZ9d/Jh6dRcsiM 2020-04-20 12:30:28 85.214.244.13 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=77 +p accept 43,53,88,194,465,873,993,995,1194,5222,8000,8443,9418 +r Technoprenerd PoqRwecUJht0ve7mxp9jB/Gs6rM Y3Bfp47nHPLNbdWtun3PZuzdJ5w 2020-04-20 00:58:39 212.182.169.185 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p reject 1-65535 +r Unnamed PpV9hp4N2Cn6JJ4i2KdBqjC5OMI PYXD3f+XipAs1DF5iS95Ecvcl3c 2020-04-20 02:47:28 81.95.191.168 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=221 +p reject 1-65535 +r GolfGoulag Pqx7mYPy2z0USg50oPeyaBF2Qvk OJPDKkM161irorpMEk2FvCB4prI 2020-04-20 01:41:18 178.17.171.210 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15500 +p accept 43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r timequake PsIVqGlUriu7TBxwINpbl7Ipshc bkNUqIWcf0w+SMd4iRm4TZvM2Dc 2020-04-20 01:18:24 85.212.133.191 5169 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3820 +p reject 1-65535 +r twoface Pt0AJF2TZkozpyS6N3FQ5VMe0DM /mhhZVjzNyLCugRHNm+YIYtp4t4 2020-04-19 23:03:14 185.8.63.38 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11500 +p reject 1-65535 +r bliblibli1 Pu63Ah2XTTi22XvvtV5eSFUaj+o NlJ9PkVZR8/NzDSSrHupT6LmbSw 2020-04-20 04:34:57 185.146.228.130 8084 8085 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37100 +p reject 1-65535 +r Tor4eevooroh PvN1/jRk1BuDbJSdIZUivE6D5ts QFxYZRu8dnakTjngbIDZWE0x5eQ 2020-04-20 07:40:19 168.62.201.153 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=862 +p reject 1-65535 +r joszef PwZbsLAvsjA+FEOD0WxHp97XWuc 5dIlWg1S5EBBpV+YuVQgo7Qprqw 2020-04-19 19:08:25 195.154.209.91 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42800 +p reject 1-65535 +r NYCBUG1 Pwkphum4fT/aCbcfo6YCN4KFx3o r8ybxSLPj0spmF1LYJa0iuo/BHQ 2020-04-19 22:27:40 66.111.2.16 9001 9030 +a [2610:1c0:0:5::16]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r niftywoodlemming PxKftx6ysBm0dAOlVS6y1A5TafI PXt1IlxcZBzix5RlwzPE3icn8Yw 2020-04-19 20:27:23 185.220.101.30 10030 20030 +a [2a0b:f4c2::30]:10030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p reject 22,25 +r pinetorrey PxWBVZUisnvRNC8qOgAi8nP6k9Y SItyqOmfteL8wcS1rfxcg+eN+P0 2020-04-20 11:17:29 45.79.199.67 9001 9030 +a [2600:3c02::f03c:91ff:fe4c:5613]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19700 +p reject 1-65535 +r bahbahbahtortortor Pzayjb+heQj74jZctvQqn4RQxFM X9IEE6FY3FF0rTs9yh9S/axnJNk 2020-04-20 05:21:44 67.183.239.1 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=79 +p reject 1-65535 +r TorresDesNodes Pz6RHWT43tcSCNYUeCq+1B9Neg0 PX23UA7PCmqFKbQxlJ9hzqAZ4to 2020-04-20 11:05:27 95.217.22.2 443 0 +a [2a01:4f9:c010:65db::1]:443 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6200 +p reject 1-65535 +r arbitraryTessa2 P0PQWEomE8nbYxOC/0htxrleocg 7FxTjeNib12uCuK9y9elBAJigjA 2020-04-19 23:23:19 95.216.19.206 443 80 +a [2a01:4f9:2a:1430::3]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40700 +p reject 1-65535 +r 0x616e6f6e P1DRHeVcAouPPvwnK7HNkTjB+aQ 1Uxt9N/aG+VUAMrlXQRjGqpO6fs 2020-04-19 21:05:47 178.17.171.78 443 80 +a [2a00:1dc0:caff:f6::28ad]:443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1000 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r PIAzrhexit P2LwXoWdf5iwhvcCox93FNVm5Jo yKPBTyltiF7g/vP/al054LAh4jQ 2020-04-19 21:16:40 195.206.105.217 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=138000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Eyjafjallajoekull P2V2at4GfZ0Ikg47dNq5BA7dJrI 8X9VUpZLYPjn9N7128qi+ZZiGK0 2020-04-20 07:56:48 195.154.235.190 80 443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=46000 +p reject 1-65535 +r KingJasperTheGreat P32wFab+tK/1KVJlYF5qq+WPcuw FKcNiHWp79oOh6pCRlItGM3V/Xk 2020-04-19 19:28:55 93.211.84.117 61461 61462 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=160 +p reject 1-65535 +r prentace P5IsjN7VrOGBYSkUO4FQMbPA5+U zU8fI7r6y4Su0BvpQ2bQD2GcuWs 2020-04-20 10:07:07 115.146.127.224 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=74 +p reject 1-65535 +r PrivacySvcsExitBA P6BNr7OcjC07s1aMS3+EGUaR2cs 5MKcrIb8AXEO5ScqFhEAJXZ25x0 2020-04-20 00:40:02 208.68.7.129 443 80 +a [2620:6e:a009:705:face:b00c:15:bad]:443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2100 +p accept 22,53,80,443,587,993,8333,18333,50002 +r alqnetwork P6k9QemnxMR7d8DX9heZm21dC2I aHQeX0Lm/Jrek82AgzIyEUq5ZrU 2020-04-19 19:21:28 191.252.204.98 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=234 +p reject 1-65535 +r Unnamed P63i69P5h/FandGsRCI9OSsNiaI DULtVQhJHXQK9NxZoX1rf3pKIWI 2020-04-20 02:39:14 5.2.72.243 40000 0 +a [2a04:52c0:101:91d::c2b6]:40000 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2450 +p reject 1-65535 +r wagon P8J/zszkJIhA+5/0Op4UoKY7aLg 7XqlAmNgOjYbpLbnoyZGx5i9IAs 2020-04-20 08:48:14 45.141.157.226 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed P8SN7Xgeo69kug3+eAnEhO15h18 uymTHRsv2FF2ESewRyZj4fgTf7M 2020-04-20 10:17:02 51.68.199.110 9001 9030 +a [2001:41d0:801:2000::1bf4]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7230 +p reject 1-65535 +r SemaTorRelay01 P+GqFjRF3A4Gd7Uif1B5B8SHKjA vySeaB8WkMbHkhj18yOXc9lowFU 2020-04-20 03:46:58 152.115.46.132 443 80 +a [2a02:188:5207:0:152:115:46:132]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13600 +p reject 1-65535 +r remedy P+v7akkdMMrMLCmV7bQXF6b5TpU bU0CbHHojXwtacR2Cwf3D8VfJfE 2020-04-20 07:09:41 212.16.170.158 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r 19dotrs P/DdWsE3E9MZ4JxA6T4NJnF7hR0 G7scq2XHO2ThRKgaqcQ0DR+ypo4 2020-04-20 09:35:53 176.9.208.12 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3800 +p reject 1-65535 +r Unnamed P/37WponjHwwN0VgbbW2j8W5+t8 tdqRnPicVcp6cggMopd9fM5cUo8 2020-04-20 07:23:29 37.191.198.94 8443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9040 +p reject 1-65535 +r crypt0Dude01 QAwFNiPzbFw9HPxz8audpuJN7rc jH3h1AfqWX6VQzGFYIvT1CvLJsk 2020-04-20 03:26:01 5.9.234.149 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r explodingkittens QA5s9HQoVhMt3GVw1ls2zq5yanc kyCe6+JlotpGN2L0BfJORz0Noio 2020-04-20 02:30:22 202.182.113.80 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43 +p reject 1-65535 +r angeltest26 QBCP36QO2wE/cpHztNo9QS7Tpe8 +wxpuOwzfeyhnED3+OPjvwh91VI 2020-04-19 19:17:21 89.223.100.121 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3080 +p reject 1-65535 +r ramhorn QBHhuw5bmiKvZltVO//d4ipRexY 6Stxxmm8Fmv1Ty8WDOtWLaBVnBA 2020-04-19 23:41:03 194.88.105.30 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p reject 1-65535 +r angeltest24 QBpmdHcTA4zu9u0oyK/rcFcO68w So5UQg7RXgeAPJ/tiZp1EKvW2i0 2020-04-19 22:28:42 2.56.241.243 443 9030 +a [2a00:b700:2::1:27d]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=881 +p reject 1-65535 +r niftyeuropeanrabbit QDFGBoOungUS02IMJ1jZh1isbJM wE9JjD393Z/cgLMqglEEu9Lp9g4 2020-04-20 00:14:39 185.220.101.141 1141 2141 +a [2a0b:f4c2:1::141]:1141 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68000 +p reject 22,25 +r snap277 QDJUWBYNzz/Fwdw47MYEuz67Lh0 /x0Z9hIfRqG1SNj/wVMkzohzI5o 2020-04-20 10:36:41 77.132.158.33 35343 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r Assange023gr2 QFXN3/ez+ealBEdgmjAUdTqC6yY 7eRZqBD4NtYiljNr29E5J+VAZcE 2020-04-20 03:01:26 185.4.134.104 9201 9211 +a [2a02:c500:2:110::2d49]:9201 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p reject 1-65535 +r exit QF81oQVWYR+4HKPlwBvxpU8RvUw Gw15HpdhwI4RM+eOfcpGFNv7lQc 2020-04-19 23:54:00 107.189.10.93 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30600 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r thatRelay QGC+g45H/f/+sEXK9mMKxmOuKtI hDxoqKnc2PsRTAsJFld0+NFy498 2020-04-20 11:15:40 85.26.114.26 1003 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1130 +p reject 1-65535 +r TorExitRomania QGHFU8qIAhuDAvCBQ2UHCq5hcnA sSMf62PAcB5G6OlEnKHR47+flt4 2020-04-20 00:56:09 185.100.85.101 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7380 +p reject 22,25,135-139,445,465,563,587,1214,4661-4666,6346-6429,6699,6881-6999 +r sqrrm QGeIqRCMFPEAZ755YJhesuyCJNI hyKCcDeBtpaOkCnCZmpiRH3EgCw 2020-04-19 20:55:05 185.25.51.202 9000 9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5650 +p reject 1-65535 +r tototoararar QHajXYPf+E51Y5N4/faP7zMC2Os hVO4fhkwpQzLsKKyxIjYzfAKwdY 2020-04-20 04:00:08 45.76.147.227 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=70 +p reject 1-65535 +r sereya QIUKqVW8GEthfxLBysRBSqMhgFQ xfE57AI8/d/LefxAufI0PPz6BeE 2020-04-19 22:39:06 51.38.80.214 9001 9030 +a [2001:41d0:801:2000::152d]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2890 +p reject 1-65535 +r ZogZog43 QImvxo88vqjRNfXXEQ2qihTzkos f6kOX7b01x7VNUd/EE4Zr6lMWzw 2020-04-19 19:15:23 90.46.62.49 9005 9034 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3990 +p reject 1-65535 +r arighttospeak QJnepoJope0mEHjeFzSJEzShRvk q/4PMKbtYRP+TYwP1uSvgrYhQQw 2020-04-19 21:27:06 82.161.50.30 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3540 +p reject 1-65535 +r elektrobier3 QKYNHx6K++0i/LMLP74uJ1oUz5k noV7DEhNCxt8ZrLQWVVJ+lLhXZc 2020-04-20 07:01:00 46.165.221.207 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22100 +p reject 1-65535 +r snap277 QLxYQ5drCoPmgXAdv/1pjNUS+uk 4enZwzRD/PVlG2WitoL4TIG5x98 2020-04-19 23:31:06 24.155.206.170 35697 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1000 +p reject 1-65535 +r Jans1 QMdz2fKxYUPNsq22Yd3GuxLvPiw 5AMvgvL7J9mHsCojrlQnnAB8W1g 2020-04-19 18:35:22 212.51.149.23 9071 9081 +s Fast HSDir Running Stable StaleDesc V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=646 +p reject 1-65535 +r chocolaterain QM3pNrBLRXOkciM5YAZEPKXqyEU faj3jjWSnIAfGU3Ka2Pp0JnOzQw 2020-04-19 21:19:40 176.9.53.202 8000 9090 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=94000 +p reject 1-65535 +r Unnamed QNJz/je1ZK4ihi98cgkBwPCCy04 fJ7qfkG+74tUL1Y9Iyj88Lt5bwY 2020-04-20 11:11:14 51.83.171.236 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18100 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed QNPM7uW5viEoaEwV5XaY1Lodgm0 zcE8HvNdOMi5d+TUA7fz3tNKFws 2020-04-19 22:53:32 148.251.211.211 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17 +p reject 1-65535 +r SedanUK QNoCgeXbwpJX+xuU2Y6a9YZNor4 39gvVj5xpv8dHeBWKBQBG1+ETow 2020-04-20 04:24:55 93.104.163.243 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57 +p reject 1-65535 +r Unnamed QN01bo88U/qSUbVhz5VjAnkar/U q9NyVpPrUvcgqZ6BuSwneqEySew 2020-04-20 07:54:17 89.163.224.250 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21100 +p reject 1-65535 +r Quintex12 QOfWzlCF5M3aMdUaKdFFfrU/Eq0 fi+5XoVyzDx3EtjSzoZJLUD0LMc 2020-04-20 11:48:26 199.249.230.102 443 80 +a [2620:7:6001::102]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15600 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r fennee QPrkVAz0wSaxsVwPXgSP29ZuLYg bv2Ho8OMb98nQ0GREM+PqPHQo0U 2020-04-20 01:17:55 50.7.178.34 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=51 +p reject 1-65535 +r W0LFF QQEY6HTSJj8c3NVn+Bh1qOOLKzw 6tix/wzjrMb7GQBefiGfHSVi8R4 2020-04-20 09:11:41 176.9.75.110 443 80 +a [2a01:4f8:150:7227:9000::10]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13200 +p reject 1-65535 +r Unnamed QSq51qdh7K22DX6k8ss4nAr0Lz8 cFKRRkKTDPSWQ/meIHkaOaR+984 2020-04-19 23:27:32 185.236.202.58 60257 32476 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=95 +p reject 1-65535 +r MCdrKNe QSuqTeRNp9FFg95jzrPfiYNeasg Ye6RG9l6Q+ZSrdGBO05p7Nkoyn0 2020-04-20 05:00:44 37.49.107.200 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2100 +p reject 1-65535 +r rubricatus QTMX7eX6iCMY9HuHUlMacm177wg dIVmlhmDEPO4yKlKz9sKugnFBHI 2020-04-19 20:02:49 185.246.128.130 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=229 +p reject 1-65535 +r john316 QTw5SYYWCcjkH2+bCDOV62qnjTU GN1apWXCCfz+pgEWGtBVjAoh5Pw 2020-04-19 21:35:51 209.141.52.11 443 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1540 +p reject 1-65535 +r FissionMasq05 QUJ0SMQWQoMhMMLCmvH+rDs+7TU 34qg2VrPusAZQcx4MBBYtb0vRIM 2020-04-20 11:55:08 185.213.155.172 5753 6068 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r nonanet02 QUOF4LqItveHDDiaYIGbsGMI6NA 7dwtxHwg4yHX6LMcxZTRJBy4u1M 2020-04-20 11:39:01 198.251.83.248 443 80 +a [2605:6400:10:7ad::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9780 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed QUdEfzMRvMpB5YQ0c8Suo96SlDY i0JmpiBplr8hDOvhkvvd3SniCFA 2020-04-20 04:49:54 131.153.96.218 58751 60763 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=100 +p reject 1-65535 +r fsociety QVB/VsigNDv0aHGYx+kN8utxUdU XUgIZ3wveq5u509bg5TYTccz14s 2020-04-20 03:29:43 27.133.132.9 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=635 +p reject 1-65535 +r jupitera QVObj9VflNxgF6Kc3MYjl38RijA dbn7UqcgWbmSN0rI6tcXAYXkHZA 2020-04-19 23:52:52 149.154.152.121 7654 7653 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=821 +p reject 1-65535 +r snap277 QWNXgeSa0VWPh2pRLywccGCSqFY 9lNAZ8y64dvPzXWJf2fejgtQFuY 2020-04-20 05:21:47 179.253.32.241 46699 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1 +p reject 1-65535 +r Unnamed QY/SQzNyceraPT4bFTXnCucyRGQ cXsMO6L4AWO/wKy7TWbvRR/p/QU 2020-04-20 10:42:24 91.219.236.122 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2460 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed QZf0gbKtID6hSB7to7Wk3GsPJ2U p11A2Ci/9P9A/G7pn7sy5ZBCwqw 2020-04-19 22:55:48 144.76.119.9 15077 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48 +p reject 1-65535 +r rofltor02 QaPBYmnHtj2263QdvdtOH1hrFZI NA+FzrN9M50vyGhfvSuvotRfBOM 2020-04-20 10:24:52 195.191.81.7 9001 9030 +a [2a00:1908:fffc:ffff:c0a6:ccff:fe62:e1a1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r Unnamed Qa9CtL9wASRk4TvMZiETZycNVe8 zDl0HMsYSsArwumQp8XpMi1OavI 2020-04-20 09:30:19 45.12.109.112 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4000 +p reject 1-65535 +r comnetkyberpuhe QdL22GbnY4E4z58oKigPlr0CDSU cEO8kLmblZVMYxm7n5jboAw6AuM 2020-04-20 12:28:25 195.148.124.199 443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14000 +p reject 1-65535 +r hyp3rion QeBB7GdmIv/uWfVrx1uZzQ1H9lM qBD1T61qUr1mgfngNmpczVaofAk 2020-04-19 21:19:48 95.216.98.55 143 0 +a [2a01:4f9:2b:1148::]:143 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=52100 +p reject 1-65535 +r snap277 QebEqPMvVJgVoi9MjM9sIc/bOPQ waNP2cOVkXeO8rUcVKZRFt+l3Qs 2020-04-20 08:19:23 37.144.31.112 41929 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2100 +p reject 1-65535 +r RNVR217 Qe7Ez6AeiYJkPxrzzYQxUynStY4 ctiRXldJiGpYGYYYQcZrR2pStoQ 2020-04-20 08:38:55 95.211.147.99 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=53900 +p reject 1-65535 +r Supergrundrecht QfB3MSB3QoYNQ6xCb7ri85R70co WfTAQ7bbJ0ng1SEkcoZkA4oo1iA 2020-04-19 21:34:14 87.118.110.113 465 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.2-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1000 +p reject 1-65535 +r Unnamed QfOf5015uS+EHzikBYYL6ogjnTA Vb9u97DL8+blrZ9SX7Irg2l8iss 2020-04-20 10:01:52 78.92.50.128 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7 +p reject 1-65535 +r snap277 QfYuqHmlxbUSgunHptXoOCws368 acqs7SoQvrYezbx8ia0EH62ivkM 2020-04-20 07:11:49 86.211.150.72 36169 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3 +p reject 1-65535 +r relay QfZVgnPLSseYrqJd9NW+CynVCCM TZ3BJrhojYuZysaObsVztnOk6tU 2020-04-20 12:15:17 64.227.73.144 9001 9030 +a [2a03:b0c0:2:f0::152:c001]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=83100 +p reject 1-65535 +r GDOSGRELAY01 QgH/8Lqx3832+6cQriuGCFngal8 O3vkL7zJ+MXun216xt635Ezfq2I 2020-04-20 04:13:29 68.183.230.130 443 0 +a [2400:6180:0:d1::67f:a001]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=760 +p reject 1-65535 +r arnecloud Qh4dt8Ln+lZUhGRgwTY66sECraY d4fwNbC4Yn0zIAw/bIa1Y14VYHU 2020-04-19 19:52:07 185.194.143.84 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=54400 +p reject 1-65535 +r yuicat3 Qkqcw3pdCdoKkQzYs/OzdSQxhyQ CjOTy0ldrZkyhAx8c3KUx8Fi7hM 2020-04-20 01:41:40 71.19.148.20 8081 8082 +a [2605:2700:0:2:a800:ff:fe64:64ea]:8081 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1400 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r RunningOnFumes2 Qkv4aSfoDZFlibsSJIvUaLtHBoQ LhRz0Bke7DAMBcBUv+hw5mp74Us 2020-04-20 00:50:44 217.12.221.131 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2180 +p accept 53,80,443 +r torreyamos Qlg1NwwfvheMIctTx2Zy8SveCRo bGZxLpTXBhQ3fVn8hotqUDv99Us 2020-04-20 04:46:04 178.79.169.193 9001 9030 +a [2a01:7e00::f03c:91ff:fed2:e593]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=102000 +p reject 1-65535 +r farroni Ql41jpT7U+fxGvLZq2DeJfU0uho F0m96KORGvvlB8eeOf8JkjZe09s 2020-04-20 12:36:12 46.19.143.139 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11400 +p reject 1-65535 +r AccessNow000 QnPm0WLtJxehz0IHolQATNP1MHs aBlALqqUsYJrgyqE3tBlvMobdLQ 2020-04-20 09:33:38 176.10.99.200 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50400 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r loxodonta Qn3tqijTlnLz2bdxQXDHJGNGcfM 3hFbYWwZKm16A1RWZ60hPOuetRY 2020-04-20 12:31:00 212.232.29.101 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=139 +p reject 1-65535 +r Grga QoBogRfLM+LRoHzYTdrTs/yWha8 LgYqJN8BxoQZeN6+8mNPPLdyx1E 2020-04-20 05:39:26 193.77.182.57 443 88 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1950 +p reject 1-65535 +r FuYoRoKoNa QocCP5WVv0ZeNUKaBFjJJOz/IOE 9D95DD+cAbtTZvADkS6i0yEmbvA 2020-04-20 06:57:45 2.93.140.57 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=610 +p reject 1-65535 +r Unnamed Qo34NyX08jCdIF3rNovrBPLgjoQ Hj5UTkuDspYHYT42361dmKnhVOA 2020-04-20 08:08:56 185.104.185.170 23098 27893 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1070 +p reject 1-65535 +r ididnteditheconfig Qp19h33ctkXuIe5FLWDzZOVijnQ FjUb/Q3hH2IItQSc5x8wdqGNfPg 2020-04-20 10:06:11 50.5.47.96 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p reject 1-65535 +r googlerelay QqvULflfmg3VlOS2TbzkFdFlJig JzmDRGEZwU+aqn0WETj2CIjJMKA 2020-04-20 03:40:36 35.192.188.190 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p reject 1-65535 +r ENiGMA QrT1LFsR5NOYVfZUlVQlsNWgWYs LK17y9IWMjQMgqOP/UA9xOBzWds 2020-04-20 06:07:57 5.9.121.207 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=130000 +p reject 1-65535 +r Unnamed QsbqYO8Ws6H3tC3vwIhwXw/4CW4 vyURQM6kiHNdUfCiOSs9BdtrFrU 2020-04-20 12:33:55 167.114.92.57 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11400 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r thardes2 Qsu137OIAzRSNXQmzfdFwrzw71k lFn3OM9532NaWNcZubu2siR3qdg 2020-04-20 12:15:42 79.203.127.89 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=99 +p reject 1-65535 +r poussin QtWDNTgbybuMntmNOQEJ63Tby8Q fdr0MXjG6BZU2hdE59c3A/Qz/Fk 2020-04-20 02:47:48 213.169.148.151 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2300 +p reject 1-65535 +r RosaLuxemburg QutVbiWjwzojiraK/QQyc9D8a0E u0zgw5Jz98uWHLnq7lvK3IZD4oI 2020-04-20 12:04:06 149.202.238.204 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21700 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,991-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r CalyxInstitute10 Qu2R3Tdo9qKhlNCUp0Msvo2gBLE 87LOr49/Cz0qbz+8TrRhlT3oAMw 2020-04-20 10:31:25 162.247.73.192 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41400 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r lftor1 Qu/zUxlSp6+G9ntnSfDYx+XrK3A PFqASFgagMY56vkmJH08zRKNwHQ 2020-04-20 11:38:01 163.172.165.157 443 80 +a [2001:470:c85d:32:216:3eff:fe68:4e6d]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r viPool QvREKfH4zSXJiSuEXj/EN027BbE QtgZz/VfE+WzdnKvMD85Qm+oD0M 2020-04-19 22:52:19 201.38.246.66 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=150 +p reject 1-65535 +r ULayerMcGehee QwFjRNfkyy5z8onVfv+dZKyqgns KDuTz+aC0BPAnSRc6hOTVqPE184 2020-04-20 07:24:01 158.51.96.70 443 80 +a [2602:fea7:100::5b]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6700 +p reject 1-65535 +r TorOrDie4privacyNET QwKNAHHeBVGA2qgt4gC0L9ITHCM Y4twLP4ZNZjIuzmkoSvd2V+phFU 2020-04-20 04:07:44 37.157.255.114 9002 9031 +a [2001:4ba0:ffff:c4::3]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42700 +p reject 1-65535 +r Isidore QwZyzXFi+oirSdiRw4VneZ80YzM 8lesIfbtXsSZiU57bqQo3YVYFnA 2020-04-20 11:34:45 52.214.94.163 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19500 +p reject 1-65535 +r Squarty QxYn2PbowvwuBL3+Wu4z5KiBdEU xtfiqcOxz647g4005RlXez0wCiQ 2020-04-20 07:11:58 31.156.97.29 9010 9033 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2120 +p reject 1-65535 +r DataSmuggler QxfLG+0MYJCr67RUQKBArWg4PKw zFs1emhxjGWC0PnQ4ncI4np2FbE 2020-04-19 20:26:47 139.162.191.243 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=330 +p reject 1-65535 +r yuicat1 Qx6mn8QIm+QwSq7Dj+rovI+HEcU MPJy0xiWUvCf8cbxhCLHAsBA/38 2020-04-19 20:39:10 185.107.83.71 443 80 +a [2a00:1768:6001:16::71]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r QuintexAirVPN5 QyCfbVDGV6Vv55rwHKafnvGb0zg CQLb7GwaqQLr4v7ENUD2dw3ap7I 2020-04-20 11:14:06 199.249.230.116 443 80 +a [2620:7:6001::116]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15700 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r 4bdb654c9ded QyPzX3KQsxtyORudDzPSdOu/wHQ OfqlNAbYI1r0ZXGIWY4UnTG1W14 2020-04-20 07:29:31 51.81.253.210 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed QzdpTjaA147271ZUUFe3UYC4zso 2xtKiCxIBoMy6ONS1JCiI0+Rz00 2020-04-20 02:52:46 62.149.2.188 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13 +p reject 1-65535 +r Unnamed QzhhsDF4HsMOxFva44qEk8J9CPs Dlf0VYlWi3ywMUvlBwEymmkxVh4 2020-04-20 02:24:38 192.110.160.146 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=690 +p reject 1-65535 +r devguardianproject Q0Cx1OkRhhn5fbDlTTjtkZ4Rx7k GzBFPOaAjonuT7y+Ze68Y7nlg5Q 2020-04-19 20:07:47 37.218.241.203 8443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=94 +p reject 1-65535 +r Unnamed Q06h+5C/45fOrcIv15qWXG2EuwE d0PN9v4aPvp43ea+R51NOaz6VP0 2020-04-20 03:18:34 96.255.209.36 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19 +p reject 1-65535 +r Mack Q1LViyZB6MF4d1Dv06B6iCJJZ6w KDr7X6XUJb7sRFArDDPY6df5NIM 2020-04-19 22:23:48 95.153.31.26 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9970 +p reject 1-65535 +r MCP Q1P2h+HRxqqXiThZIO6pKbyCVgM PTV+m8kJOAnc1ph5R6u745rMk2o 2020-04-20 10:46:47 67.241.69.119 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=390 +p reject 1-65535 +r snap277 Q2ShViFiJJIq/2sbI78nKNSLl7g 4IO3NF8f2vTKM+FYmCQTSkJkNX0 2020-04-20 06:26:56 70.189.27.13 34961 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=36 +p reject 1-65535 +r ShinKanSen Q2oY8ZwSEtYUK/1IlL3JxQJPdvQ qBDwe46YHDh2pNju+Z+tR3wsk58 2020-04-19 19:25:04 199.181.238.174 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r FIrelay Q3FDqOLYazvrd7ns1JrHfNNg+9o EqVd+asSdIX4pvemEU9q8xdIEs0 2020-04-20 07:38:43 37.228.129.53 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r Fission10 Q43JtrXFN10zK7M41+XBue9EiWA W8XtM0se0HCbIDIC7YW9vqFtrn4 2020-04-20 01:25:21 54.38.219.249 443 80 +a [2001:470:73f7::5]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35500 +p reject 1-65535 +r FreeAssange Q46MIUV2rxNIClUNRcEW9DMzwxk 9aev4d6Z/yH+7/J2bVDyv5XBtz0 2020-04-20 07:58:37 158.69.236.60 9001 0 +a [2607:5300:203:292f:8eca:a71f:80d1:1]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9060 +p reject 1-65535 +r dolemite Q48+pMn7DbY/U3ejJxq1Q1+tfgQ oVEVy/5LIbat+oeYNSIIli3s3z8 2020-04-20 05:00:00 193.108.117.103 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6940 +p reject 1-65535 +r torrentor Q60zdnNbSiJ5IK0G0tm2lws8dd8 85+1dEUcBcov6DkgJkv/Zzjk7IQ 2020-04-20 08:41:50 78.94.74.236 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=250 +p reject 1-65535 +r DieYouRebelScum1 Q68kBxtACRFinVvJ/CDeM1+d/AA tfbmeIwsznlfmEGVFCL8fVAcgHY 2020-04-20 07:58:44 161.53.160.104 9090 9091 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2530 +p reject 1-65535 +r Homwer Q8g1NtrM0RD/EeBJqJAGT2+HvrI KkXCo/42yCIzAawWdYGk8j7XQ40 2020-04-20 10:05:59 144.76.91.46 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=102000 +p reject 1-65535 +r ahoyhoy Q93vBUPsEbdiMwWQjgu0jjcz8Io zRqjaE+ajFNwF/eBtQqOOAuQzLs 2020-04-20 03:58:09 51.15.89.20 9001 9030 +a [2001:bc8:4700:2500::b5d]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=995 +p reject 1-65535 +r Linode Q+GHuMc2H0fqlo7VOJQ1hl1/T+c 1HqcnYzE5XQc0LrmdAVX/KMPlWU 2020-04-19 22:54:44 158.174.102.213 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r sakurako Q/bu2GdKiPFYOV9P2g1rnWEZ3ow hI2HPiSilabY2TrvplsN/faGtvo 2020-04-19 23:33:01 193.218.118.150 443 0 +a [2a0f:e586:f:f::150]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2530 +p reject 1-65535 +r happytobeofservice Q/8iiZxoEfHwN11fFn5IoSDxQHw fcHAsn1oxQJwBCavYwIbc0myEGs 2020-04-20 10:13:21 167.99.170.96 9001 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=48 +p reject 1-65535 +r fujiwara Q/8zRqP45O0n9jHclWxM2NYXPXo 9Hm0ifZvMAC0SowDzToxrdR6Kic 2020-04-20 04:01:01 195.154.107.12 9001 0 +a [2001:bc8:6005:126:ec4:7aff:fee4:6de2]:9050 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=92300 +p reject 1-65535 +r somerustyrelay293 RATfATyQvpJUjnMjlnCkkYJsyMI pAkCtpu8WFYB9GyewsDVVB3pkXE 2020-04-20 12:33:40 71.19.146.189 443 0 +s Exit Fast Running Stable Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=410 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r SamboTorRelay RAgFrG5giIC/er/HEpSrjRHhL2c NuHnnhBgbL8N6Mnuqw46bmHvKx8 2020-04-20 02:12:55 95.110.146.16 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2900 +p reject 1-65535 +r IamThePower RBlvIJNuEnFP8fD032h338aAdq8 ZRbM3npqX5hzR6WCCuapis8vdA0 2020-04-20 01:26:49 80.47.75.185 443 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16 +p reject 1-65535 +r dotfunc RCavWrUF/TIq6O/KZQ7pRG7WLgo 2kaoFQ6wDwYGPxRn/BPgGPd50cg 2020-04-19 20:22:23 85.24.183.236 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=978 +p reject 1-65535 +r tor4ever20 RDEUqGc5J0Nrw/j8/m4IsWsdX4Y faNFLwieEdQIwZQnAhoBiftayac 2020-04-20 12:49:10 45.62.236.117 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3200 +p reject 1-65535 +r Atomsk RDVONen3+XrydobQOw1ZFobjU5Q gsjOP9P1vYvZU492D6Yd6gUcJ5I 2020-04-19 23:34:21 51.15.115.217 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28000 +p reject 1-65535 +r MonsterEdgeRangers RElrGMaDVq86WKytg1Qpw3uUMu0 gvBg/gwzCoN9tWv/E3PrhRKnmGM 2020-04-20 09:07:26 91.148.141.117 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9870 +p reject 1-65535 +r snap277 RFDPUL5xfTdBgP/F/+FrERDVxug zwnFN+sX8PA86JG2jrSewZLyAxI 2020-04-20 07:46:49 109.87.32.69 34475 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3740 +p reject 1-65535 +r Shakira RFF8ct0Mcgbitun+ORdAauivMZM 6BxEuhLVl4d7qLW/YmltIfCP0hU 2020-04-20 10:37:41 217.115.127.34 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4230 +p reject 1-65535 +r Feidhlim2 RF2JHObHrD2A4e3KYfkh06bpHMU 7UDlfVm1fdLiBPNZ3NSMkvrJlzI 2020-04-20 00:49:23 188.192.138.7 9031 9032 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2790 +p reject 1-65535 +r superheld RGn0Qf2rJWV1JisBO0TUSzfk3Is a26tgrH3VraaiE45Y4hhw6umdTg 2020-04-20 07:57:18 212.162.42.186 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2560 +p reject 1-65535 +r RedLightDistrict RHMLJFAhO8Pi2qSFRFjRNPBkT/I okUWzYS4I1C8QxbwM/I+17/sxkw 2020-04-20 03:00:38 185.181.229.77 9001 443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2860 +p reject 1-65535 +r m0rix RHok80AsR3TYnnqtLYdtC/ZOMmc g7j+Ug8nJUE5lMVUTup/cm78zWk 2020-04-20 06:59:19 62.171.169.46 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9450 +p reject 1-65535 +r Unnamed RIFQQz/+HjbtuMcoxV80ummc2W4 F4Ed/wqWR42OuR81xf1mdWks5xE 2020-04-19 20:24:04 185.243.112.85 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=311 +p reject 1-65535 +r beingthere2 RIMJeGf2REUz6qotOLVHm+HzZBI b5RJxL3h747wTRPXYY5/1OR0XOw 2020-04-20 10:53:41 207.192.70.250 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=997 +p accept 8333,9333,9377,9999 +r HORUS2 RIjuqMoWdAINn8wqF24f25YG8LM 3Hm9hRhk0Z4cMkAQICj29kW7Ylg 2020-04-20 09:09:05 95.216.145.1 1066 0 +a [2a01:4f9:c010:8fb::bee]:1066 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15600 +p accept 43,53,79-80,123,443,464,8080,8088,8443,9418,11371,64738 +r sriyani RIs2YXJV2C/Fek2prRDeh9tlRhc pPRMwlhdPJYMPnHWtGH9prD2I7I 2020-04-20 01:50:22 91.219.28.99 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3820 +p reject 1-65535 +r raiteNode2 RJXeoP4SAOhnUGXw2ljiHJOmFso ZQDyLXoz4LVHl3fp+wFlPJ+uyFQ 2020-04-20 01:18:10 94.130.180.220 443 80 +a [2a01:4f8:1c0c:40d6::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12000 +p reject 1-65535 +r Zwiebelkuchen49 RJ2KXUtOzA+7ZZwU3NcSrcw+Qd4 bHSQVl6ZuS7OT6Ag2+xnDWWbKcE 2020-04-20 06:22:33 85.214.95.94 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4800 +p reject 1-65535 +r Xavier RL1wwT2qdRPW9HdzgEF4sAnyHtU qGS9+lV5S3iUIhWPS4HW9NPkYjI 2020-04-19 21:46:18 176.9.148.20 9993 4443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=92400 +p reject 1-65535 +r niftyentry62 RL6FA6SG2qQSCPGJV9PnV4BmJck cK+f+z5kwam4ECJLGSSHw35YwKY 2020-04-20 10:51:48 185.220.101.202 10062 20062 +a [2a0b:f4c2:2::202]:10062 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p reject 1-65535 +r JDNetX RMkKjy+ylO7dCe5pA7WotJQ7YgQ dkLBWRBohW4VabIbiSTBRULDz8g 2020-04-20 03:47:40 205.185.124.4 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r Unnamed RNmMw67cwaLQRpk69zNovYrsaEY qBWGoKY6rrYLdX3EGxx5RzpSgGI 2020-04-19 21:02:17 82.221.131.161 2030 13306 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=789 +p reject 1-65535 +r Kroell RN8QB7VFtNgFfyeQJeuzPPmb4ic 5qSAtrZ5YRQDytRRlOadKRuqP8o 2020-04-20 03:40:26 80.241.214.102 443 80 +a [2a02:c205:3001:7714::3]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17800 +p reject 1-65535 +r Alphator RN8osVIPC+Z+6pjwzppMXyv6iAM X+/W3zInQSmgEU3mUWxF7E7fuGI 2020-04-20 03:56:16 188.68.62.198 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36400 +p reject 1-65535 +r botches0fief ROOZkeucafaWAKTizKzhm9KSKu8 Ybz3h1ITRnm1e/9nUAZev5+RKp4 2020-04-19 20:46:16 72.89.125.139 27133 28004 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r snap277 ROeXAWJtKVzKsocTrvea7twQRL0 PZBbPjWi15s/D1ySRCFffHzgMs8 2020-04-20 12:21:56 80.139.157.244 36807 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=900 +p reject 1-65535 +r Unnamed RPda31FTQCgHt9LlhEtryNUCUHk fuiSKsW3tSfaXOYah40JocpwhA0 2020-04-19 19:37:35 95.211.189.23 32596 31695 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=992 +p reject 1-65535 +r peterfromthehill RPrxJJ1Gx5zjOlI02FASYcQOZw0 N8omuEJoWqz90yd8DHvfR9UTyf8 2020-04-19 20:05:36 78.46.38.250 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9100 +p reject 1-65535 +r MangRelay RQOAejl79porcKR49RoKM6XJUlw AczI7P42PuFEOT5c/vE5yBvmDqc 2020-04-20 01:22:29 207.229.65.155 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5760 +p reject 1-65535 +r Pi RQfCWCy/4oc1eFmB8EXFQjI+rbs cNKXKACXzxoR8iIYF2xMceklK8o 2020-04-20 02:24:35 148.63.180.161 443 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=142 +p reject 1-65535 +r myVeryNiceRelay RQq0at/VQbOQWlxhQLxT64xoyaU grm+VzR1MUcs8rZUB3wtTxTx8D0 2020-04-20 08:19:17 193.29.35.205 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5500 +p reject 1-65535 +r bektarVorlon RRjd2uoTyAxhmhOTzacwF2Zkvwk amHTFJQQWbvfsFWZ2J/GGzA+vS4 2020-04-19 22:47:18 92.32.33.116 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r cryonoxnet RRwUSjWq1Hr5H84wIbS5gvaBEzU C+0D0FCF4UzOFLN5jugYIQyxdrY 2020-04-20 07:04:05 45.33.124.98 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=313 +p reject 1-65535 +r lazylamerlimur RTPkLbk4Tu5TuiRdXYAZ+LYWB4E g3Ixs/ALYDCgrHT7CX5pjb6iMSs 2020-04-20 02:06:25 184.88.26.151 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=590 +p reject 1-65535 +r vwamarok RTQEWDUMiOTFJqHVUbsURkOrp5Q G1v4+u6TgMTTVPgtBEPE+g7A+Kc 2020-04-20 12:40:04 79.230.94.53 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2130 +p reject 1-65535 +r lftor4 RTp2OYS88+L72Us88q6Q6gLkoUU iwtr5bsV6gigeS/xhNPuSeJK/nU 2020-04-19 19:09:40 51.15.203.131 443 80 +a [2001:470:c85d:32:216:3eff:feee:38cd]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8700 +p reject 1-65535 +r 9ntus RT296YrRM1adQFXkfZfnOyISfJ4 WMwuzt7xrGM+KW/HDy2Peg5Dz9M 2020-04-20 01:04:57 65.49.201.36 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2780 +p reject 1-65535 +r FOO RUnMA46n/BQmX8bdZmqRy+VnqB8 MkCKwNB47VNjHIfUHJAKmTZKbPI 2020-04-20 10:10:30 178.175.148.32 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=13000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Dumbletor RUvnUlakpewrf+LrLhxi8nNqsXU xEpqxaUTWlH6NUraCeZzdurM6tQ 2020-04-20 04:10:08 51.83.43.118 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r debrouillard RVLNoDtE9tyQNwvQjsJP5vkvQGc Hg5XQBdIZ0Co3W9yaxBphRjPtsM 2020-04-19 20:41:03 89.39.67.33 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=4820 +p reject 1-65535 +r tjwtechsvr3 RVgvTM7ku/ebRKSFP92CkIsI1Kg xS0MhFzA2N714PUtHPlsLWUrGfo 2020-04-20 07:22:57 51.15.7.86 8443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5300 +p reject 1-65535 +r pmfgrafrone RVnxYr9ze7qqaRF3rj14NvoRf2k O1zdB29JeY7gW4/UIHDmWnTO9qg 2020-04-20 03:18:02 137.74.57.96 1610 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=63 +p reject 1-65535 +r chonk RWH8CFw/OnJx/pYDF/AtzR6cEYg socz1r2g7eRofIKnCxkHpOvqPd4 2020-04-20 09:14:03 66.206.0.138 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=43500 +p reject 1-65535 +r niftyguard RW9uSZjrF7l121oZJzYHho5fivo mimC3KGdSLaVrMS5Zh7izTZ2btQ 2020-04-20 12:45:04 185.220.101.229 1229 2229 +a [2a0b:f4c2:2::229]:1229 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22300 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r AUEBTor RX1gNalTgFuC0qmTPt46DqS2df4 CbeRWXY++SJk4K+E//QmlxO6Jjs 2020-04-19 22:43:44 195.251.252.226 80 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4080 +p reject 1-65535 +r zacharyit RYV9WBy7VqUBJpHk8RaVxm49iPg eusuLAfIhws97A+4JAUHEAG/XXA 2020-04-19 20:20:33 68.52.63.97 4672 4673 +s Fast Running V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=852 +p reject 1-65535 +r Tomoko RYaEscQvOA43AfV4K0mqfA1m+rw Y5DE/AGfvZafgb6+IHnXTbNy0VY 2020-04-20 07:57:44 80.240.216.253 9421 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4400 +p reject 1-65535 +r yuggeit RYe1j0lIdbas8eKbHWSyyTvVM9M JEEzlMCq8KSyVtqyctzhut3HlU0 2020-04-20 10:56:33 188.226.221.243 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=79 +p reject 1-65535 +r westerbaan RYg7ITnWCblTbhKHrCLW/EgKFhQ CC1fTEe15v5TCWqchSO4iBwFrf0 2020-04-20 10:45:04 62.251.50.232 9001 0 +a [2001:985:5431::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1090 +p reject 1-65535 +r StoNet08 RZMQ4MOnLKrK4Qvuu3SE1yTJyMA Eq11u+vs+BEtt0x6Ss2txMYElC4 2020-04-20 04:32:42 82.183.25.47 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3200 +p reject 1-65535 +r rockhopper RZoR9u6PC+Lwj3LhVbheq/XlSjs TTiZdRtKybUSzA8mAFtFQLfw+u8 2020-04-20 06:29:54 23.253.57.42 9284 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=234 +p reject 1-65535 +r snoopy RaUoZFS6VT+s9Wz0rl9MxtLQlbA 7hIGAOFw2Fu9+6Ev+tUzK5G5qmg 2020-04-20 01:23:40 81.221.214.10 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=559 +p reject 1-65535 +r smell Ra5jOTYoAaB5Z7NJTHbqMlFzk8o QExguhA6Qyrri2AzPHwQPkXAtRE 2020-04-19 22:23:20 45.9.148.217 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5500 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r FuckTrump Rc0ZnjAvIJCAJpB6UhSMYLQqpAQ RpFbNftyQ4fvI+oIEBzmx3R3NZI 2020-04-20 09:22:30 90.3.65.115 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5980 +p reject 1-65535 +r snap277 RdWam/o2k4CP4PdiIN7UzOmPwK8 bh9WwdCm1lFOPvVrjZxnipZRZuw 2020-04-20 00:07:46 41.76.158.106 37505 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1 +p reject 1-65535 +r BlackLabsHelpTor RdgaWUxFi6oq+trcUHtseE62jWM 0k0CV1tOwB9g0ROE3CXT+XNm/m8 2020-04-20 12:00:32 69.119.185.30 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5620 +p reject 1-65535 +r Feuermagier RdjB7v8EQEOqaAbEuRMPjxie8xY kCPclFZkZAAAA0Oxs/Ub8+GgrgI 2020-04-19 19:17:06 213.178.26.41 9001 9030 +a [2002:d5b2:1a29::3]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=334 +p reject 1-65535 +r Sw4n RfHO3Q2Bviv5CKfO+Op5lIbkIgY dNA29TAUaBDfVACt9HF1T2hya/o 2020-04-19 21:38:58 95.234.197.65 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r Machiavelli RfgM/OD/ZergEgSbr2YIT3bm1os ryDoN0O4Ag7bgrNonyiF7qfWXvc 2020-04-20 00:42:21 45.62.244.154 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r BigAppleNYCExit RfzcTN96f32ae+plpj1q0Cq11j8 tWvSJxnUeZaruIiJjP9+3KdHh7Y 2020-04-19 22:59:08 198.98.61.88 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p accept 23,43,53,79-81,88,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Unnamed Rf1AEkOFQpR4PNg2c2E/9WXZpmI QtheCid/Mgpc8spLyWq440aLgMA 2020-04-20 07:04:27 178.63.69.254 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6400 +p reject 1-65535 +r PY3J4NWQP7ZGG8X RgzfPeCO40hbMuhT2gd2SZuQAgo uiu37dqZl4SmpwFRxADTze8maDo 2020-04-19 19:28:50 192.99.253.155 443 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5640 +p accept 80,443 +r FissionEx2 Rg5biCdwwZdhvFdHVBkT2yrQHjU nSRuf/UCylL5fLTsLHiKQhMwFxM 2020-04-19 20:27:26 158.69.63.54 443 80 +a [2607:5300:201:3100::34b0]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14200 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r CryoBBNx Rh1uoVlmx/mbQ9N63BFrW45H0TA kwMyYqF+YgkW8WyiBxO4wrzVrPw 2020-04-19 18:56:13 51.254.45.43 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=70000 +p reject 1-65535 +r Cotopaxi RiOp7FO/2DFVkp5W1ve1W15xjCQ vZEWduzHZvYaxEKya3nbfT5qPDA 2020-04-19 22:03:38 163.172.157.213 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r snap277 RijpjGC04GjNdl3mgmQ3BSOhHu4 bZOz06L1F4vk1O31f+zgvS0MUvA 2020-04-20 12:32:11 2.3.51.103 45309 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2 +p reject 1-65535 +r gnosti RixMlxcN6U8lGkb0x0EDKGStG/s N8E1KkwDlKSONMv87Jx8UHfBMt0 2020-04-20 03:18:23 193.63.58.76 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4340 +p reject 1-65535 +r snap277 Ri4FS0qCschmuawjzcLq+OdNj9g 6J0uV7vTbQ0B7HTmaftBCRB54fM 2020-04-20 04:33:00 64.228.181.7 44851 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1080 +p reject 1-65535 +r Srv11MuchRelay Ri7LX/lMaraXHkUXELdIviD3zIs +2kFP78y9R67NAaeVg1e2pwbueE 2020-04-20 10:48:18 167.86.102.12 4443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17600 +p reject 1-65535 +r ceres Ri9Jg9+/tOVXcGhDCTybSXoj35I PiDC7gTZf9uUuYah75Hn5pYkZ5A 2020-04-20 06:45:00 45.79.70.219 9090 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5890 +p reject 1-65535 +r Razor Rjn7Xl9M2aNEyuAzft/lNeaAhnQ ed6ZCqjwtILv6+H8gaymX9TBjJA 2020-04-20 07:37:41 162.226.56.70 443 81 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=540 +p reject 1-65535 +r Unnamed RkjbwNvd9oZkr1sIMcCoOo8K3vU a1uJs9o0XBK9tOsiRFJf7q92hMg 2020-04-20 05:06:28 95.42.88.88 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=906 +p accept 22,143,993,5222 +r Voltage RlmmlDcR72lSHiF/GHHJnSovk+0 a3hsGryjGw/8nj0rkf0Qo/E9Ts8 2020-04-20 07:43:16 88.99.70.107 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r angeltest14 Rl0XxvwpfjhXtcbxUgBqHiEpROo QvJVhIfL93Kvs671vX19td3OMpw 2020-04-20 05:21:34 195.123.245.141 443 9030 +a [2a05:9403::86]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p reject 1-65535 +r toritounam RmHeltP46SOZSwUhjyN2DI15NaQ 5iWJeNeEn6PhZ8IfahSgwwpvSv0 2020-04-20 00:52:16 132.248.241.5 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3300 +p reject 1-65535 +r netneutralgta RmRLE/ZAkBjhTs7h6VlHQAZMnyQ NsVt5I9zRGVQlQuEz3BnaT7N/Sk 2020-04-20 10:14:16 167.99.181.20 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=638 +p reject 1-65535 +r PhantomNew Rmt0dsyTrAVrg/adhL9EZ7dGLXs vILvcdKoBhI1Hsr+Ro6+CtTDrzM 2020-04-20 05:09:11 109.236.84.72 9001 1900 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2040 +p reject 1-65535 +r alzey RnNmFsWoldY2yT75+KKJw7yT7lM ocnxp5IR/Hvp86zFS9JQJRtsYXg 2020-04-20 10:27:09 89.249.65.249 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10500 +p reject 1-65535 +r arkadia RnZGpAhYcObeaJomykzIXc7iXks ej6Xk+NQAgOrGA8kTfn9lflJN+E 2020-04-20 04:00:16 78.192.118.230 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9 +p reject 1-65535 +r nodvrelay25 Roh0ih3nRAUu768ABLgZ4OnTUq8 mUvWH/jvF3bsgWOT/pOTzpCWM2g 2020-04-19 21:45:58 45.62.229.58 9001 9000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r Unnamed RpMFrlbZ9EZGjovoeAIZ7tVO7yU aLTwMyyNHbWLVg8CYlXZUBt/bYI 2020-04-20 06:04:44 54.36.112.239 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1090 +p reject 1-65535 +r snap277 RphCVxUxnlEvVPoZvoHziYhMYYQ UKz5SF7Smx1mwT5S5TBQfUfxbYE 2020-04-19 22:42:20 190.171.243.60 35717 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r NeelTorExitB Rpn6+griOr7l/C8EMHhetSWPcUg qrVi+6Y0QmvSEFn8mn+bh/3yXZY 2020-04-20 05:36:39 71.19.146.41 70 23 +a [2605:2700:0:3:a800:ff:fe87:5681]:70 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2970 +p accept 53,80,443,8080 +r au0akatala RqTlbJylmjsH/R3+mJEZTgyP1vA HSvtVNUkzTDTel15cJ2hYLSoyBk 2020-04-19 19:45:06 103.73.65.32 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=160 +p reject 1-65535 +r snap277 RqUK5AcaxaDIVfn1nVWWOWmkd3w aL6shn+X0rT8wn+L2+ymuhnlNms 2020-04-20 09:09:03 109.229.159.23 36521 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4560 +p reject 1-65535 +r jobiwan RrHJadCkXK6Qjsx+wP7370yFWWE YFV1tQLqktwEFqZfxi/oMhy7qmg 2020-04-20 03:11:12 82.72.48.100 9099 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=378 +p reject 1-65535 +r Jorropo RrxXz9yR3nXL2n0mSh/UaEoEi1w jAk6oigSXnAftFCmnptNG2hD+mU 2020-04-20 10:08:29 51.75.127.200 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=870 +p reject 1-65535 +r snap277 Rtr0glktYkSm1L0DxtajIQWFHCg TXYwR0AGV9MMmr9k4MXqwPPQUs4 2020-04-20 09:56:49 60.240.114.65 39325 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=65 +p reject 1-65535 +r cophisolem RvMgHcvoijEK9OXPVF5YQGkRTMc w3i0mXn4IX6UMIckFDTvrDjvueA 2020-04-20 10:22:19 151.80.37.126 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9210 +p reject 1-65535 +r AccessNow010 RvkO86NijBNNu0ZU0OT/frkUtpA SuYu4mVl5FSYfcaa1vJQIOSp8/g 2020-04-20 10:33:09 176.10.99.210 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r runesandrelics Rvn7lDkXhY9hjyZIWV3qzZMdRAA 8dcVuWzQAaU89TRJQwyT5zNEIhw 2020-04-19 19:33:08 54.36.108.162 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=67300 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r TesTOR Rv5Ngc2q01kMO6jqcHGg7Bu7IeY HKqr9Ym8SH9WD0q367f/JbL7iJM 2020-04-20 03:36:46 219.117.252.228 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p reject 1-65535 +r niftywabbit20 RwvFxqi9HZ/btVaJ+zAwMQGB6uI stCCfILkcJCeKVxLOxgTvLm+8lc 2020-04-20 10:54:21 185.220.101.250 10250 20250 +a [2a0b:f4c2:2::250]:10250 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37000 +p reject 25 +r BSDNow2016 RxFC2W/H7sohxVY3svAPBlvvZV8 SqLAInCuneRCKNOgwtdXBAHCqvc 2020-04-19 23:14:57 158.69.218.78 8000 0 +s BadExit Exit Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033 +r rmblack RxH6fzYEL+isArT5nCdjEzSbKgU QsVs2hGFmW96TzA+TtITzB9sAyA 2020-04-19 20:07:14 95.222.20.43 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=921 +p reject 1-65535 +r LLXnonexit02 RxJRIyonhWJblFgGTT3qA7i+Exk hQApogLhsyyPHGN0Fs7S5HjxIKE 2020-04-20 08:04:05 51.158.23.91 8442 0 +a [2001:bc8:2db9:299::dead:beef]:8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r ChomelesDEionos RxdepcG4MK1y8u0UwIm0Q3WDduE iQlBlSlAvlxwFkeqbeNaEPbtAFw 2020-04-19 22:30:29 93.90.200.181 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10600 +p reject 1-65535 +r Fatsani Rx0bQ9OQBPYM1ITxW4Pzbm2fvBw t0eJY64/eN18XLLqZjf+k+hM3p8 2020-04-20 03:24:24 185.161.209.99 14130 0 +s Fast Running V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=10000 +p reject 1-65535 +r 5n0wt3ch RzL6beEFnwqv1Y7/e7ppssJXn4U WuERDJCbhV+iuimZusrGl3ysVU8 2020-04-20 06:22:27 99.100.63.13 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=60 +p reject 1-65535 +r GeosCoolRelay R0ZI0t/BwGClynTIpZdoB7f7X+A 834zkriPpXBLomTrdURNe5dzpGg 2020-04-20 09:33:52 178.17.174.242 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r ursula R1H7VZSZ3gXqQR3+8kcLYNXaiuI g4IMOgWG/Bxlrey7Pd/HByVeZ6w 2020-04-20 01:06:43 173.230.160.38 443 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45 +p reject 1-65535 +r yewDelroth R1s012dWkQwR63dS64KF9r4Awe4 Z1IPeWDGBVVERsol4YyizcSXqQU 2020-04-19 21:08:31 149.56.130.157 143 0 +a [2607:5300:201:3000::1b25]:143 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12700 +p reject 1-65535 +r rastanet R2wyG0+xBwXf3b+AkXerX7veLNU zCop9myT6gNHEl3Y4002tcpZ1R4 2020-04-20 05:26:06 85.1.64.198 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=25 +p reject 1-65535 +r stork R36oS1/5HVTWgdY6PhUQ5VzE1BY 6bvEbpVppAedl53GuY8FHAJ2m0A 2020-04-19 20:32:20 81.234.212.83 1194 1195 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6860 +p reject 1-65535 +r mordel R4B0mZSyNVf3RYa6EotNwBpUZnY E44Q261rnLMp5aH59IUUs0ZdHc0 2020-04-20 06:07:31 71.19.144.106 9001 0 +a [2605:2700:0:2:a800:ff:fe39:574]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3760 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 R4Q7QbrSQkBKhP0OqzmWKy9q68U DS+HW3NK4iGCSpyT/ok1lNR9Z70 2020-04-20 10:41:13 82.247.163.51 38071 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r Unnamed R4sOGJMMpBFzaWea8yn8SdkRCWY javQUVyXtq5pedDvGivvGyRbXuU 2020-04-20 03:32:48 104.206.237.23 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9160 +p reject 1-65535 +r niftygrazzt R6PQBSXwQfOCs5i/lbxY4OwjJ2s rpgRnU2PAA/g1wS6b8y9PbMYLxI 2020-04-20 08:53:10 185.220.100.245 9100 9101 +a [2a0b:f4c0:16c:10::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46700 +p reject 25 +r linsensuppe R6g+xNFE+4CUpX3FrrOen28XQDY BWMAUh4tGOBMTkZKjwgskIWwv4M 2020-04-20 00:51:13 93.177.64.123 9001 0 +a [2a03:4000:38:410:c42a:a2ff:febe:b8af]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24400 +p reject 1-65535 +r Unnamed R748gLbIMSEVJ9GNHYTidQ9BLt0 oIaq6IPW9xtNE/bwFd9s8GoPmyk 2020-04-20 07:24:09 108.240.182.140 9990 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6 +p reject 1-65535 +r niftysugarglider R8QuIJTuSC58m1hrELq/tnVXAws A3TaXGsPqKHLCv0T7OfjOGzaGik 2020-04-19 20:27:07 185.220.101.24 10024 20024 +a [2a0b:f4c2::24]:10024 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42600 +p reject 22,25 +r michaelscott R+EVf32m34DsANdF1zrNewo4C88 MGZNe88hXLMRGFRV5MZvf5HKkLk 2020-04-20 01:58:30 37.157.195.83 38619 44776 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13600 +p reject 1-65535 +r CalyxInstitute15 R+STGd1neE8eZbV5M3G+RnNll54 OCzHfUvq4nxeLNnRtg1foXj+2cI 2020-04-20 01:23:50 162.247.74.202 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25600 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r UniverseParadise R+9277/ztO344CiKXlaA0i3LMwg UPSO8h65uhNpM+vHepO0mtZKARQ 2020-04-20 09:22:10 157.157.87.22 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r sing1 R/nR4BVQiZF/+nNO91kIkybDdho TX5UESrSUondsh/2MCG8FqrOMBg 2020-04-20 01:06:14 68.183.182.89 443 80 +a [2400:6180:0:d1::705:5001]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=713 +p reject 1-65535 +r ULayerKiriakou SCpofxQYKXSSbOCzrP/I1iR+198 j1QIJgrX7GmLRrF6+lPcKj4EmyQ 2020-04-20 04:46:48 107.189.10.156 443 80 +a [2605:6400:30:fc76:b73:a5f0:846b:83c4]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p reject 1-65535 +r Unnamed SCwG/mxs9xaktaGjDkZASK5uNdI WSvhBbCAiFyDHd/1cmu73W1mfdQ 2020-04-19 20:28:02 54.37.73.124 9001 9030 +a [2001:41d0:701:1100::139d]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r Grape SDNk/Ts30UO5dF6MoK4VpUycr3A Q5SN7BMfGKBjmf1UkiBH1fAG75A 2020-04-20 07:46:40 46.232.248.100 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r KherNl SDem3/yONoHXCtno0FfAKQk9ovc CvEauHsqOpvudaweTuwtgrUIntY 2020-04-20 03:50:34 51.75.206.12 9100 9101 +a [2001:41d0:305:2100::7cb4]:9100 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13500 +p reject 1-65535 +r Aerodynamik03 SEoQuiuNSKXwIWZ0yN1Q7ye8MvM YKEJwH/ocYdoCu9AB7wGUsPT6ck 2020-04-20 09:26:44 193.70.43.76 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r Locke SE9mbEkbzeIrReDhnRzqWsxalhE Rqg6jQEISWlC/RMyiMepUBXNG9Q 2020-04-20 03:02:36 51.15.80.59 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11000 +p reject 1-65535 +r mordoc SFbJfcTyJxvIlt+cq9IX7i2GnWg edCkLsS612vaS0pV5yp4G6VyIXY 2020-04-20 01:36:53 136.243.149.82 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=120000 +p reject 1-65535 +r Slaanesh SF2l1cX8eN/byZcQCV7TGlM+iTw Gf0tGJSzjpRMlJN2De6A6CU9wiE 2020-04-20 05:46:16 82.181.30.212 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1200 +p reject 1-65535 +r dc6jgk1 SGdANTuQWqRzH4LAtMwlghpixuM BfcsN1dBgA9vGjA0V/lStvklI2g 2020-04-20 06:15:31 87.139.33.217 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=4770 +p reject 1-65535 +r netwerxtorexitlux0 SGmBVltmMaXtNXA9p+RMIXtNVxU qgObMpNp2oPw/Baqv1G/HGSaEbI 2020-04-19 22:01:32 104.244.75.188 9001 80 +a [2a0e:b107:3c6:facc:decc::deff]:9001 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed SHb0MRG2Cw7X+0qnFtZV2hKcfGY MPcpyLyCv+kupdXur9vud5Zl83I 2020-04-20 11:14:18 151.80.194.85 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r BSDRelayDroid SHtblvQ4miHtF5Jgmu+5GE5iHP4 YpvtCnTVwaMfMtZWcubrtM5rqmE 2020-04-20 08:41:26 46.23.93.78 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=47 +p reject 1-65535 +r oxygen SIyUugDcODl74+oFGrO/j+ZgoGI WkZFGFnM8DuaCl5cV1Y8pwIJE18 2020-04-20 10:39:15 179.43.167.229 9020 8020 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r zapner SI5mO0qIwS5t5sEvemBT8Jv3pho 1kWQ+2lSPLgR6IQJB3XKDRGVZzw 2020-04-20 09:53:16 95.217.6.94 443 80 +a [2a01:4f9:c010:516b::1]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1940 +p reject 1-65535 +r SomeStudentsServer SJYG2mT9S2inbEk4YphpXmwwteI 0QMjOH4xb7ZUN5/t/RrGmqp8/Ac 2020-04-20 10:07:41 5.9.120.250 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16300 +p reject 1-65535 +r snap278 SJZmwBgpPS52wJLbFlSD3xLwNEw AFwk1Rz8vTPRAE+ADrEKODQEbPs 2020-04-20 11:22:11 78.229.98.33 40437 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r matator2 SKHRfOz7Oubw4QaUTNxxKYx16H8 FbcqddXAGJZx6WWC++ZFdjlybD0 2020-04-20 11:24:03 188.118.217.235 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3390 +p reject 1-65535 +r Unnamed SLT37o4fh+pUTJSY/0Y6bdw6R5U T2+SuZUZ8e1CSt7pWUhreBNBiIs 2020-04-20 09:13:04 31.31.74.131 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2640 +p accept 88,110,143,194,220,389,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r niftysteppemarmot SL43LKIQTSQi1JzTIQYOf2l7Utk bImbQSM+AQOOcDf3HKKc0JzJwho 2020-04-20 00:25:58 185.220.101.23 10023 20023 +a [2a0b:f4c2::23]:10023 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=55000 +p reject 22,25 +r king SNPLmTKh77hY4I/TafxkQb0JX2M ParGfKLU1/n1roBMJIhgun54XLA 2020-04-20 08:22:25 51.68.201.112 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Athekiu SN6DL0vmlVs/Px8GAxDzv9enkD4 ftIVl0hOr789vHkaXe1um0Ygq1s 2020-04-19 22:49:44 91.116.230.193 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r DreamingCSPeirce SOU3flwt3ZXtatyNic6Ngwre8P0 ph07wB0v6TjVVbLETgOg2UU45W0 2020-04-20 02:31:33 64.85.206.69 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=146 +p reject 1-65535 +r Unnamed SOWqt94HQ5/FNfUz9Lo4if3Uh/0 b9l9nWZfXKQl/ibNDXeY8f0fRoU 2020-04-19 21:26:12 158.69.123.231 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7350 +p reject 1-65535 +r Larisa SPUaAwlhB8lnP+lsS4dsAQuiKvQ fxg1n7E/u0HCl8JQvWnUGqU+VhI 2020-04-20 12:49:04 185.234.52.116 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6800 +p reject 1-65535 +r Unnamed SQstcMFQ+3LjH5qcoR0oUdlP1Ek 0VPhKCst4V5zv7+1D7byee07n94 2020-04-20 05:58:26 40.127.170.168 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5400 +p reject 1-65535 +r scratchy SRTzTXogG2bZftDO9M8s+B6xfo0 B+NMnXq/aPiG99qEDOnm9+0ehpE 2020-04-20 09:49:45 95.217.5.96 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=410 +p reject 1-65535 +r Unnamed SSkEGj/uaYmQMUvWHQ32lYxCGxA VcMi0W7rLYqksUBsjPGAaEd4OQY 2020-04-19 20:33:10 81.95.52.68 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=17 +p reject 1-65535 +r relay4freedom SS/5GmtDEQaB99XdOzgOU3aZ0/E BGXn+uCZdw0YKRoQUK0qag0jYV8 2020-04-20 08:28:26 83.209.53.188 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6450 +p reject 1-65535 +r Unnamed STHQU1yZvIX8fvC+a8C+C641hNg sSl+dxFJvVTU+GhYS6N6dvTGSZk 2020-04-20 02:17:46 37.120.206.46 42543 58043 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=159 +p reject 1-65535 +r torjanhorse STvu/ZhU8OfOuWoBpH7qg/TpOgA uDSLS50ZcaGkA4RWNxsylYc/yGg 2020-04-20 11:37:38 94.79.157.78 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=923 +p reject 1-65535 +r niftyentry98 SUJ1Blbq1qEZEow9KP1lPWvBSKI kFdN+thtZEekXBxEs4ISxxxGi8s 2020-04-20 10:52:01 185.220.101.238 10098 20098 +a [2a0b:f4c2:2::238]:10098 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6870 +p reject 1-65535 +r Dunkelzahn SVmFR09Ue12XrLKUHHrtBI1+fhQ PTWO78OQ785iSigHfiRvy7s+0FU 2020-04-20 00:25:38 176.31.43.51 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12400 +p reject 1-65535 +r AnotherTorRelay SVtJaGfIS7ySM4MB2SSFDyJuddo stAPqyZC0gUKWYc7wZ/AbI5KxnU 2020-04-19 18:58:03 5.135.162.49 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7900 +p reject 1-65535 +r Unnamed SYdzmd0Ogv4SMUg2EDiCM2j3cZM Ha7kxqNDkSL+r8yKRO6DhLaYngg 2020-04-20 03:22:38 90.91.246.132 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12400 +p reject 1-65535 +r Unnamed SZg8GBs6qlWqLWu4bpeWtRT4dXM 5wQdXzDw/qqUkz4g6sUyEOPmDxM 2020-04-20 09:24:42 77.79.141.24 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=306 +p reject 1-65535 +r HellGuard SZ+gFDMyBJEhYiWAH+BYnCULTW0 PZ9MPH3t7sLUEQrYa0ubrQixJnE 2020-04-20 08:34:19 87.122.107.230 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2730 +p reject 1-65535 +r ten001 SbFGeNQYJh1iFjKx3fWMx0zKduk BGV2je7nJkCopK2JLUDYpcnrr5M 2020-04-20 06:43:18 45.10.88.30 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9040 +p reject 1-65535 +r Unnamed Sbg9ETSudXd7DlPWpfNHVZXNFlQ 2517oN7Bu6bUza+UtNqh6fZgC7Q 2020-04-19 19:58:50 163.43.104.205 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=582 +p reject 1-65535 +r kleinbach SbxzASUPbYe81nbfya8iBI+W9Zk 3VLhcyiXeokLmkjHeqYGGnlKz1U 2020-04-20 00:22:26 91.213.233.60 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1780 +p reject 1-65535 +r r00tzone ScqSYoAencm0FKFDpYpoJVFJNno 6GJjZiZSempM1mniDFdm3Rcw9jw 2020-04-20 02:29:47 54.37.207.37 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10200 +p reject 1-65535 +r Unnamed SdHyLoyjYIF7aHo978FIuuVCuUc tg1CqA7YopBe/KJof0HiTsXqzD0 2020-04-19 20:28:48 206.212.254.106 39712 54627 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=140 +p reject 1-65535 +r Twoflower SfmjUIZNAwwcnjJf1CCMFV9QRuY fa52XX2dGyaD8SfjJCV3U1wl++4 2020-04-20 10:50:36 91.192.224.146 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1250 +p reject 1-65535 +r yoshihisa Sg5U5pNDt89hOMEYhDzoYOhRH3g GcQsipzCz+SFSCjezCF3Vvu+LSs 2020-04-20 07:44:37 141.255.165.102 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6930 +p reject 1-65535 +r Unnamed ShK1jRU868W6HgXc2c/+fF7PLTE 1QTmYzI1Mx9/C9v+ZW6u43tyAtE 2020-04-19 18:57:11 167.114.92.58 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r dlxuk ShWGhr0BGbiqlq/iq8DVWvRn3RI 4wmu+kZuKQD7POM5/O6lAgAObxs 2020-04-20 07:30:30 5.135.42.249 9090 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1110 +p reject 1-65535 +r tormachine SjuHTwGH8s8No8j3YGOwcPn3oU8 H9WpjAgDxJ0ha72UOnBnG4j2Tdw 2020-04-20 00:21:57 87.118.116.12 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5800 +p accept 53,80,443 +r FissionMasq01 SkEd2Ou9U5qgCQowWFa5yDj38tY Je34qceo//XwVT951QgUBGVfDPo 2020-04-20 00:25:00 185.65.134.175 5753 6068 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1810 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed SkbXpAD388lGhfXTppBozBwlhHo qxtp9i2/XipJY+wrBw22Mo3sbtY 2020-04-19 21:00:03 163.172.182.54 4086 9684 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=912 +p reject 1-65535 +r huskytail SlFHlS7jVTT3tpOH/z1AjI7mbWg vzlGuIGHCawb10HaqU/LyRlQ+uo 2020-04-20 07:56:17 176.107.179.147 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5290 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 SmAv+nTNmiqgoOxD1pa4hUwnuCY wVpwbVms4r+m6p6Taa6EMXthrr4 2020-04-20 07:39:41 72.230.78.85 33979 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1590 +p reject 1-65535 +r Unnamed Smn5ImthE7BoHVyTu9YNX8y+SBc G8DcjNgDDwFYODZeeCs/mcTgei4 2020-04-20 01:27:04 78.34.190.155 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=229 +p reject 1-65535 +r spechttor3 SnJJK6zngVVU5F9Kua8F1UkTbY8 bVsdZMsy8jS2EUhEC4zlf7zwS48 2020-04-20 00:11:33 185.15.246.243 143 0 +a [2001:4ba0:dead:b602:c6ea:90ca:4bed:2b51]:143 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6490 +p reject 1-65535 +r merecu So9SIe7PMNXRLVzYMSrlmc3YyW4 lvCiYQBJOkL+3GZEZrVP6pj5f6Y 2020-04-19 22:30:46 186.123.111.156 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=78 +p reject 1-65535 +r orbou SqI0x2el6AWE4gtmPfWzn5Lc4s8 WsiefvA4urN2mhGVOLHeOOKrs2g 2020-04-19 21:27:20 178.17.170.96 443 80 +a [2a00:1dc0:caff:fc::ec9b]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5580 +p reject 1-65535 +r shermbot5000 Sr/qvoCa65H/l/FBLNV8o79s5Lc TAosvNxx4oGHyzVEo07yli06v9g 2020-04-20 10:05:53 107.150.23.186 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1400 +p reject 1-65535 +r Stellvia SsTxIMEZxyNWvJwzvxTibSvwUtQ /YOuQ8O4BQ2rHaNPQUI/JQDuVEg 2020-04-19 22:54:40 155.4.117.13 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22400 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 SsaatycIytRUFxQ+eINhjqqLLQU 9O+LOBVRwNbD3pvNxwzmG4BNPj0 2020-04-20 11:10:26 5.12.32.140 35123 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1860 +p reject 1-65535 +r niftyguard41 StC0Cw/GecwwDzmLzr6dAAgz9iw 3XOHuKOmVmlr3S6DyovQypSyWX8 2020-04-19 22:15:43 185.220.101.160 1160 2160 +a [2a0b:f4c2:1::160]:1160 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28300 +p reject 25 +r niftywabbit15 StnBFqGULVinFEM8ok8IfxgDan4 q+Q/wPluiteqSMnrvGbIk6daYig 2020-04-19 22:15:36 185.220.101.155 13155 14155 +a [2a0b:f4c2:1::155]:10155 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29000 +p accept 80,443 +r snap278 St0chlvvj3UH3RRLv/6pVPCUnMk 68rFBxrnOhlrxOobkRP5uA8nu2A 2020-04-20 08:52:34 77.37.177.8 43041 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1390 +p reject 1-65535 +r Robotor3200 SuHPZ5tIpsZGH2QVw39EMGprfuw yfcOWkjEvYtCUnzrPsmd9nXyAcI 2020-04-20 00:21:02 54.37.229.22 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=130 +p reject 1-65535 +r PankyDE3 SuxhL0OgQCpV+PGW81k8oEsAA+g m0NeTuVf7aQl2aDX1gwPt8hmcbE 2020-04-20 02:03:48 213.226.68.77 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8950 +p reject 1-65535 +r Qayshaun Svy+9hZdF/SBSiiKifUmHcA/xq0 gVR0sR9wJZRRalSnTRvo/zvZ0UQ 2020-04-20 09:16:03 185.243.112.128 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7400 +p reject 1-65535 +r Unnamed SwBKSp6lui7M1NHNGUUswtbR6Og k+LfTkW2dmAF2n3Yl1rw0cGJJsc 2020-04-20 06:34:58 185.51.134.26 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5720 +p reject 1-65535 +r Unnamed SwJJNBm5KHYIcZWzzvFrNaFoPMY 5lvo72a22JSff2dc0QPW7L7nahI 2020-04-20 02:16:50 68.96.183.200 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1100 +p reject 1-65535 +r Unnamed SwX01i6DZi0Kq2wrNTOBMDJrcaI CoE1F6aBfG+AUqdiyMra+pEbk6k 2020-04-20 06:54:45 86.84.118.219 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14100 +p reject 1-65535 +r FreeSpeechForAll SxZ1gWjU8zS+EYcve2uuLkRmTls FweXp1NNrMgrIKtyCJyVmc8UifM 2020-04-20 11:53:47 51.158.180.246 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17000 +p reject 1-65535 +r birnenpfeffimitzimt SxcEdtCUWTKEOPPmjtGVFsn3WoA LOdjAtKFaYGBaHKcBG6EHuhboTs 2020-04-20 00:03:16 212.21.66.6 443 80 +a [2001:bf0:666::666]:8080 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r flexible SxsCqUwDFfA3blamrTqTx5duRp8 4CJW/rt3HGGgtmJ3McacB+3rwLA 2020-04-20 11:34:16 79.219.255.159 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p reject 1-65535 +r bourbon Sy6XyjusOisUh58QnplloMIDFsI nzU2UhU0PVjY0i1WkgU5eca6SMc 2020-04-20 02:19:27 185.12.45.116 9090 8080 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22900 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r idideditheconfig SzUVRd1YRz82sKIOVQCsbtUejNU xrS04sos2F3hLncUFxviJpGUYig 2020-04-20 07:20:05 90.145.175.245 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8800 +p reject 1-65535 +r wingedgods SzarSCqc6E+N/IgMimlxXu/IQ4Y oADx26tvjv1Wgz+uTK6cxsP+H/s 2020-04-20 00:31:47 173.160.180.189 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6 +p reject 1-65535 +r Unnamed SzrHS045cqdbj7v4imiagZErgpw nj7YNN6+W/73DSP2fJhHL3USHkQ 2020-04-19 23:49:12 108.6.209.163 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1320 +p reject 1-65535 +r Unnamed Sz4uKHIKdGeAYcI0GrSb9LGP5Q4 8nlCUPLMpi52lGfpg5LOp2i6dGg 2020-04-20 12:04:32 51.79.22.229 443 0 +s Fast Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1760 +p reject 1-65535 +r dousnior S018cntgPvZ3fcC8PRaRecqXcUA 1h4nZIpuxJy0i/8a6qpfy3Mi94Y 2020-04-20 00:33:25 158.255.7.61 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8550 +p accept 20,23,43,53,79,81,88,110,143,194,220,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r M87Star S1ND4IOrV02xz7Oikbr6kI1bNSA ly494K4FiQoKJZJ+NLekP2QaITY 2020-04-19 21:26:14 37.187.177.2 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r tubealloys S1gvP0u03lbXco3rIqolU1CHD5g HHiqaA+ctGx2Cq9sVzRUoBhvoig 2020-04-19 23:15:56 213.144.142.24 9001 9030 +a [2001:1620:ad1::24]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=421 +p reject 1-65535 +r TORion S2jQ5Tku1vNGmjeIBjE1OpZVhjE aOkolG89FBaaInSuiJWJzHmqsgs 2020-04-20 11:34:01 192.99.34.48 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18300 +p reject 1-65535 +r Maryl S3vwOPf4QbuPB6ZZ0VlCq2KhtRc 2K6vg1CvZKdkMBqAbexLs6M6eLI 2020-04-20 05:51:03 31.6.69.162 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57 +p reject 1-65535 +r Unnamed S5qvzjQkycpikIxnygtXVo+4fkA EO/jG6ZPkn5abyRVLrHQ7lu9Gk0 2020-04-20 10:20:16 51.15.235.73 9100 9101 +a [2001:bc8:4400:2c00::c:b09]:9100 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17700 +p reject 1-65535 +r 4thegreatergood S6Bgd+sFsUTR+w6QDlwa/nOGkQI rxEs4ck6yKRLfcD5yEpCjk1aE3s 2020-04-19 21:31:13 79.143.190.233 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2200 +p reject 1-65535 +r chark S6rED+31aJT7RwSEboWOLyC6aJg DL82E1p5PjL6SfE3cmKkA9CLo+U 2020-04-20 00:54:15 87.120.254.114 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r JoaoOliv1 S7D9f2xGfGn15UFgEdbVt6QNTto hK+AeFGo+8J/T6OL/a53S8mszMI 2020-04-20 09:51:35 188.251.254.142 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2120 +p reject 1-65535 +r Unnamed S8WIr1wboeLCSQh45dP1ppKeC7c Kx019tVTigMV5YjXfXw8jqrU5Uk 2020-04-20 11:59:26 209.141.55.175 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10100 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r orwell1 S8h0wpChQ46f88aE8crCrDUaEus yoSLxy0HI7obn9hZEVgPe9HWqVE 2020-04-19 19:17:28 185.243.9.150 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24000 +p reject 1-65535 +r dokachin S9Aua3KC412LT9Jgv/ylkDL5wLk pqWszaXDgFusVDt9q/8iQjD+9K4 2020-04-20 02:24:47 91.63.41.25 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7390 +p reject 1-65535 +r Unnamed S92N7EBgUAIHdpe/ohREch5Z2D4 bL0FCtfeNTC5Aq7uCk+ZcgGmIao 2020-04-19 19:38:33 158.69.172.231 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11200 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r georgector S+1o356vbBEdh3jhnMmsev7E/AI cwlFMdHxuq6ZLXKmudKWiu9qvdo 2020-04-19 23:12:33 92.30.36.13 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r angeltest33 S/PSmbxQDDUIaPB4dJKRx2bHqm8 GnTi/wNNFIC32/E1Rztgt+Vt460 2020-04-19 19:43:39 139.99.238.17 443 9030 +a [2402:1f00:8100:400::3a8]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=500 +p reject 1-65535 +r Unnamed S/d9vWeWYo7GrCn1ZRzuGWnscxU Wj2VHnlrla5jld1+TeJ3X22XHeI 2020-04-20 00:07:24 178.73.220.139 443 8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12600 +p reject 1-65535 +r karotte S/ycYxqT/0ujqoS8aTG0MQw4omM Lcf0R5aJ1igU/dl+QAGJtYlnzas 2020-04-20 02:22:30 109.70.100.4 443 80 +a [2a03:e600:100::4]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=96400 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r niftyguard54 TAfLM2XPPgalb9LcjspOl6ZSGYM UtYrXeia9BlF62oK08z+n43JPAI 2020-04-19 22:16:06 185.220.101.173 1173 2173 +a [2a0b:f4c2:1::173]:1173 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 25 +r tor7andersio TAkEXNbQm/IXINuT9/0yNjJbo4k 19Cm3gQZdVvWaIUwqalWIhwBG4I 2020-04-20 04:29:08 128.199.133.154 33443 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=655 +p reject 1-65535 +r An0n1m4t0R TDDawvdgK99JxHJ892CsejYP9Uc 7vMxoFej6GDmFYSaQhRu/be0vJw 2020-04-19 21:31:26 79.156.130.191 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4700 +p reject 1-65535 +r king TDa+INMNATCXlk0H3czsvBfPHf4 pX1z3ZQG3zZPMgDcooou+uGCgvk 2020-04-20 08:32:01 51.68.201.113 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed TDx85KqRPz67L7/QQ/otgaBaphk XKxlnkDDZ0ViN8zDGVFMpk4LBQU 2020-04-20 10:14:10 115.70.103.172 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=121 +p reject 1-65535 +r beastiewhale TD+0LLnwXCF6JZnOSZstjmsHO5s Tf5FId011WTkhLc4ij6amBhGVvc 2020-04-20 04:36:22 213.219.160.18 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=368 +p reject 1-65535 +r santiago TEQhE/FNB6jVhAy+Bc6Dfh4ghtY EWGlnx6swbGwWEyBvnWedHxO4qY 2020-04-20 03:59:34 187.144.211.132 443 9031 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=400 +p reject 1-65535 +r NoPublicShaming TEZ7kmNphggGMsAIMYTs2h/k7DU +5tdK0xSs1YPRtnIBru9Gts4hrY 2020-04-20 10:10:47 80.153.241.169 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49 +p reject 1-65535 +r Viserion TFuBNDQeZssJJGmF5AOfm/wK3OM 3XKaDr1UKWnipyHPuy6E6el0Wiw 2020-04-20 09:08:11 185.225.69.60 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17600 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Unnamed TIIPi9O6ZooRkB4xX/RW6kL7uRE DVfudFo0yMntcQfmTTuNTCgV/tI 2020-04-20 11:52:23 205.185.127.112 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5640 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed TIp46Vcqz2iWFWBvPIJT39iJ5pk jmhlgDMZmZZjrHXrUywUKHSC5JI 2020-04-20 07:25:19 185.113.140.110 51282 30931 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=305 +p reject 1-65535 +r Unnamed TKX4Ya38sHeYYbVPrlF+y2qw10g oFnkzOzUkw5x1WVb+lSHJxGjIDM 2020-04-19 20:29:08 46.229.55.97 32625 36918 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=225 +p reject 1-65535 +r grumpytechie1 TKZOZ37P8jsTjP5wpqAulL3zqAU sga/qtapo96semx0DeLkaIIm+lk 2020-04-20 01:52:46 185.103.110.248 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14400 +p reject 1-65535 +r CodePoet76 TKeCzgCtvN25PeP8rPhERTU9d3I hC9Sq8wQzKajTC7R9X+euwM/iDs 2020-04-20 01:21:57 50.53.115.97 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=250 +p reject 1-65535 +r mullbinde6 TKjQeHj4btW2S0uJAw/0YWBnIQ8 LmtfIlO3nhBlm9EaiY5Raf6oAq4 2020-04-19 18:58:36 88.99.217.110 9001 9030 +a [2a01:4f8:10a:4253:3::8]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r relaytorforall TLLepnx2M8/FEKfnJYTJyixYlk4 qXu/tO/INH8oz5NSGILfAUMYJ5Q 2020-04-20 08:47:03 103.240.90.197 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=644 +p reject 1-65535 +r snap278 TLb0NHLSBTGUCEvr+k04YQWUGsY H43KfdH3v5fuJY1+RLNcI5KFTs8 2020-04-20 12:13:10 93.157.112.147 35441 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r henkdefreumel TNTf/vOXHJAqIhANkRysY5vi71w BIfKyeky3UqH4VHyrK/Ol1BcdNU 2020-04-20 12:08:42 82.197.218.97 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=52000 +p reject 1-65535 +r raffertz TNzIM/twufORVSL9yQ5SxTH+7Ek h5XwMIoiysGiYMoXngBGlGWyDVY 2020-04-20 05:13:16 81.17.30.33 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5100 +p reject 1-65535 +r gricia TOsbaYRT25PlmmEBHDzcanw7ZKY IdW5O10agWnlR4GZjwIX/IE+4zs 2020-04-19 22:33:26 83.212.126.115 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2970 +p reject 1-65535 +r moxon TPBedd0joY5uVoHEAR5SVHhKPuA CB31JCZOv7+HJcWOp1aDIQbbdZg 2020-04-20 05:31:28 164.132.9.199 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1930 +p accept 20-23,43,53,79-81,88,194,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Berkeley2 TPm66w3m1yMNa32g/0IMfP2GOIU ejQqJcgjgB9MwTi+4hQfEslEy28 2020-04-20 06:36:11 135.180.15.250 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5100 +p reject 1-65535 +r quester TP5l4W2+nZ7Qz/vZvu7k6uUM0z8 hZ45uMMvc2RVIFO+tfqL7v6rOYc 2020-04-19 23:26:25 91.236.116.87 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=28500 +p reject 1-65535 +r SpaceJam TQLSfIjhvucm08RMe9eEPA6SrbI yF2A81NGUYqVChWPohG3BE8IU4c 2020-04-20 08:07:24 139.162.245.120 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=990 +p reject 1-65535 +r artikel5ev8 TQ30aNyBb4CWcCwtosb9Z1Yfgcg PNXi1l3oGLEzduB3dzdsDOq7k+8 2020-04-19 21:36:47 46.232.251.191 443 9030 +a [2a03:4000:2b:66e:dead:beef:ca1f:1337]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r honeycomb TReT1CP9sZaOqnRV68BwoOSLM+0 KTDWGpf/NaywkN5MWLbyQCYBrkk 2020-04-19 19:55:08 104.168.205.106 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r Bucefalo TR26P3H8etA8fm7nAUr6YQ7wAVI PMdTQ3GkPQkhwj2hibceYh5nyF4 2020-04-20 04:28:07 85.0.159.53 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49 +p reject 1-65535 +r snap277 TSVTDo2c2vYmKCPA38DO6Z436Zw XP8jRsX/UIjJIkChHIGATBzlld4 2020-04-20 11:31:32 90.209.72.226 33722 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5 +p reject 1-65535 +r nigelFarageWozEre TS/LPGVK1q/KSvh+h65yc19kPYs PhCuBB3+8j6TG9z0EBFpBwDy0bM 2020-04-20 06:59:19 37.187.120.37 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=580 +p reject 1-65535 +r Unnamed TUkx4LioPzPfgRJ/EMZS2K9DeHo QL4nrvnL/3Zrmk4qrcWUFubmp+c 2020-04-19 19:02:00 167.114.89.200 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r TheGreenDynamo TUk4tyW4lWF3OhYSFdiLfEXEPDU 3aHsZW/eYlu9Tc4LNIOmq/ICyZg 2020-04-20 07:01:06 104.131.108.7 9001 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1350 +p reject 1-65535 +r stormwind TVKhLZrSKn4b5bVklTp8qcMdpnU oAsh25pflSLrG8nx907M9g+qDws 2020-04-20 04:57:16 178.132.0.6 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r pirelay001 TVLhXFY3+3BzbdOwPyqufCU79LQ TMMH1a3CtoT5XRAn1oMQX4bEd6U 2020-04-20 01:13:52 170.10.183.168 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4170 +p reject 1-65535 +r arbitraryTessa1 TXDwXdMIoupbZx5ECHm/rayShg8 9OVbzKi8gSpIp/L81/Hb0cQqLGU 2020-04-19 23:22:19 95.216.19.207 21 0 +a [2a01:4f9:2a:1430::2]:21 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23200 +p reject 1-65535 +r themossyboulderspa TXkWlji12vghswYkcl/TQY+FCt4 iSgReN/PGovDMWLokU62TLfO2mo 2020-04-20 08:17:06 45.114.130.4 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35 +p accept 20-23,43,53,79-81,88,194,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r nganukadaskurap TXt9EyjhKhgNTz3zYHZd3Z9E+34 rSBkT+tKRh/6rBzYTS+kr4FwxPQ 2020-04-19 21:04:45 35.240.161.41 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=468 +p reject 1-65535 +r fancyorguk01 TaxDZ+CQM6dC232u3T7oII32MVg yvEfVC+CQG1Tc6GysLFRlLoDzLs 2020-04-19 20:37:48 78.32.231.155 9001 0 +a [2001:470:6d29::24]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=290 +p reject 1-65535 +r Demogorgon TbBJCgQggJqBSed4u6yPHpNJ2ew +VLfJTCiiJkJVqueFTuLqTaJc90 2020-04-20 06:08:03 80.211.185.153 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26900 +p reject 1-65535 +r diodeOnion TdEcPxH14okdV++fffQ77htRT84 pGL47BttYyk5Xu2MaNRc7TD4sZM 2020-04-19 20:50:44 99.149.215.67 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2900 +p reject 1-65535 +r Unnamed Tdi0b+ZtFVe9lEdzvniTx1vlLXw XK+i6wfJR6RQpDyJcb2HfWQrQjA 2020-04-20 10:20:52 51.68.199.219 9001 9030 +a [2001:41d0:801:2000::1a37]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r nemesis Td6Q4vaFkh8RWZS2zWfx/gRwTaU +TIc14zH/4fyqdt63bATDV//kHQ 2020-04-20 08:16:10 70.63.170.86 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=52 +p reject 1-65535 +r lalatorrelay TeTwbAGexIFNSGUkwqKCwdx2U94 irxK8FEnk67zzIXOgrnhg4k7h34 2020-04-20 11:36:12 99.105.213.162 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1900 +p reject 1-65535 +r s4nine TeacHSPtt4TPHau51gKtInZ6fxU h22alxDpnXDXtxdxsGtT/Ir40vw 2020-04-20 02:54:02 104.248.29.127 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1350 +p reject 1-65535 +r Unnamed TfHzDAAb8Hfn9GYc09QNO7QWC2U ASfEZpydyoSW21qYstrKPvHBOvM 2020-04-20 11:15:50 46.105.191.88 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r minotor ThUImIy5SrjbPJO3yW+tVHdB6cM meiNk25/LQ/NuvmqLl2QsoZbYjY 2020-04-20 05:44:38 67.165.9.74 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=37 +p reject 1-65535 +r Eliise04 ThdSepsn2seWWFw/Nx4mdu+G+8s mQCVmoELsw+0oRGZvxlSeo7lIqs 2020-04-20 01:19:11 185.195.237.117 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r BeGayDoCrimes Ti99Myb7zjAFV7mv9GPMQ0qt0SA grvDdAd7WueKa52Za2346WT+7Ys 2020-04-20 00:31:17 23.129.64.189 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p accept 1-65535 +r snap277 TjI7bW7qATTHQxGwITmhiZu0I5Y yvxQVdF7ocFrJ/nKamXv2BCFhLE 2020-04-20 02:03:28 24.171.142.153 44357 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r nodvrelay27 TjK37JXjqBniu0mdBQZTJFfengQ H+9NsIW57q/moEpCVIfiy62APSU 2020-04-19 22:15:14 104.167.107.104 9001 9000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2190 +p reject 1-65535 +r Tessa TkGwD5MPPnJTDzOe9MkRzpfSrp4 fL2GfVEuaJrs44Ar+yyiqy43GkY 2020-04-20 09:00:11 104.37.251.124 12800 12600 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p reject 1-65535 +r ECANTorTOKA TlWeMCeQkjFb+QfavfAHIEc/gyA wHLUbCsCvv134chGVEMrpPi/nvk 2020-04-20 06:26:23 172.105.199.17 443 80 +a [2400:8902::f03c:92ff:fea8:ab95]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=392 +p reject 1-65535 +r NamsanTor TlhozCjEZuLJfe82LnmQoaM2xNM bDDreodl7ZR/njwExVIkI5Auw4E 2020-04-20 06:41:17 139.162.30.247 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=280 +p reject 1-65535 +r Yesenia TmblQQC6JFXkn48C0zb8sqa01Pg p1DarqqiOfBXN59dZ9O3b4Cp/Co 2020-04-20 04:49:19 46.183.216.152 25369 0 +s Fast Running V2Dir Valid +v Tor 0.2.9.15 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=5610 +p reject 1-65535 +r fento TnN7v8y+RakjzoJXfpnc/6vFv/Q I++7AbxmIhZpDr8b+qdSVKhW5JM 2020-04-19 20:16:31 81.17.30.48 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8700 +p reject 1-65535 +r Rasengan TolgccpqcS+py9DjabdZYmVMDRs pgpbbm3pgXbeJ2itkIYzju58GA4 2020-04-20 11:43:10 139.162.66.246 9001 0 +a [2400:8902::f03c:91ff:fe7d:e808]:9001 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=750 +p reject 1-65535 +r ymkeo Tozm9WUec0LB5+XtAx6CB4E0+w0 0tG7iEjG7W2i1TyoP2ONbosS/IE 2020-04-19 20:43:49 82.161.212.209 9001 9030 +a [2001:980:d7ed:1:ff:60ff:fe1e:4473]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=290 +p reject 1-65535 +r makeuseofIT TpG2ZWHuAbFlPhgD/lO1xADZZ9s ZT5q0kLiKvlxZQL82L9yTczSnbU 2020-04-19 22:41:15 87.154.216.112 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11800 +p reject 1-65535 +r brwyatt2 TpeWSBwedfddV+jB/IyO0RFDMxY ol3MbBjwtO/LnpEGK2JkqnsL8iI 2020-04-19 19:28:43 172.92.156.32 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9400 +p reject 1-65535 +r summalummadooma TpiqKVtxcZltGN0fahn2SrQDa0o JKqvEaY/01vwjfLA5onwpM+lvEE 2020-04-19 23:09:44 213.239.213.190 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=80300 +p reject 1-65535 +r estrade TqOBocr0QiwUIBtL95kDmUKpf/0 aQx4P8HSRpBnMNF+D2y9abHo5Rk 2020-04-20 11:13:05 101.55.125.10 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=175 +p reject 1-65535 +r d15a6fa9eb8c TqfzEaK9stuXaFmGD2ydfbFCJQ8 xgBvXNu2RM3vThvGmR3y01gu51E 2020-04-20 08:46:15 51.81.253.215 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snapfeli Tqyx30vUJSSupqG4AmYXsb9ZBFw C4u0UhlIQdZMCmfOq/VCHFWNAYk 2020-04-19 19:20:20 66.85.74.226 443 9030 +a [2604:5800:0:68:8000::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6290 +p reject 1-65535 +r torpidsDEisppro TrVWefqRNjuXNyVU+Nx8Y/TlsQE B3fpoq2QAtpYPaY5j/y+bh3jKSI 2020-04-19 19:15:47 81.7.13.84 443 80 +a [2a02:180:1:1::5b8f:538c]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9570 +p reject 1-65535 +r ForJusticeDammit Tr47GPfTjQov3We0elXLkGk2hyM RHbJdMfU3qxxTXdvBomTkrGXLkQ 2020-04-19 21:08:24 5.9.68.49 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30000 +p reject 1-65535 +r Dutch03 TsBVD/w32IOJLkyspJ+cKbsebs0 gWBPBVxvrwqwGgZKpIHD5HHjIIw 2020-04-20 11:27:07 212.47.238.203 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13200 +p reject 1-65535 +r cadbury Tsh6q+mGd5bSbNSx0qBoJAGAcoA jXokwcMlyyOaW4c/AcqXTQF6acQ 2020-04-20 02:27:08 88.202.128.193 46327 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56200 +p reject 1-65535 +r fuzzycat TsvzfklT9IqgLKMK6Sl4khiwfIA gMUdOAzeXHKmdKx41A1tP8/8VZY 2020-04-19 22:41:18 35.170.77.224 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13700 +p reject 1-65535 +r Anabelle TtA5gbkGe8wIpWU2LebTobPVglk bm6YgG+z0qRX7yyTW9a/rA+u1Pg 2020-04-20 02:36:22 191.235.114.74 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=475 +p reject 1-65535 +r FOO TtJayMbN6rrB7CFWKW1siPi3Uto oqFOwMT9IXRBqjDtqnPdVSHaiQw 2020-04-19 22:26:39 178.175.148.46 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=10000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r bedrock TtM0FZUvpS25VBGh2oZmPsGxCbk 7zdGzyvL7s40aB/WkLus98Rt2l8 2020-04-20 11:58:18 173.255.228.134 110 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=810 +p reject 1-65535 +r SNEIPAS TtUUXJicTJasyDciJN6N+t+AZt4 dTPvf5GU5D2dwVnxgbMmRFVVWs8 2020-04-20 05:25:52 128.199.232.56 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=150 +p reject 1-65535 +r Unnamed Tuqcq49k58qbE1U+hbkq/wZO1Is bfLjeUNMTFJUh74yKPtyKDGnW0c 2020-04-20 10:23:49 91.219.238.115 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4750 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r nt892 Tu5ErpIrMNDtoGq6G9kky0PoCD4 UWbEJYDL96XWDi0qQU9pMcUy7dw 2020-04-19 20:25:01 46.4.102.254 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r tazzwei TvKPCsun24P1Ms9knbE6AML5/fI zj0BjnGvqo4ySaKtBLEcOISX6VY 2020-04-20 06:57:39 193.104.220.94 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p reject 1-65535 +r g0rynnas TvvNpbbFG4s95Bd3z3FcAk2VauQ cyWDFL3JKPyBwzJAHRJf6is12mg 2020-04-20 00:49:11 95.165.141.43 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14 +p reject 1-65535 +r Binnacle Tw235of8fArlXI8kPaiw6yf78fI YFwbalPp1AOi1Mb7po84NPWvbuM 2020-04-19 20:47:10 108.53.208.157 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13600 +p reject 1-65535 +r Unnamed Tw5dThhMQOK5qJZkAFswih3uN1Y yPwLJCsJmr3O5jy7eQGiYyJYvp4 2020-04-19 20:54:04 51.75.143.146 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=16700 +p reject 1-65535 +r Whiterose TxHyRvhxyJOggHuJcBJlEpbXNwk WoGjw3SdknpG3Yq1Em+XNoRBdYA 2020-04-19 19:19:27 176.150.229.7 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2840 +p reject 1-65535 +r HamburgsTor TxvkAL92Qz8rGsSmEy/nMy/buDU ggTuylGhNRbzmTXR+zee7BferBo 2020-04-20 02:17:56 77.0.165.74 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1070 +p reject 1-65535 +r greenonion Ty8PTabnOCs5j5B+TFufH8LMo9s NOuI7T9NxtPLPVBoAuTjLsIz2Y4 2020-04-20 01:15:10 192.236.160.88 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 FlowCtrl=1 +w Bandwidth=101 +p reject 1-65535 +r CottasRelay TzBW6dS6w47CEABjdFIhVTYw7Ms 6pQKmqzaOT0QUtOm9nBYGhDI4ao 2020-04-19 21:57:48 212.186.71.38 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2000 +p reject 1-65535 +r Fission03 T1ABV6v3ChqUY20minQqiyJ7i/0 PtPNMbbdFd9XCVAjxzYGVmc7gUg 2020-04-19 19:25:51 149.56.94.218 443 80 +a [2001:470:b14a::6]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9760 +p reject 1-65535 +r jpltorrelay T3j9Q+xehjKtXbbQsk+/Wf65ezs TrsQp3QBIbv65K2XwDFzSjhghwg 2020-04-20 05:03:12 71.82.37.4 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59 +p reject 1-65535 +r 0x616e6f6e T3p6YdICNLLEU/uM0wFMEA8eDeM 1I5hnrufCAJ782LG0baA1Wn5PVM 2020-04-20 10:25:57 104.244.76.69 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10800 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r walledRelay1 T5kCOReW2g1wFmd7ZiyhkTQATOc irpy/vvn4o43ir4/p17XEnZONso 2020-04-20 12:08:50 81.7.8.79 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r ATRinRO T5vjpUlzDUtXBeG4nWN8qCSlfaE VpboGgkhwH0vpXZCGurwr7dA5gU 2020-04-20 08:53:52 45.14.150.136 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=853 +p reject 1-65535 +r allcats T6H0AfjD6DJgMeeZQEW+Z/NgM6Y I2Ko5xEfG1JRqsOnNXejp2dP4bQ 2020-04-20 04:02:51 198.96.155.9 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=640 +p reject 1-65535 +r Unnamed T6tm3TbPU6TR+NkzA3+lCa3gY7o SEYDgnk376EB6mCMvgKSZGURju4 2020-04-20 06:29:48 165.227.216.31 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=791 +p reject 1-65535 +r mrkvotor T7jChmf3hcnMmL9zF8dtrsgHLm8 r+WjOsTK6bfjVZ3Sf46jEn4jeko 2020-04-19 21:59:45 80.79.23.7 443 9030 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53 +p accept 20-23,43,53,79-81,88,110,143,194,220,443,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19294,19638 +r stefn T8ZajqBfBVNWdLsgZQmP1Af+zSI apn8q7PObxwtSnPsfYZL24Lwx6k 2020-04-20 11:52:33 5.9.12.212 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15 +p reject 1-65535 +r Unnamed T9ro1sdhtM5EF14cFdHeH48t8do OlciAeFOa6w6ZuVBtnZHWQSihRA 2020-04-20 00:56:54 85.92.108.200 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r FissionEx3 T9361Rsk3au2L7WQcfTcQh52xoU kjofwztVdNwDok05GaGigIZ2WnY 2020-04-19 23:01:33 159.69.207.20 443 80 +a [2a01:4f8:1c1c:6cde::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39400 +p reject 1-65535 +r Cicolina T+P9Z/LwbYrZKSF6NX9iP8fGktk B1ep1AKvPV3mM6iLEGwBaVAB5pE 2020-04-19 22:19:15 46.229.238.172 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19900 +p reject 1-65535 +r snap277 T+4ylQZfzNA6+sVnvAGlmHfkows UxaJZeGv5E5WjfV6NQqMyBhsNbY 2020-04-20 11:45:27 46.174.244.175 45591 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=502 +p reject 1-65535 +r RelayOnSatan T/VPuxc9lzYP/RhtL/ioXE7fzEM FfopNlVOkgNLyZg5mEL2u9UpBN0 2020-04-20 03:19:04 151.41.154.70 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2980 +p reject 1-65535 +r TykRelay08 T/jtfAcrX47ClkWBUea6u9a8MhE fc/SwuSXtA1TTO+QZn/3Aji1Vz4 2020-04-19 20:04:53 185.96.88.164 443 80 +a [2a00:4020:0:4:185:96:88:164]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29000 +p reject 1-65535 +r iSOcHTorRelay UAjkmVSsDKBWX+ivYdYWFyEqy8c Achv/Rwbd8bdWOLkTKiNZruCpQQ 2020-04-20 09:09:04 5.9.158.123 110 19030 +a [2a01:4f8:190:5176::123]:110 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1690 +p reject 1-65535 +r ididnteditheconfig UA1uPTtlzzHBDqxoIZM/YKeLDf4 dj71TlnOelwRq42gVJqM6y7zvnQ 2020-04-19 22:13:49 198.54.128.69 6285 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=260 +p reject 1-65535 +r nastja UA/k1rUphVovlaDLNPKhDViJ6ME uUz+fI47PlwS/4+Y33F0hWrD5OY 2020-04-19 22:45:16 134.19.177.109 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=95000 +p reject 1-65535 +r ParadiseTorRelay1 UBD9t/+ET5hWMepXnxNhsbFyrZQ qIasowNOUq6EImvm8C3/SMykYqU 2020-04-20 02:21:53 83.168.200.204 80 110 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6190 +p reject 1-65535 +r CalyxInstitute04 UBs9vyULCUoFyl28QkrUw9RnIaI LApIZLpxVQyaxsmDk1KXQfGfHC4 2020-04-20 09:30:59 162.247.74.204 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31500 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r galates UCd0ugRm066benoOoiWcxiuDmKk +L0+KkBUGwjCPTRzlN6r6M2VUZQ 2020-04-20 09:12:29 94.16.118.23 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r ip7 UDmSWLX9KTkrrPazGXysphgpU+8 Oifz6g5cme4Ov88hK6Y3ibSOOCw 2020-04-20 01:20:50 51.15.177.65 443 8080 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24400 +p reject 25,119,135-139,445,563 +r AnonKorea00 UEAtPa2D6JI813FZFyhMhInFtes TleRuoTWcf8SJpdaARe3til8bfc 2020-04-20 12:18:42 52.141.33.89 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=294 +p reject 1-65535 +r H4ck3rm4n0m3g4 UEPl0unOmQZt8fvwsY4GWwgTGGM ahmQwfkpKZ1H3oZBRyr7M9CFjqE 2020-04-20 02:20:00 80.241.215.37 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r muffi UEeWLpev3InJue6YMi8+TLe+tjk jEXNkpEaNQr4fts1tW34WJxdaMY 2020-04-20 06:25:54 167.86.112.70 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7600 +p reject 1-65535 +r whiplash UE8j3HNEWdu6WLLxGkeZ65RRiKM v8ZHIsmSOqpLq7HoD2r2NGQ6+TU 2020-04-19 23:49:45 93.190.143.41 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24400 +p reject 1-65535 +r Jans UFhuJb4Gf9H3OZmFUO3csaFMpbI XyuAG/kPOvrDGJRmx6D3q2AJcGE 2020-04-20 02:35:05 212.51.149.23 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=762 +p reject 1-65535 +r d3xtor UGdjmUeSIImZUp0DwBZ3TIFDhqg pAf9k7BQC7hUsDEd2/DNin5S5Ng 2020-04-20 12:18:35 86.121.141.9 18213 9031 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24800 +p reject 1-65535 +r Unnamed UHwoxl67PRnvMfE4A3B3nhGYXQY iFAWab7olPkEEPnvLG3t4hCycQY 2020-04-20 01:14:28 159.203.22.51 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=88 +p reject 1-65535 +r CheenaTorExit3 UIJXWMwtpB3u9q4pyyCoA73Mb3k EykTJ7u3pvLVcQA0k78vKt1o9dM 2020-04-20 10:15:50 178.175.148.224 9001 9030 +a [2a00:1dc0:caff:14e::9ecd]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4010 +p reject 22,25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r JdMtOrReLaY1 UI6qpTIse/BIyPrbv7N9Cj4dkmI XirIQKPq886hHs6ueGAgTszApCA 2020-04-20 05:14:05 159.69.184.172 443 9030 +a [2a01:4f8:c010:189b::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9180 +p reject 1-65535 +r ASock UJmqlFN/Ls615PKwXhQr7BOAdto s7x8MmyewdQZS2CyzyVz8p43Q18 2020-04-19 18:54:23 103.234.220.195 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=98 +p accept 20-21,43,53,80,443,873,989-992,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r zwiebeltoralf2 UJ6rTF0QyamiS06gzkAsBHotZOY twXDxpCZT3A29eqWJC03AdPV6IY 2020-04-19 20:48:24 5.9.158.75 9001 9030 +a [2a01:4f8:190:514a::2]:9001 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=82600 +p accept 53,563,706,749,853,873,994,1194,1293,1500,1533,1677,1755,2083,5190,5222-5223,5228,5269,5280,6667,6679,6697,7777,8074,8232-8233,8332-8333,9418,11371,19638,50002,64738 +r niftywabbit18 UKDPtlTTn0IPUtNisd9QoSsz1aA CEXwodUsJf/6jyjYY/yOr+fVep8 2020-04-20 10:54:18 185.220.101.248 10248 20248 +a [2a0b:f4c2:2::248]:10248 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19400 +p reject 25 +r erbridge UKQ5eDJLtX6EnqPcZ7a0h8ugjOY Q1GBpWXdc4yryPPnbSSoPkfl1Ww 2020-04-20 03:12:32 87.123.103.254 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=932 +p reject 1-65535 +r F3Netze UKqf6mo6YJaGJ2xM8MKhr7Lsyhs vxRdrdwuRAtwgRvQF677kdm7nz8 2020-04-20 07:05:15 185.220.100.241 9100 9101 +a [2a0b:f4c0:16c:14::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=65400 +p reject 25 +r Eepi ULa+Z3zggxUcAMTNRybZALrRhys 0xrREan6vTq6zX2ppBPVUNiPE+4 2020-04-19 19:51:03 62.78.196.84 9001 0 +a [2001:14ba:2300::64:1df1]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3220 +p reject 1-65535 +r niftydiatomys ULeHqfshQXv9e1BncH2/gtcdsRw 8Ln5ipnIjWq/CmbODCqk8VjKC/c 2020-04-19 22:15:53 185.220.101.139 1139 2139 +a [2a0b:f4c2:1::139]:1139 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59100 +p reject 22,25 +r ChristopheRelay ULrU5IZGeXeWEH7PAZIXhJUkcgI cYcCwV+l1c8XaBKJJo11Nz4Rn0c 2020-04-19 23:09:51 23.233.5.61 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=510 +p reject 1-65535 +r niftywabbit9 UNFHOiE9s0PpdmTHHAnSjsJpLLM J38aL2wt2JlwnvAGPCciEm+8pg4 2020-04-20 10:53:26 185.220.101.201 1201 2201 +a [2a0b:f4c2:2::201]:1201 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=74000 +p reject 25 +r snap277 UNgmrBkfR5KhSagSdOn4GIFVL5s juiS9qI9UhPj8NYARLh6A28w1dQ 2020-04-20 12:08:24 117.242.30.113 39073 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1 +p reject 1-65535 +r binar20140514 UOHenYpHs1B2RuWQ6v3+uUpI/Uw F5jtFCfdmGbKJJSQMaq1r05hRnM 2020-04-20 07:33:23 130.180.23.230 110 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=104 +p reject 1-65535 +r galaxy3 UOPOoNfrlkS4m5ZXQ3lyeRlnddU mliLimYrcryMH4xBRIHPu/+eoDc 2020-04-20 09:31:52 54.67.75.217 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4700 +p reject 1-65535 +r eclipse06 UPYhatcOJrn+cICDgKF1S9890OU 7w69q25qKTWjB8nklmjj/PyRhmg 2020-04-19 20:58:02 81.16.33.32 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r torpidsUSwholesale UQF2wHAF1Hsj5nlvAskyQaKaoOk /Kmggo0Ao9WvX9TZnjLmkZL3FUg 2020-04-19 22:05:08 69.30.215.42 443 80 +a [2604:4300:a:2e:21b:21ff:fe11:392]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20400 +p reject 1-65535 +r 2000me UQ8Usu/6jKQTHwkIHNaYLGFOpQg gqQli3nOmNYSvEyLaudUci7Isu4 2020-04-20 01:46:38 46.38.235.14 443 80 +a [2a03:4000:2:a11:3a58:da1f:cffa:1bc]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p accept 20-21,43,53,79-81,88,110,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1293,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,3128,3389,3690,4321,5190,5222-5223,5228,5900,8008,8080,8082,8443,8888,9418,11371,19294,64738 +r lolMordekaiser URQqHfZEUcd1DsuFeINkpooHzsI bVcTYSbssaxe6wCc3KdrTAStAUw 2020-04-20 12:20:48 82.223.17.164 8080 8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p reject 1-65535 +r MLTorNode02 UR9m5ASV47Reoh8AI99xTbSHJXo tGnRSRiGhyrSY8nm4Lrsz0A9qTU 2020-04-20 10:20:28 82.59.205.29 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3800 +p reject 1-65535 +r ucube US1wHubFgfuZWedkL7iixLLRpGI GuEisiVhxBgg4WvXi83iDG+madY 2020-04-19 22:33:18 173.73.247.219 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56 +p reject 1-65535 +r LetoAms UTMp4999YeVxIC7YhuUnp0TuUvI B8M1OfyYT0wOxSI+c8Ve8/Qv56s 2020-04-20 01:33:57 193.110.157.151 443 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2620 +p accept 20-22,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r snap277 UTN9g9a9nNELJ0Qk6r3Z1DwzoIY RqKBA0M5qX4gJjOeFdHhl1HLY/4 2020-04-19 23:04:30 190.53.75.178 46791 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=58 +p reject 1-65535 +r stellaranomaly UTdMjaRZxnMp/9XHUCzK5BlJEMw AAi5YDixUDRcFtNQbBjc1a4m1qs 2020-04-20 12:31:51 96.65.68.193 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=800 +p reject 1-65535 +r verrueckt UTdT0sShJG3MISQcW+UCLMvSZFw PO7IzfcF+8e+ni6Wmnhd19pzoSo 2020-04-20 07:55:30 88.99.61.201 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=26300 +p reject 1-65535 +r apx1 UTd8SWgYVS4mNYOkTHlt8/sLxxs Yu+BXFFJMFwt42c7ik6JrItbGtQ 2020-04-19 23:52:40 185.107.47.215 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=64000 +p reject 22,25,194,465,587,994,6657,6660-6670,6697,7000-7005,7070,8000-8004,9000-9001,9998-9999 +r Unnamed UThTb7WYFM9lVZqolSavhlCsQx0 CBxP5/n+O4pv3B/1IMWIfm+L7co 2020-04-20 11:47:37 185.82.216.57 42899 39793 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=97 +p reject 1-65535 +r Unnamed UWA0/xXJbOhB7M2HbvYEgCqlxlA HjVVIVJ3/kvZ5ZuNZJih7XHYtf8 2020-04-19 19:54:13 89.163.225.115 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23200 +p reject 1-65535 +r Artorias UXByDpVAkOYoMD7x87rv2sRTR5E ZOE1rdUX/1VkMv78VaFd+nNarlg 2020-04-20 04:13:31 191.232.244.192 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=454 +p reject 1-65535 +r Unnamed UYAK84sw7RRU3XTLQSutztX2BZM Z8L92nxgLt2xRASV3WnicOOgjTM 2020-04-20 06:57:25 37.191.206.197 8443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10900 +p reject 1-65535 +r snap277 UYjVdDN54Z66rzkSdLGFS3FOn70 Jq/sJdnVWHG6HBGNiij17lu6pyw 2020-04-19 20:27:49 212.45.92.231 44561 0 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=765 +p reject 1-65535 +r snap277 UZTR2guo8sDQmT5MFCAgbog+Mr0 3pBz3Zt0W57LzuVshtKXhKXZLyc 2020-04-20 11:13:54 102.103.66.73 44733 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3 +p reject 1-65535 +r nodvrelay18 UZXMI2HdYrYgMqjsf3qjUdVnwVM 0Sh8HK4ScqW0P9Kfgmkc1oI3jbo 2020-04-20 12:45:10 104.167.114.202 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2150 +p reject 1-65535 +r HEGX60RelayA UZfgsOeF41R3rLaD823mm4fmvv4 wRtIivem+oNPcCnnv8FY/Gs7rZ4 2020-04-20 06:09:25 45.76.116.56 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=109 +p reject 1-65535 +r whatever UabOk7ilBnPUkTs7Z1PoHACRRJg eBd+kQVef0kPVMzuXriNejqCix8 2020-04-20 04:27:37 213.144.156.192 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2630 +p reject 1-65535 +r notoriousgib UaiiKUTyKOotYBQ00SeGSxsLD4w YKbAJ7Xv2ovK2pb8krHUesgJkMc 2020-04-20 10:23:57 103.200.210.66 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=110 +p reject 1-65535 +r mycontribution Ua5WVsgc1BdHklOmNjoSOgB6IjM tlH7zdnmo7aMDpbgCMyFcHiyI9Y 2020-04-20 08:04:42 51.38.64.136 443 80 +a [2001:41d0:801:2000::270]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7400 +p accept 20-21,43,53,143,220,389,443,531,636,706,873,989-995,1194,1293,1723,1755,1863,2001,2086-2087,3690,5000-5051,5190,5222-5223,5228,5555,8082,8332-8333,8884-8892,9418,11371,11964-12966,19294,20001-56001,64738 +r wobble UbP8yrcUAR4xdyP6rLcY3Oxu5ec SSCIcK+Zzp6xEAnH0M1ITztvtVE 2020-04-19 23:59:20 174.34.225.215 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=810 +p reject 1-65535 +r NoBodyPi UcAJbz1+4qCCvDZ6Kfgcn82b8nM uUunw+wd5DqgL6B06bGuhxIklAM 2020-04-20 00:53:48 79.21.183.84 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26 +p reject 1-65535 +r Alpha Uc2dsANXQF/EGvD6UTaI0CvaDA4 s3HOkB3Ri/GlWsr77NEivN/dq/w 2020-04-20 11:10:31 31.131.2.19 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r TorMcTorFace UduL3O+LivxF+5YrVdvQ+MQL+c4 doDQBxzsFthPxW3vvcY514Xc3NI 2020-04-20 11:57:58 67.211.133.100 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10100 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed UeGL0iz2e/jBEI9+zJoCU7cv7Bg oNGV7jiJMph8F8iJjdIoeVFjMMI 2020-04-20 07:06:52 209.141.45.119 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4340 +p reject 1-65535 +r torpidsDEisppro3 UeHPYT/W+fEf4kdDyR1vmYGAfYI U4PXmM6LDxQrv7GxSOSAtZnchPI 2020-04-19 22:08:34 81.7.16.182 443 80 +a [2a02:180:1:1::517:10b6]:993 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3050 +p reject 1-65535 +r bing UfXagY4nMKKpbmlZipdgEhvvQoM Jx9J4HYdwu8dliYCBCpu+4zcF9M 2020-04-20 04:36:57 128.199.196.93 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=317 +p reject 1-65535 +r bosses2 Ufcz6sTf0SjPlXoU1fLcAjgD0aI hv9rKda5bhLfThlz2AynmzblaXI 2020-04-20 07:08:45 104.57.231.27 80 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7300 +p reject 1-65535 +r wille UgGdol90VV+GHo6rkechD1IW0d4 Kla3virlwMbrdnSK7js+AyyXnK4 2020-04-20 12:27:12 83.227.105.35 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=931 +p reject 1-65535 +r frenchonion UgJlZSY5Y6TafApzfkOFCVFAXNs h7ureGOaj1KmZ1erj36gsp/aok8 2020-04-20 06:54:03 51.91.121.255 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7680 +p reject 1-65535 +r anotherrelay1 UglSCYrsCKn68oAkgqYasb8urCo PUrccWVfThPaG2c/PzOTCSVZwaw 2020-04-20 07:04:01 144.76.118.86 9001 9030 +a [2a01:4f8:192:7355::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11100 +p reject 1-65535 +r niftywabbit11 UgyFq+bnMc7MKLEFWFQFP6ooBhs Fw3zgB6LL6motcKj65Bf4vZ9sow 2020-04-19 22:15:45 185.220.101.151 13151 14151 +a [2a0b:f4c2:1::151]:10151 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p accept 80,443 +r Unnamed UjZXx+7EN4sutJZZxJx5bys3ktw jcNprlXk74Tlv0L0IJn4vOlT/zg 2020-04-20 00:41:16 128.73.122.211 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4060 +p reject 1-65535 +r t1r Ul7jTBp7iaud9YUkbeMOMnApE/U DFg0Ly5iQlGANSDm50EjZh+kn60 2020-04-20 10:27:05 144.91.125.239 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p reject 1-65535 +r RMB2 Ul+mk5pjNFjYiGlFVHRjhkV6WB4 tGD9eVo5721dvqQIpQhLz8P0bmc 2020-04-20 02:07:22 91.8.210.123 80 9040 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2980 +p reject 1-65535 +r Theoden UmJVbUSn8kNJkP3hrnlzxn30nlg UgQKrSGtF0opfqgESTjWjQa5mGg 2020-04-19 19:24:06 176.223.141.106 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13400 +p reject 1-65535 +r Unnamed UnL666bCe7hQhCpds2WxuGZYU5s 8D7bY7FmIVIErzu1F2NOrdMPHPI 2020-04-19 19:37:02 185.219.133.40 84 21706 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=530 +p reject 1-65535 +r Dutch04 UpOoMfDvUUYLN7N8I5vJdcB36SA cXsJs9y9YyDivpRVME+Mih5VALM 2020-04-20 01:20:34 212.47.247.109 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r BobsHouseLU01 UpUoYLgQed5zEGIhbwRD24nBR5A /NRESHFU8pZMWHdgrbkesgroIq0 2020-04-20 09:58:48 104.244.79.77 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6940 +p reject 1-65535 +r Jarvis UpcFShLOGGZgogZCTPZgjaJm98o JxNeRLkaTLSvMF0QdNig2HxemCQ 2020-04-20 05:38:38 82.158.117.162 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r asfnutt Upyj6witbsF5G1EQqjVApM+hGX8 ++nbelDOuzRMDPsU5NOfqGFrgos 2020-04-20 01:31:44 193.150.22.27 9001 9030 +a [2001:67c:24e4:10::27]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r morata Up2chODWphQdQJwbAtuBsrjo6XM 15RL8UEyF7VDjCnjX7hYFAOQA0c 2020-04-20 12:46:47 103.236.201.88 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=530 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r KienjochFR UqAi8W2M2/AZ4TLxU4oXmPFnlzo RCy2oVF3PF0fAC3OO7wu21u9LmY 2020-04-19 18:51:16 51.158.170.28 443 9030 +a [2001:bc8:1828:2b::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=26000 +p reject 1-65535 +r TangerineNao UquHZ+Eww1GZIMdwcucvNHl5quk 6KSiye04fbs6GITBPdfg3VBfhuk 2020-04-20 05:49:42 132.145.49.42 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2070 +p reject 1-65535 +r Unnamed UqyMgu1p/YV9wpfjvNjacBQuZAs +YUUXN0WTSvqeHo7TMxiJSdkoMs 2020-04-20 12:00:14 167.114.89.198 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8860 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ieditedtheconfig UrOMeDFLWVt4TXzBvfpzpjgYcm8 780AUMnoc5fvY39tTDsgz7mOAZk 2020-04-20 00:11:37 116.108.127.28 443 80 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=141 +p reject 1-65535 +r AmirTaaki4President UraHZOJssE2uOr4foBgm7yc3bGg RM2HFT5W5B2gsdNrWVk14SvNVys 2020-04-19 22:00:13 46.101.178.190 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2630 +p reject 1-65535 +r BeastieJoy63 Ur+tqL6qAbpGyPdn+DwY4v5Qwbk 8ccWd0hPfqudqq4fbT7UkxrX+hw 2020-04-20 09:43:00 85.25.159.65 80 995 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23700 +p reject 1-65535 +r jesuislavache UsGJ/wH99/oXfWZ4w002L3vEXoU QxOFezbcj9yE7LQZDJZXhUPC+CA 2020-04-19 19:50:35 93.23.182.133 3456 3457 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=388 +p reject 1-65535 +r Unnamed UslYf6YTwBE4E12j3z5dcldSRi4 L/l1J2UJW7zsIVwsMsXDeXNotrY 2020-04-20 06:23:49 139.99.55.186 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=570 +p reject 1-65535 +r snap277 UtPYgnbSN2xTMnTbXZBpBs2ZePQ CNNv9Uro92+DGZHV2DJu8BPPq+o 2020-04-20 09:05:56 87.231.31.74 40749 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=96 +p reject 1-65535 +r hellebuz UtX7IATGcSfHO3FHgjj6ZhIr1EM j++EzUMlRPDVFqcBTo2ua7DB40w 2020-04-20 11:37:02 62.210.181.119 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48000 +p reject 1-65535 +r Unnamed Utazc5Bp109eBaOOB3PBZiFKQgA dkVcidn4xQ60V9NqJPpWqWyrgmw 2020-04-19 20:59:57 69.4.82.204 9001 9030 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17700 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r TVISION02 UuAYVj+jHRPWd24Il69oqj4h6gg h+wk0NthkQuIt4yI/Y8oJIHCfp0 2020-04-20 11:31:31 80.127.107.179 443 0 +a [2001:981:4a22:c::6]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4330 +p reject 1-65535 +r OctopusMulitplier UuSASo21X3lgSsA2ESJoIK7aG/o slHHoXeHdE7s8JkXvXdDmknIMns 2020-04-19 21:04:00 63.140.30.205 9111 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1000 +p reject 1-65535 +r chasm UvDJOMvL9CQxD3pPtWM/Zk3eEhc 5zZP35d406qorWOO35l3zYu8yV4 2020-04-19 23:12:48 89.111.20.20 443 2013 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.10 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=834 +p reject 1-65535 +r spargel UwJ3hmRmoUJfQ6c9v8tfx0EMmFI YE3XyQdiRikh0X7XheWE43XG+pY 2020-04-20 01:17:16 109.70.100.1 443 80 +a [2a03:e600:100::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=92600 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r pineapple Uwz4YEoMca0RP58548knprlSL2U e6BdVmc5YuqSESXIy/d9QDxlFHc 2020-04-19 22:29:40 79.207.112.56 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r FriendlyExitNode2 UxGFvIFCQiWwHQe1DPauFR39npM CZoRgqqOt0AA9b19XNGo/HE65JY 2020-04-19 20:53:53 209.141.45.189 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39100 +p reject 25,465,587 +r Fission08 UxNNljfZ++Vl+h46+CsjzJZMVtY /XVy1XpF+nUUcLcKeHUK2rxdFKM 2020-04-20 11:25:08 37.59.76.255 443 80 +a [2001:470:c91a::7]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34200 +p reject 1-65535 +r nicetorbox3452234 UyoIxQD12oXQxn2BzioT64h+NCc LEr3cGipDPPWA2Pq0oPvc1x/SNA 2020-04-20 12:43:21 81.187.237.57 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.12 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=41 +p reject 1-65535 +r Unnamed UytcrPUXhy7nILU9cbxJnEeWTrE HJ6Gqfy5fWZseU0gj5YfWRjCyXo 2020-04-20 07:09:44 71.19.251.218 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1600 +p reject 1-65535 +r ethergeist U0EtzFVTNbQA23J1DtC+CNA013k qd1Prc/Nat4a6Qg1y6pXvJpDkc4 2020-04-20 09:45:16 176.9.28.164 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4080 +p reject 1-65535 +r revostrips U1hpSs7KQ0MCXj8pOrZ79hRGbXY Lq93q/RhIzVufOrGP3IU6VJdWDk 2020-04-20 10:31:12 195.123.245.8 9001 0 +s Exit Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r Nozel08 U17AnMnHb4ZGUZhZOqalqs123b4 dzWQCisCHP1C7cIsDJViIIO1ZHo 2020-04-20 11:54:44 51.158.22.87 443 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29800 +p reject 1-65535 +r berders U2irjZAzo1dynTV4YXpkk6tdo6g wHNFElmd7j/UQUAcWMNGh110P38 2020-04-20 02:55:51 147.135.4.38 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19700 +p reject 1-65535 +r KaarliVPS U338IBnHf/YKCim+81j39tbGhog xMwAY0BLtUOV285FdjEfHOOFQls 2020-04-20 09:58:04 91.134.137.99 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r Unnamed U4CHvqrlFpRI4DCk0FnoZrtMNJM YecyjgGyk60jpZbpw6rSWPN3H0s 2020-04-20 05:26:46 142.44.246.156 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 25 +r ip7 U5EGK7YvW4Eos4D3koWeyNzJr1I kLbD8dQl4/kHytZUvz6fVCOKK9U 2020-04-20 01:17:02 51.81.253.22 8000 8080 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 25,111,119,135-139,445,563 +r Nozel02 U5q8ya8P2AJ46JRXoWY9q66/gd0 HKp4nMgGhJ0C3cjOnhDL546Yf64 2020-04-20 03:46:52 163.172.210.193 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p reject 1-65535 +r a471165 U5+2xpPtGMcoLPOoeKSt1TheILY q2oC/Uia4y0j0BeQUJpcfnfbewc 2020-04-20 01:29:06 188.194.255.211 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5100 +p reject 1-65535 +r 42isNotTheAnswer U64XtVjfour1UbZQ9iYLPjH76tA wzsuNbjTh6Wmm6MUadWvW1msYEU 2020-04-20 05:56:36 46.165.253.180 443 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1850 +p reject 1-65535 +r Nicodeamuz U7N59AY7O5GySn3/zC9lM/UbMkU lXi2hYTvWmA+X/4WIuwEwIsOirU 2020-04-20 09:34:00 216.197.76.237 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2300 +p reject 1-65535 +r 2livebrew U7i1wqM8SJtUMA1Vi/7iw7EvOHU B+6323zivtmBQVX4EkOcLTuUfoU 2020-04-19 23:58:49 104.244.77.111 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3520 +p reject 1-65535 +r Aramis67 U8n0lU56czK7DGEMW44EygZa8ps A+NNBvkhY2mCeEUzmSmFhEwyNnk 2020-04-19 20:33:11 178.17.174.239 9001 0 +a [2a00:1dc0:caff:126::a5c9]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4490 +p reject 1-65535 +r niftywabbit4 U8vUKFkY8Wi5LQXKqbwM9Jnfcsc Nl37/fCFet7cMAfUPXuIX+Bt5PE 2020-04-20 10:52:49 185.220.101.196 1196 2196 +a [2a0b:f4c2:2::196]:1196 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=51300 +p reject 25 +r Oirat08 U80aHHD37VOuxOLrghs8o+bhb3A iltbv1HD7AhV7GD6zncTpATxo84 2020-04-19 19:19:43 81.177.255.154 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=958 +p accept 1-65535 +r Toready1 U9ebv+213hw89IObKHWFnOVNe7E zxCBXtekMJMzvy9WNnsf8W9dCKU 2020-04-20 02:15:12 158.101.139.86 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=652 +p reject 1-65535 +r propsy U9kFaqakxWhnTrN+0BjJeNA0i5Y OZ9x62sx9qO9SfNCjbm9w9KPG4w 2020-04-20 00:09:15 31.31.77.176 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=190 +p reject 1-65535 +r 4a1b19f37d7b U9q5Qiis/qrimMMRGGDA8qaA1MY 93Pba0aC3mNTB11tJ+XOcFyL4+s 2020-04-20 08:23:49 51.81.253.194 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ILikeTor U+ia2bkyB0nwTcp1fxxNrOZiBbk lYvWx5V3ckwjpn5JmxDmFzhvOf4 2020-04-19 20:38:08 167.86.127.29 443 9030 +a [2a02:c207:3004:380:bad:dead:beef:babe]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15300 +p reject 1-65535 +r snap278 U/DjGC6zuS6s/JUBfLUEiuPbtOw cOnaskPmskkcmmS9OVUl/gXadWw 2020-04-20 06:29:49 209.93.127.251 33387 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1050 +p reject 1-65535 +r revofack U/l9hz9m7+oBGWGJ5bkrrMvXG/k UhzYCA26yl1j9hFvjjZgd1qxAdA 2020-04-20 09:50:14 94.140.114.190 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=211 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r weirenminfuwu U/8e3IUor0I4+3UBgx5rrP9LQtI i95hhHbWCNTxdEzV5wiWtX9Zw6o 2020-04-20 09:07:43 195.123.225.112 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p accept 53,80,443 +r Unnamed U/82iQLRJPqagG0UmvIsOmNXsVA 2uV6xGtuLvOt3H9c8L0YOeY5BoU 2020-04-20 12:36:08 191.114.35.150 9001 0 +s Exit Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r itok01TorRelay1 VAv71Y1/DjyzTgHDLRePIQvdJYE oU9hYtDestfqOqHCATeMl4WLozw 2020-04-20 08:14:07 14.12.148.98 8704 8705 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=220 +p reject 1-65535 +r snap277 VBAvk1w50VAjHIymwJ3ncO23+Os scT1blpZUtQV8IKWl/Nm6AiYpOc 2020-04-20 12:14:49 185.110.74.135 34413 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1340 +p reject 1-65535 +r Assange004auX VBLYYsdiXxReFtPYMfbTOp+vXuk hMv+L+UXCt/lHd5RgkNKOzF9Qh8 2020-04-20 00:49:05 139.99.172.11 9001 80 +a [2402:1f00:8100:400::9]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1410 +p accept 53,80,443 +r snap277 VBXx8MIopc8UfLczvZajsexDe2g gySdiEcOf/fcfodhpLQrjWGPozA 2020-04-20 07:30:24 78.246.201.53 37875 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4 +p reject 1-65535 +r orangeApe VCVov/w2J5zgyp1P9JcjMEd/heA o+5RermW6e1Mzgl9o8rWdaD4chY 2020-04-20 11:39:16 37.235.55.83 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=780 +p reject 1-65535 +r Airlock VCg5lOQ+26aYmivGTEF+MxUPyaU 1rj/kHPLEmGQWXWyHDfs4KbHDGo 2020-04-20 00:28:26 37.97.253.176 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=510 +p reject 1-65535 +r snap278 VCk+xuszoY3nORERxJ+zOWMzMq8 e5vq4sOhvhou9TQZ6xLySWtonnY 2020-04-20 12:02:54 31.48.144.114 34879 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1110 +p reject 1-65535 +r grog VDb8cqverDm/WOZOXhLEYqfT0Ig sNrW7EtBugAPdHqtMgjmbs1oRH4 2020-04-20 03:07:40 176.53.22.142 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5770 +p reject 1-65535 +r OignonCA VDcdZPSu2M0e+O0bWMclxAY73kI 4WXgg6Pdge3sn8M0Wa5Z268x72c 2020-04-20 01:36:57 144.217.75.110 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13500 +p reject 1-65535 +r CoudroX VD+W0MF826wyb2RNsMihcZO8z8k VEral7j4YJiRwX6BbT0wrCvvOz8 2020-04-20 12:33:06 2.57.236.215 9000 9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26500 +p reject 1-65535 +r onionXsrv01 VEzbbEHyQx4W+xJyYsQr++HllQo GrFMvmLvftLxogv5Uhxvau8Y4Tc 2020-04-20 12:16:42 80.100.27.41 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34000 +p reject 1-65535 +r Zimmer3220 VGBRAHJFo8UGbKSAKxroEfDEFyw ys09RY8c0rd64biOaPafIpzck9c 2020-04-20 12:43:03 185.146.157.196 9001 80 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 22,25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r lftor2 VG5SqXn7D7vfHd82D7IKoD0iqs4 /tsfTqGtiPfH6v7dAzmFzAfpLiY 2020-04-19 20:00:16 51.158.102.143 443 80 +a [2001:470:c85d:32:216:3eff:fee8:4c2f]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8200 +p reject 1-65535 +r choiseul VG8IQIbMV9V7tU1f9L8qEqrOX5Q 80O3oThBvE8+45BHI2WVfDV5ico 2020-04-20 12:42:59 79.134.235.243 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=883 +p accept 2000-2500,19294,19638,50002,64738 +r kindofawildcard VHv8Qp2fyN7EAJ7I2oVRMblmwMM nJ3V7Y3YBShxEizaejFhi0OU7Kw 2020-04-20 00:00:00 104.248.135.7 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6030 +p reject 1-65535 +r Tange2LV VHwc21FnmOxmoB8EpYhNzhoVGRk GJxkFNEjgvz3/Ux5oAKbTVvJhoQ 2020-04-20 01:41:20 193.106.166.105 29001 29030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=62000 +p reject 1-65535 +r chaucer VH2lb2uItsWWs+MIaAPNpPDvjyE 5x8LRn2xsz/t78Wph85kFzZAuJQ 2020-04-20 08:26:58 192.160.102.166 9001 80 +a [2620:132:300c:c01d::6]:9002 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10200 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r taki VH5uaK3htvSSxERDWIqTlhBAHfs KOfcaYpKREiQEqxsKkPQxmk81Uk 2020-04-19 21:18:26 51.15.54.117 443 80 +a [2001:bc8:1820:c0d::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16800 +p reject 1-65535 +r ShardsOfNarsil VJLnYGSKq7e+wIvIfo9y9V+7qQ0 Kdww0wax56zFFcdYsKIHVfoU3Gs 2020-04-19 21:51:39 75.176.45.87 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r kima VKNeWC+eF4VC7M+kjb4U9AFymWk 2bUJqWDJdX+XmC2xP7EIRseIs2w 2020-04-19 23:57:59 107.152.35.167 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8400 +p reject 1-65535 +r ulula VKQDobAV9uWmQa0SFTCWa9hzE24 jea1z2y+pNo3WOyOzarOp4MAOrY 2020-04-20 11:06:37 81.6.43.252 9001 9030 +a [2a02:169:200:d::15]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3680 +p reject 1-65535 +r QuintexAirVPN22 VKSCC0bmVQm/PiuJLmaTCkF1nek 4yrZkIotKz30qiM1xUDXaCl5SKg 2020-04-20 10:56:39 199.249.230.75 443 80 +a [2620:7:6001::ffff:c759:e64b]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r snap277 VKo/3wT8O/+QuVdytPiIFXbuuZw MEz9xo3ZDP2jr2AgQd/lQTJitRo 2020-04-20 09:58:45 24.56.39.147 41387 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=638 +p reject 1-65535 +r unlobitolon0 VKpMz+gfTdc5HYN6uwiS11NV3zA vwijfqIXuZLJ7QfrqLMCQbBCiIA 2020-04-20 02:17:08 178.62.94.243 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=87 +p reject 1-65535 +r snap277 VLZyEJ36a7qyrMV6DjybrVZjkxw lE2vtgxLPtnbjLcJCeEUTYp1YIE 2020-04-19 19:21:21 91.167.89.29 37151 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4230 +p reject 1-65535 +r king VNASsk5UsLPG+MzP1xf4/puytEA UksxE+WRryKDRZ33F4Lxtk2w9ec 2020-04-20 08:20:50 51.68.201.115 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20400 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r uzieka VN5j9FhwWLeRUqdaAjjX96AnkhU 1CvtAK4Fck9e8rLDpUzoyg8+sx0 2020-04-20 10:27:12 192.36.38.33 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=67200 +p reject 1-65535 +r macaroni VOM8/k1zH4rIam+aV0Y9bNht+5I 5/1NAtgfsjP8898kVAq5a7MRVI4 2020-04-20 01:40:10 91.219.28.85 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1 +p reject 1-65535 +r Unnamed VOO7XDCdIJkfThYAP/YIOcIWx1Q EMQKYRe/2jJBSoM6koBFSU3HITg 2020-04-20 03:58:35 75.159.40.37 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6400 +p reject 1-65535 +r nix VPXYAN2Xg/zyIA6A7z0ahno/bWs zdDoEWurSip/6S9Xv7m8CAIpn8g 2020-04-19 21:36:16 195.154.119.203 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14400 +p reject 1-65535 +r arbitraryTessa3 VP+H4Yz0s1G7B4pkCk3FJllpSF4 bT9p4Qf6YEqfbE+Jozr2InNymyU 2020-04-19 23:23:21 95.216.19.206 21 0 +a [2a01:4f9:2a:1430::3]:21 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r Belf4gor VQSx70MSj5pjqY50eCvYoZIL3jk Ko+reiLdDBRrIzy730GerxttFcs 2020-04-20 07:19:14 151.51.144.130 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r KiandChi VRJVdJH4fYiPxIX/ZIQmWnVKv1M tD0vdXyvK6EG2EIPTV7IwNei4K8 2020-04-19 20:31:09 82.221.131.5 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9980 +p accept 20-23,43,53,79-81,88,194,389,443,464,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r essence VRnZreyAiU0//VZLWKxCWus4zbM IpHOHb8CnPE0Ry89Xo6o2AYqEMU 2020-04-19 23:33:44 138.197.144.191 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=649 +p reject 1-65535 +r StriveForFreedom VUA7llOoH2jDl4fgAL2fl+HzslA 8HJu0S8tQ+vND/xx97xLtkhp6FE 2020-04-20 03:57:30 173.212.231.228 9001 9030 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=290 +p accept 53,80-81,443,993,995,1194,8008,8080,8443,8888 +r Hypnos VUtUEEoWM6xZsha0IiQPqClZV/w baIxcLBVW3c1ggIAfb2z84fZ60U 2020-04-20 00:42:22 178.7.15.157 9001 9030 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4 +p reject 1-65535 +r VeilsOfTheOnion VVgNcbMXoHL0pNz26k7bAVc0ruc rvuJPZTSC2xUigYGpKd98Sc/qJc 2020-04-20 04:29:22 104.244.78.147 443 80 +a [2605:6400:30:fd57::4e93]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8920 +p reject 1-65535 +r jakfrancjamoze VVj1RtKplt0vS2piohjfI4SEUuM iUnjiE3ZVdT2OxfwG0x1ln5BEeg 2020-04-19 21:36:11 5.135.156.12 4899 9997 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=810 +p reject 1-65535 +r snap277 VWFQBDD51s5A1maXcE15ca5bcGc YnTGY8LidPA9QLWhltC4hKG9mjk 2020-04-20 09:22:59 37.6.40.250 34553 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r puente VWy3jQpB/yA1rL3OV/+eYZWpMG0 TIE34kVcc1Ey1wfzpbrXHGhah+Q 2020-04-20 11:15:24 103.104.244.25 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=740 +p reject 1-65535 +r ogopogo VXrOyFD1Tu5lg5+Dys4rCCW+gR4 AtXuzTyl5BI9zrOmv2onjep/Pp8 2020-04-20 01:28:59 192.160.102.170 9001 80 +a [2620:132:300c:c01d::a]:9002 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r KUEXBON VXs5FG6xIcjPoixIrXi9vbyP86E SL0Gj2o/zZmGWpsW/SU+rzoPo7E 2020-04-19 19:32:55 185.86.151.168 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12700 +p reject 1-65535 +r DeezNode3877619345 VYBPnTf3snvQQms8sGxktND5VUY LvKN90fm/M09J15s/HESiCj4Muc 2020-04-20 03:05:16 85.165.62.233 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20100 +p reject 1-65535 +r t0rnod3 VYK77BI4DjTX37jCN5OaCzF7IF4 R7w0i10Ji1DAVZpfLdqiSiYE9WA 2020-04-20 05:03:19 91.126.47.64 9001 9030 +a [2001:470:ccc0::10]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15800 +p reject 1-65535 +r snap277 VZzm3SGkfBr4usjz73wlFiEYHp4 t/1rbWkbQ6B2lEIZxDjP/R3dWuA 2020-04-20 12:24:23 24.228.48.185 39609 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3100 +p reject 1-65535 +r Unnamed Vakr4qdsZKWg2w1PYdXco3tV7lI pvb+3NpMBkzbvzwcAbzuZ0IYDys 2020-04-20 04:31:48 213.220.220.60 443 0 +a [2a02:8301:0:e:20c:29ff:fecf:4819]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p reject 1-65535 +r Assange034us VbWp25wrV8A1Q3o8xSprEdh3y90 ZU+bVSj4UapM426y1R9tNrM2s44 2020-04-20 00:56:09 162.212.158.82 9001 9011 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9900 +p reject 1-65535 +r actinium Vbz+VQs2lmsjbbSNS4jdo2ddwsU 1UZppYpX0+5qH2u5b4p0sQdGq9k 2020-04-19 21:30:16 84.19.190.178 443 80 +a [2001:1b60:3:172:1325:102:0:1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4334,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Johnny5 VcItE0IS7jQNgRwZm4jHvLlDtzI o1qiX2TfAh1CIQwVj1+yFkoEegw 2020-04-20 03:24:16 87.221.45.78 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r tertuny VcaEfoZsUMorLtltpitXN7MRB20 0MAXszOe/AfJ7k8NK7yv8W77D/w 2020-04-19 23:50:00 66.42.114.168 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=1110 +p reject 1-65535 +r raccoonsociety Vd/IIeg55t7xcpQghcXe0jAskLI kQaJmRpe0J4ExWS7ZLRhDXv3nao 2020-04-20 12:30:00 188.40.152.137 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4900 +p reject 1-65535 +r fmi Ve6IZp4MePP0p9O3S97FkI6Yqd4 R7jc/u+LwhT4IkNpBxKqrDyMJbE 2020-04-20 04:50:43 217.23.7.103 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6340 +p reject 1-65535 +r RASPdatenschleuder VfHO0+JZBFpDpHbLxtMPdsw/Ybc rYJ77c3Yo/Br2/bCJpJrM1bLqow 2020-04-20 04:23:22 92.117.237.63 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r tor4ever15 VfVddo2wi2Iahi9vp6xabNmi4p0 Qp2PZCCVq2iak7/VW7c7ogmyWjA 2020-04-20 04:47:28 45.62.228.29 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r poisona Vff1bVjIxAqanfPVCMHyagTeNgw NlszReQFwD0ntotR2BQ1cdIXLkc 2020-04-20 04:21:16 87.245.100.100 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=968 +p reject 1-65535 +r king Vff3zDAr3zvb+FvspmPBX+aUH+A 3Q12nGoBQL6scKHBKCxnTkQfnMw 2020-04-20 05:46:18 51.89.200.104 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14400 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed VflcwpVGJd+qyjo/WdoN6qPG5Xc ZjVT0GfS+2tNFU5Z2fhZZBO+wIM 2020-04-20 07:32:37 172.86.139.148 42448 0 +s Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=9 +p reject 1-65535 +r HedyLamarr VfmFfvT5H3ycqprhqkQg+A312NM XoAfJncxzanxZwNuxTBGwago2X8 2020-04-20 06:29:58 134.101.28.3 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=76 +p reject 1-65535 +r peoplesCYBERforce VgOU2U1WRtrLxiPWHUO5CepCKd8 qYsZJaB8QyW+c1YHLWCIy20oCi0 2020-04-20 04:09:15 54.37.137.0 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12500 +p reject 1-65535 +r Unnamed Vh11R/NRsNkFFEhR0pBaC55RK80 jczv7W5Fni2h4G8lothTtWpIX1s 2020-04-20 08:00:56 102.37.1.72 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=255 +p reject 1-65535 +r bakunin2 ViQ02YfPSdRWSbdq3KmTvqj3hHE 0/6THnzOgdDOE0lt9XP5ojSoIgU 2020-04-20 01:15:14 193.234.15.59 443 80 +a [2a00:1c20:4089:1234:bff6:e1bb:1ce3:8dc6]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8800 +p reject 1-65535 +r jimtahuGrimlock ViV+dPqZm8+h7CBYkjQqCWRblhs gDgvoyoU0ABWQyg3qM3ZKvvbvU4 2020-04-20 12:33:56 136.37.197.178 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=145 +p reject 1-65535 +r niftydiinkarazan VihJXZk5qME53UQUAt5C9wErcJI 01wxVe+w/ID5mL3eRm+xZjEt4QU 2020-04-20 08:53:07 185.220.100.248 9000 9001 +a [2a0b:f4c0:16c:5::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41800 +p reject 25 +r niftyentry83 Vixhx/iFdB1ZnbehI1eR2Si+rf0 R0qGGQ1LI2fh8RCpvaL40Nu+fsU 2020-04-20 10:51:31 185.220.101.223 10083 20083 +a [2a0b:f4c2:2::223]:10083 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r snap277 Vjo4Sf+hkBL+yn1JtKbGw63toPc 6Vj94VFI3xQcBXMcEnWNtEpi5bI 2020-04-20 06:47:04 62.211.17.47 45537 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=808 +p reject 1-65535 +r Unnamed Vj24UUJGK/xEevwW9tj00KSjwyo YS4JTIr+2nNL4So2zVWT1PKZwF8 2020-04-20 06:42:55 217.12.204.170 4427 31331 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=958 +p reject 1-65535 +r thorfred2 Vj+CMIH0XsFS83TaIvl5+2ckvok Mx/UKHGe5gAWhUcj9mizAgrwZXE 2020-04-19 22:37:32 89.163.224.143 9001 9030 +a [2001:4ba0:ffec:8d::]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34000 +p reject 1-65535 +r QuintexAirVPN8 VknLIVjalPt0dBXyZii+wH+ldhY vQ8PZDAxamZeJtdH0HGTpzk4xXc 2020-04-20 00:19:36 199.249.230.122 443 80 +a [2620:7:6001::122]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15800 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r ThankYouMrSnowden Vkp/HQMUElr2AJbN4KiH8oZggkA 0jSHKNvkGrMSwV1gjtnttIFuKCc 2020-04-20 12:41:03 213.152.161.149 2055 2661 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r yanmaani VljDYy4LDFyCyONzUI6LquknakU eHusQ86HzAJoevlpoO7cgY0dJ9k 2020-04-20 10:52:01 83.97.20.244 9001 0 +s Exit Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=442 +p reject 25,119 +r GermanCraft1 VmWjkEyJ4i6XEwXujBmXvKQSPGk IYvq7ry0gU5ixCKsobkAnK6T9ww 2020-04-20 01:38:23 95.216.138.16 443 0 +a [2a01:4f9:c010:24d::1]:443 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=28000 +p reject 1-65535 +r FOO Vm7QvHN9bE1HKN11lHAoJfGFe88 cRAks86D4BS6nzJ0HTAILgQu0f0 2020-04-20 03:56:36 178.175.148.44 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6420 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r VRchat VnIh3VhtDjiKaFn7M8CWlr0gFRs +BVnE1314HpMkiPOxqS6CIN/rE8 2020-04-20 07:04:03 104.194.228.240 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5700 +p reject 1-65535 +r scurra VngczJ9tKf6hSHmatYhCnIk6Rzw zUe41Kc4Ll+GZEo63aLtPGq2Pu4 2020-04-19 23:46:19 87.118.84.158 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11300 +p reject 1-65535 +r FishersTorRelay1 VnhGCCQssVtw7Wy7j0Duo7Yq9p4 RNdmncIqendSjhZnhalROV5Skb0 2020-04-20 08:48:13 138.201.3.75 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r Berkeley1 Vn6XhUWMYF5ZICdVx0iY48lvscw /ag0Whsop55HQ1N5xWlz7hFV96w 2020-04-20 09:29:12 135.180.15.250 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7100 +p reject 1-65535 +r niftyafricagiantrat VoUHUglu5jcR+ZsvpagSR3VhaX0 7R1ICmGvjRX5MlxdAwIT3X6Ku34 2020-04-20 12:21:16 185.220.101.132 21202 11202 +a [2a0b:f4c2:1::132]:21361 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19900 +p reject 1-65535 +r ankerman VoWD2eRsaAReITHPQD5I8h3xHwo Tqh3/GTpxFM2SPAtmXrDn2PmOK0 2020-04-20 11:09:51 51.38.107.117 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6910 +p reject 1-65535 +r youedittheconfig Vo3Gb7am571GLO+XozPs47l9B0o l599DseBpncQ8n7ZWAOGn2gmH6s 2020-04-20 12:09:27 51.15.18.163 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=65000 +p reject 1-65535 +r RunBSD Vo5DT3JbeCjRfvKzPC9cyE8Y/OM LwQNvtH9IHxJJ2qDn7z2SPNhn7M 2020-04-20 12:44:45 91.219.238.148 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=410 +p reject 1-65535 +r Akka VpJ+YbUebzY/tVSYFQpt389wd/I n7fqWRvrRl+SOMX3T4NXxihHJqI 2020-04-20 07:24:12 95.216.33.58 443 0 +a [2a01:4f9:2a:2145::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=64000 +p reject 1-65535 +r relay VqCZ2l1yfOmA6kb3h4pv5m8oubc HCE7abQX6BavqQH3hoKB1LK1Geg 2020-04-20 09:20:05 45.32.102.37 9001 0 +a [2001:19f0:4400:4caa:5400:2ff:fea3:b28c]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=769 +p reject 1-65535 +r snap277 VqGlpvppaSYWGxKQlFlWHwW6MbU l1lDi0nvIlus1ep/67VVdQTJ1lw 2020-04-20 09:06:33 193.250.84.210 39005 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2690 +p reject 1-65535 +r WaffleIronDome VtZhBsZCvgD0A7mAUhaYcMjAh1E 0seq3nmxeHpZX4Ctnk5z3g4yOUg 2020-04-20 00:06:14 83.97.20.82 9001 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=628 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r PeoplesTOR Vtb++2tKhiPhclNnxOmsE+hbaKA JiCn44U1gAI2+aQqsMf/KMqcQp8 2020-04-20 03:45:25 45.79.85.85 443 0 +a [2600:3c01::f03c:92ff:fee7:78b9]:443 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1100 +p accept 20-21,53,80-81,443,1194,6660-6667,8332-8333 +r torprops VtyommtBraMOiR72X9zAcdwFB5s 8VYkW7N31TjhBXOx/UIzFA1k6c4 2020-04-20 03:58:28 70.96.196.77 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3860 +p reject 1-65535 +r Bacon1 Vt792M3iGm/HpFAXrDmZ1SVbbS8 RyRl7n2q7IqeayXnmTtaEavhNwA 2020-04-20 11:35:20 95.216.209.193 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4780 +p reject 1-65535 +r TzBakery VwcaeWZfMQf2qu7tlsa7xA69HZE wIK7JHGDNkC3cr+xixJ3dHVykuM 2020-04-19 23:07:36 149.28.245.104 9001 9030 +a [2001:19f0:6401:1871:5400:2ff:fe96:506a]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=98 +p reject 1-65535 +r king Vw3NBzDJvGD+XID0BHPe5pipXVc 7OycJ5O5E2fHpVhoC1pvfdbJ4Qo 2020-04-20 08:22:51 51.89.200.123 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18100 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r anonymous VxJjgE71X0moYVqiSiAkS3d79Tk 2uh8E+OpJhA3EmF3evP0UHYB5OY 2020-04-19 22:00:00 138.201.255.245 9001 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19200 +p reject 1-65535 +r eclipse01 Vx0q9ZhGk0jkQsq6dV80SlgXbKc qEGRV4n8KJwyBLsyLfa/Sb0Jm4o 2020-04-20 00:40:14 37.252.187.3 9001 9030 +a [2a00:63c1:c:3::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r b33rM4nR3l4y Vy/C5tiejXc0iKdvBd3uMXOgduA XIydVCYpBBYbUpvs7d4F19yNMZo 2020-04-19 21:18:24 73.180.143.119 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=610 +p reject 1-65535 +r figue VzSFbarrURN1Rx+lh3Q+yHnTDfE hluABc+pckyPRoSxIcDGrCKTBJ4 2020-04-20 01:21:35 82.64.167.199 9000 9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7240 +p reject 1-65535 +r loglessRelay VzzD2PHIRaozqkWTtoyg1HFWqjA w7MgQPlu/Rzq8b5nCMe4Oae/TLo 2020-04-20 06:11:56 163.172.184.32 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1980 +p reject 1-65535 +r ididnteditheconfig V0Bjt64dPxNsI9P0KmE2UdA6Sgg p9LN+qy+krNlAhvuvp/JQpry5VY 2020-04-20 05:46:41 86.201.252.9 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=105 +p reject 1-65535 +r pythonian4000 V1FRQkm0p/pRhzY7tsT3YSZykTc CUU1R/V2QM0tFypikdEsCrz0Iik 2020-04-20 07:26:47 173.230.128.232 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1970 +p reject 1-65535 +r snap277 V1w7CzrxwvCI7co10JporCH9nKY Ryko2VVdCbbfSHOn/dle+Hw9Hkk 2020-04-20 00:25:28 73.139.64.136 37089 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=306 +p reject 1-65535 +r Unnamed V2mJ0FtiwF+S7IQFuLaxnyqjQiE sR5zqvaReFGvDRZYVetT/jW+d1w 2020-04-19 23:03:41 163.172.94.144 443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=909 +p reject 1-65535 +r JMBHVN V3GSpCJ6mvTQ0xsehVDYERin1mM UPYrjjB2R39JftJ+EaxWkr/NrHw 2020-04-20 00:01:12 54.90.234.122 443 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=84 +p reject 1-65535 +r crowcastletor V4bQTFoohdGeYG8TxCA/YK7jgRA KR5vcj6ZweJN2mPDBiiOA+6CDh0 2020-04-20 04:23:01 96.233.74.18 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2240 +p reject 1-65535 +r marylou1 V44Afl5FNfv+93WNhYewe0yMXQY L8vXffJnkDHXFtOyBx5CU6aNB5E 2020-04-19 23:54:10 89.234.157.254 443 80 +a [2001:67c:2608::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=64000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r cavefelem01 V44BPeYUZ5tq+CB6ilh3EWdZFDE 2r/pulXVVF3+6sclwm56yabczCA 2020-04-20 03:02:36 95.216.61.100 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=32900 +p reject 1-65535 +r daWiZaRd V5rMA/KM+XnmF5ZDq2UQ5E3AJY0 r/LGmGZa8urhUHUljXbtnPKpNbo 2020-04-20 10:21:51 46.142.9.135 9001 0 +s Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22 +p reject 1-65535 +r smitty V6rGTAum7fxlTHGL3vhudRdqJHI 53hJywiAg3Vdzm2xCLErb0zDN2Q 2020-04-20 07:37:40 65.181.123.254 9001 9030 +s Exit Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r Unnamed V7aHPC3DYuWkKoCftWJM2joCVDA jtrGb/UhnPQIJ4Ho6Eksl/iAvZM 2020-04-19 23:25:05 69.164.194.10 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=651 +p reject 1-65535 +r alliumursinum V7cA6+o6D204v5FfWLhsAXA34mA NaUKrENM21fEw35p5sAEtfUBXbA 2020-04-19 19:33:03 178.254.30.86 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=200 +p reject 1-65535 +r itok01TorRelay2 V76AaPvF6mZhy+KpyKTf9SgVsGk DcWy+czX6+GDfCEVb/CWYUus0Ok 2020-04-20 08:05:54 116.91.207.250 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r snap277 V8TqI8wEL0GcJ9+Vc50EOoKjCCg cOU16xURZZsUcK0T4sKl+OsnDPs 2020-04-20 10:14:58 134.249.143.159 41352 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2090 +p reject 1-65535 +r angeltest12 V8bfW5PlTrnI25ACnZ6aERG9NNI Bks9jOvS4rPA75X3SIcWi4VlUu8 2020-04-19 23:27:27 91.201.65.91 443 9030 +a [2a06:f905:1:100::4e]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5440 +p reject 1-65535 +r snap278 V+LR7CF2g+H7/2vvMjJJ5l+s5Tk 0MtD4rwgUxMm2OS1tDt0P/xgxOE 2020-04-20 05:09:52 84.7.247.37 35493 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=123 +p reject 1-65535 +r lilm00 V/G1+a344LCJJG4nYmpS8w3DEPg obZZbBFzdbqrMB7Fj/K2g1QVeYk 2020-04-19 20:07:24 198.16.109.31 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=10700 +p reject 1-65535 +r ph3x V/JzcWxTEO7sa5ReY0+u4vX3sE0 Q7NAkjW4TsB7l3jB+9z3yob5+Is 2020-04-20 11:17:59 86.59.119.83 443 80 +a [2001:858:2:30:86:59:119:83]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4500 +p reject 1-65535 +r smell V/oa5TlX+mfsAiy+m2gmHsX61yQ iTrLQcNaS48nms2Gwze+ifyi+ps 2020-04-20 01:26:40 209.141.52.137 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5490 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r kricklen V/ySfxza3skzgOJH7pSaN4eg234 JmE8LhyxbwOJcaf/uBpYdZ6aBMo 2020-04-20 02:22:08 5.63.37.19 35278 35288 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4900 +p reject 1-65535 +r koume WAkGBdL5DUxjqtQ8O4qS5DjJeC4 LNO6hzxmx37knVh3gYmxxAzynyo 2020-04-19 20:18:37 5.1.74.171 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=672 +p reject 1-65535 +r tor01k WAxR4ChROhXKw3D760C+CdlIhhM Cx7UFWHfZfhCqiEngXRm/nSHVpo 2020-04-20 06:37:53 51.15.106.64 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26400 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed WBLI/tM5HRjLDSFNlQzjd28uZhc SBaVldJdK131HnBImvVW+JgpTmo 2020-04-20 10:28:55 104.244.74.181 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r rofltor21 WCDX4swpBGIjOEW6gH1hZJTPDX0 tVQMQwh7XAdiS1/gGQN2b4+eddM 2020-04-20 10:52:41 64.137.189.39 9001 9030 +a [2607:8880::489:27]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r Torshow WCJOjlNE7LDm/7tHDFPyxx2+Y0E GJUW11glu93KW1pGxOqKel51k88 2020-04-20 12:10:46 62.109.10.150 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10400 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r gio6 WCMBJzuyg3Glngmhk/o52nr8MoA pNZt9+FXU4aikWTFxSvIYveFx1I 2020-04-20 10:34:41 95.183.52.42 9042 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31900 +p reject 1-65535 +r BobsHouseLU02 WDJmjCH/N1xrd6m+sB4r/cfNnEM iihxTgw8rVviydjhGGWcjdJuFsM 2020-04-20 03:30:35 104.244.75.143 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5620 +p reject 1-65535 +r kaitlin WDMt3aFUFcs9E/Xso9VL6WG4xFg N1T19XyMEM6Q2/kVuNipzpG3/Qs 2020-04-20 04:48:29 141.255.166.142 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15300 +p reject 1-65535 +r duat WDVlQ4TqfbBrJYGjmZcw8V5Rki8 gqbM9kFl3eOzA03x96o+gi1Qd6c 2020-04-20 03:04:41 24.151.1.51 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=360 +p reject 1-65535 +r niftyguard26 WDzvz/drMYnTo3yBpJ0WGdBNyzQ z2wS1hUGjlCeZnGt3VGT1UXPTvU 2020-04-20 12:46:19 185.220.101.235 1235 2235 +a [2a0b:f4c2:2::235]:1235 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r justanotherrelay WD8XKY6QXR0bz460na7lk5tR/XA tH3xoLxhi1TcpLWZ3ymtgn7Fc7I 2020-04-20 09:00:44 79.160.238.152 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=306 +p reject 1-65535 +r 5705860553591637 WEfVoBxHFmFD9zjHcDNEUXs56xA J7H84+wDI17nYD6QHU7e8TXvtyA 2020-04-20 04:14:30 5.2.72.110 9001 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p accept 80,443,8080,8443 +r AgentOnionMumbai WFVog8l+AbRjlhG69D68hDwNG1E pO7zJjmDAg2vL7doI1f9JEuFS+8 2020-04-20 05:59:39 172.105.41.187 443 8080 +a [2400:8904::f03c:91ff:feff:d19]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=911 +p reject 1-65535 +r Sklavenmaedchen WFbbiEV4kV58egt7EeQUWx0qTis o9iEVCNgbRNFgUi8FlNpf3g/lxM 2020-04-19 22:01:00 91.106.170.116 9001 0 +s Fast Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15600 +p reject 1-65535 +r Unnamed WHerSw4DqM2tkWVk+qcn4zUuvec /CZBDqiV01shzLDF/0r6juiFQxk 2020-04-20 06:40:55 95.133.63.51 443 80 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39 +p reject 1-65535 +r alxu WHserx4i4UjvsBDaozes3NTbXLo LIy6slT+sP6fHrYmdHOik/VxJIU 2020-04-19 19:32:31 198.98.62.56 9941 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15800 +p reject 1-65535 +r serpico WKcZlxLA5Ss8Xy+Oiye1pivli8g lZX8/MdJDzLZ/fGaqCRPFyd2MTE 2020-04-20 02:33:14 45.141.157.50 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13100 +p reject 1-65535 +r iblech WKmSHdChOJNWY0YlxbFKzBGUqVw 8nwEblLIk3vd1X26UsygUYo4TBw 2020-04-20 12:10:46 79.143.177.192 443 0 +a [2a02:c205:3003:5755::1]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6660 +p reject 1-65535 +r king WK3GaZ7tCgq1rI42kvNaHoeXJMo DON3L6EhFXrZlSPbwQHnouZ/DEY 2020-04-20 04:46:38 51.68.201.119 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7150 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r UnvisitedNativity WLRLVZGpbsCBFLBBzGsbsVId8r4 tk+W3Kk9E1QNYwKB9azl9FAVTaE 2020-04-20 01:38:33 199.195.250.77 443 80 +a [2605:6400:10:549::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19000 +p reject 22,25,110,119,135-139,143,194,220,445,465,563,587,993-995,1214,2525-2526,4661-4666,6346-6429,6657,6660-6670,6679,6697,6699,6881-7005,7070,8000-8004,9000-9001,9998-9999 +r Torrot01 WLxjFCyIH4jQjgcd62PboJ3mIUE Uz9+uxBokrXAGWY7w76/AYtg3cQ 2020-04-20 04:09:32 95.216.197.155 9001 9030 +a [2a01:4f9:c010:4a6c::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22500 +p reject 1-65535 +r snap277 WL0ejJ0OSu+ljwk/lMNIv5UuMZw pSbIpZcZv0uvQlAp+p1lZzbNh/s 2020-04-20 01:18:08 163.158.20.204 9001 0 +s Fast Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r RTTY WMlIr6MGX4TZgJXPjBjei1NzhBE GbCEZWPb9LaVzDXTQfOttR3wMkE 2020-04-20 11:05:45 85.249.40.197 1443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r gandalf42 WM8u/gAjhvAq2atFJDLhTFiPld8 FFmrlEpZTmAc8ZTIpsYNdQqmW5M 2020-04-20 02:03:42 31.24.8.174 9002 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=852 +p reject 1-65535 +r JFWenisch WOZ83ffKLivVI4nrLicOCaHDdvQ FG1r3R9GiNWJHU/KHmJdFHb9Anc 2020-04-20 10:13:17 78.94.7.142 443 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=410 +p reject 1-65535 +r ThisAgain WOiaBVZOaET6zF14pz71kyIlYaI +FcPCH39lmU1oslmSVzjgGj8JnQ 2020-04-20 06:26:43 94.140.114.74 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19300 +p reject 1-65535 +r SamAAdams2 WO2cnDXkM+5Ydk1iiStP/VGKPNA JgVJ6PtHcEGgXyAYheqCFNxfs2I 2020-04-19 21:12:43 185.21.100.50 9001 9030 +a [2a00:1158:2:cd00:0:74:6f:72]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12100 +p reject 1-65535 +r jaimalator WPq1in3I6ZuTE/bkiOIUDUvihBY Rq1IjeLQ1Q6+cTBfg6pZQpAwo1g 2020-04-19 23:08:44 193.70.40.121 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19400 +p reject 1-65535 +r zwewwlNL1 WPwqqzeSrDeJfTQzH09OADQd7Aw m3iPQ+ly6CFOnB9mN2PMo7I/f/c 2020-04-20 11:55:26 185.14.30.57 9001 9030 +a [2a02:27ab:0:2::22]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=19400 +p reject 1-65535 +r fondueplausch WQE2wTzCdHuMSL9z2BVFQnn2DF0 9ReTT/8eXY0oFwS8xJri84HyrCk 2020-04-19 22:43:27 46.126.161.205 32772 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2300 +p reject 1-65535 +r REX2 WQhoZYtoUq97sgMW22PNyEUI7C4 2J12FwjlAxL1IaEzFkDWda3w8yA 2020-04-20 04:46:40 27.122.59.100 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=590 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r TeutatesTOR WQuiClhTvxt2980GZQH+u6dyyV8 lM+oubTgKhbLOAVO7o+rbb74cDQ 2020-04-19 19:30:17 78.194.2.61 450 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2500 +p reject 1-65535 +r snap277 WQ7qAa5PnRY1ah8gFhXH0c0O/i0 X/h9oxrrAxO2JXjperojhtSzybA 2020-04-20 07:53:05 92.139.179.231 40967 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2900 +p reject 1-65535 +r crowdedfire WRJSnQhh0vxSv6ZYmahIDDZbaHI e2563cTJqWJG0fcL1gewCN/ypPU 2020-04-20 03:04:02 136.34.66.221 9001 9002 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8080 +p reject 1-65535 +r snap277 WRqXeOP4Ewe7dgtQB98m3miVsec 15cXrFV4fndcnaFqQtaii4rjQew 2020-04-20 07:45:31 77.149.41.43 33625 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r Brixx WSTvhKrSEHPNWFFdFkNVOnfXs18 CoaLLkLRwPrT+s7/FONWPNPLNTU 2020-04-19 19:22:20 188.68.36.46 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=190 +p reject 1-65535 +r cookiedough1 WSqLcwq4co99wbT62J0Ia+MZvSc Y4sZw/KsorTVrFqzvvAWBlpwhKc 2020-04-20 06:01:15 66.220.3.179 9001 9030 +a [2001:470:1:19::179]:9001 +s Exit Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6660-6667,6699,6881-6999 +r Unnamed WUGT5R84LjQIDXa17K9ce2fPBe8 NEbJ9YBYDAwTZ3K/xoYZ2F50mms 2020-04-20 08:25:09 37.191.192.239 8443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15000 +p reject 1-65535 +r notorious5 WUNnKqpeaBE5Fnz3jlS6JvokJeQ cx/p6/xZjWHexvyeF0HhmrO+5bI 2020-04-20 03:09:44 45.77.216.153 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=732 +p reject 1-65535 +r Unnamed WVeZC+XBvBwDdpBIyoFtE3kLMXY r/iY4tsHaau7aQNHL/sPGJctzls 2020-04-20 05:17:16 104.211.224.144 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=612 +p reject 1-65535 +r fpoestueckscheisse WV6fqG4GAh1TRl/wNlx/+SpKEV0 UabWbpmqdI3ZlpKtdIArHN40cBM 2020-04-20 02:28:08 217.12.223.200 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1650 +p reject 1-65535 +r isnotsocial WWgDCABO0y8E4cVqucaLFMx7W3w /RFmqrEB5rPSUkh4WVVHw9WwH7s 2020-04-20 07:56:34 73.225.8.164 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1960 +p reject 1-65535 +r 555nase WXQirdra9fsnJzabfvx6p2uJ1hM ZOQlGpl6LUThoseotN6o27Llbpw 2020-04-19 20:27:29 37.187.3.106 443 80 +a [2001:41d0:a:36a::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7220 +p reject 1-65535 +r amazonas WXSz9MZtg7vJYi4PDwI/5IQo25s TrquhcOpBR4dCZFZryRG8d9xy0Q 2020-04-19 19:05:43 77.247.181.163 443 0 +a [2a00:1768:1001:21::32a3:201a]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45600 +p reject 25 +r TorNuc321 WXk4K1sq/lPTpPZY4huXHFRK1TE OK8D5CLCKnBl1R9JCf0ZkvGfr2Q 2020-04-20 05:15:21 83.252.4.77 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16 +p reject 1-65535 +r fran1 WYeK/gbUULcje4RNTSnHG02P7GI kgkcgXkbQQ4sbyrvp4vvowNUs0U 2020-04-20 01:05:52 198.199.100.10 443 80 +a [2604:a880:1:20::2f0:a001]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p reject 1-65535 +r harleyz98 WY6g5ZXFQeqRtENLxkPwERCGKsU UpyGov/s2ZAWGngvBKmPQnyT/fI 2020-04-19 19:10:46 51.254.143.96 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r FeatheredRelay WZegMElZG5QDjATFhLlNkE6KduY jb64wGlAwUb/ZTmdK5W/3VFCjxU 2020-04-20 08:08:58 86.52.129.134 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5450 +p reject 1-65535 +r dunnosomething WZpW+rjoqou0Z6tzCtofEjgn5Ac tAlFrR7RzVCQZK3j26IV4KeMEXw 2020-04-20 04:48:48 88.198.14.190 49001 49030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6860 +p reject 1-65535 +r FalkensteinTor03 WZpwh1YEiZOhApsnde74yeQLtkA kG4EsOiW7wvzwu4uswE+L7j0lRY 2020-04-20 03:19:38 144.76.236.14 443 0 +a [2a01:4f8:201:120d::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=48000 +p reject 1-65535 +r ELOO01 WZ46D5vc1YClVf6BPTs3gZ3hhB0 iGJ+POzwHkaFzoDbndVAtL0dGXY 2020-04-20 02:14:00 217.228.178.45 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=215 +p reject 1-65535 +r LopayneVPS200NC WadVeCwfl31tzXbA7EUP/MfCnlY k/FIqVuuntI/0H3zxnT5Id7Drhw 2020-04-19 20:03:12 192.145.45.190 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10400 +p reject 1-65535 +r mercurya Wbcc2YFpb9hbW5FgI6jMJb8WMNU zAk2ht5UPs6S8zemJ4ZsuEYs0ZA 2020-04-20 04:16:58 178.209.46.173 7654 7653 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=459 +p reject 1-65535 +r hagardunor Wbo1WIpjNG/maujPZYgYQg3W5bI PmQ94RQZKs5FZQeLaYp24Jf4Y6c 2020-04-19 20:43:37 51.77.202.41 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=225 +p reject 1-65535 +r king WcDMCxTSxaArK8kTjTL75wFOQqE jKVMCiA2LNXxr+kE4XZUESAtkf4 2020-04-20 04:54:54 51.89.213.93 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6990 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r perkele WcDYils8ZVQc9j0N2I7xWjedN44 IlyEi6x5Gsjgb9wRmJipkqv/6iQ 2020-04-20 01:15:48 51.38.64.68 443 80 +a [2001:41d0:801:2000::20e8]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18400 +p reject 1-65535 +r snap277 WcFrTo4veF5fAyTAgFy7QWoIRmU KH5cNjwZDGjYrIOQrSr8+rUHNCg 2020-04-20 06:15:12 181.137.248.115 46165 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=254 +p reject 1-65535 +r SnapServ WcZVL74b13mVqzpzc/3V9gltoEY PVn6vwc0iWGRDNxa3+4ye6676/g 2020-04-20 09:15:28 185.133.210.54 443 9030 +a [2a06:e880:1:2::b]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2300 +p reject 1-65535 +r spaghetti WcqW582jCrNsWXtJnISL2EV0XqA Voh1hLFQ7Z5QxfYYXZJgTLhSOok 2020-04-20 12:17:48 5.135.177.107 9060 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r cadory Wd/krJd8/ZHl5Tg6Wvv+HaoPRrM 8H7SbPCcIVwiLKQ8MSmoFxlT/ig 2020-04-20 02:13:37 83.135.78.14 19003 4446 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=340 +p reject 1-65535 +r Unnamed WeM2OhcvcBeMQYtp2NXwzYHPdK0 +dcT5CYlI+sBryRWeSKrNAYkXXc 2020-04-20 12:52:04 31.220.4.122 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=195 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r NimixRelay WgIDu+B9vTSpvRjOmsmPu1jI9c4 6VGk3KsfnH+FoHwr0PVzdAF6Cbc 2020-04-20 10:07:22 109.196.235.46 443 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45 +p reject 1-65535 +r Cataclysm WhJ8ZbJ1VAqQ2/YPM9Vbr11RK54 sgmYOVayRH1jAmtZvC7pInoLVyY 2020-04-20 08:15:30 150.107.76.13 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=148 +p accept 20-21,110,143,194,220,389,464,531,749,853,873,902-904,981,989-991,2082-2083,50002,64738 +r Trenton WhT7u6+EISSgrzxlD0MCxbVJqxc xYygCyopaBxqykSLLKXeMqZwrvM 2020-04-20 11:48:54 195.201.22.234 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=8470 +p reject 1-65535 +r forTheLoveOfHotDogs WiJO+sRT9+8tBDXjNokN7Nxc6/0 A4xGX2IW4IRXwTv0rRnOEgBsC/I 2020-04-19 21:34:13 46.105.227.109 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18200 +p reject 1-65535 +r ScholrshipRemote Wiwr8lhk8YWqkdKRWUNSVgmsfxM UtRls1/SPeJXZL2Eilw1s4d4zUo 2020-04-20 03:09:47 47.52.59.100 1080 8080 +s Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r noregerbest WjUqVaKuts+3VcOwoGu/J+IgzM4 osSlEl5I++R5j9zMM4cAxyuBOaM 2020-04-20 03:20:09 92.220.0.139 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1820 +p reject 1-65535 +r nonanet03 Wj/47X+/PgttTMNbBF6X+Ed3y+c qhISIYc0kkQZwkcQv2d7suCVZQg 2020-04-20 00:43:24 198.251.80.172 443 80 +a [2605:6400:20:13ee::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 WkOBXp0Bo/Hc4oTgIzJhDl2LYPw ns5vLB1CDpQglLx1aQ7PMBRBaQI 2020-04-19 21:35:03 170.254.16.37 33122 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=161 +p reject 1-65535 +r Luxembourger WkmrCPaKoIfNfhgpnMVld9igd0c VOIHYEgkQ7e83dP9XPEcWcjqqZ0 2020-04-19 22:54:47 104.244.78.233 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15300 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,11371,19294,19638,50002,64738 +r snap277 Wm2FRbCgt9ajXXwPH0nNUWw4Y4k 3VoHJnN1bGP4E7sJXP+HbW/7B7E 2020-04-20 07:19:55 109.128.84.6 40803 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2940 +p reject 1-65535 +r Unnamed WoavyewcTnvuEb6YUKJxtSHI+c4 NTRmR67iyhigfJRbaTLdFIwEkuM 2020-04-20 02:12:13 102.37.12.136 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=294 +p reject 1-65535 +r AcMNPVTorBox WqKsNz0TLiHxG/+ZFnr5K/HLfEE 8wsHcedKAYNaMFO42+R7KZIY2Gk 2020-04-20 04:14:37 188.226.222.19 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48 +p reject 1-65535 +r niftyguard WrwpqeYs2zzyBVUom0RsxyJFcQs vycRnpKBBGo8IJ1ES0J6bDrVdqA 2020-04-20 12:44:28 185.220.101.239 1239 2239 +a [2a0b:f4c2:2::239]:1239 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r Default Wr0Gqp4RXbNIBTcDvydQ/1UAxw0 pZrzBehXC9ChLcdoQN//KKUtG78 2020-04-19 20:17:26 108.81.207.192 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=262 +p reject 1-65535 +r schattenbahnhof1 WsRtOTx+H7DffzQkc3I5on+Vhsk 9EXKfUr3xc4iymMVUTeuo3uxEh8 2020-04-20 07:20:49 188.68.53.92 443 80 +a [2a03:4000:6:e34b:7cf3:194b:368:22d]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2710 +p reject 1-65535 +r Unnamed WtAO3o8OpSb2wXcMhoj4t4asvW0 8c8Dzu1aKt+oUHVylwPd4hi2vLI 2020-04-19 23:59:54 107.191.118.171 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=97 +p reject 1-65535 +r Netwerxtorexitusa WtHVNTc8BbsWJL0qdt3nE+l0JA4 TSo36JEuM/mkgOM51sI1Mm93EA8 2020-04-20 04:09:12 173.208.195.102 9001 0 +a [2a0e:b107:3c0:fed::ded]:9001 +s BadExit Exit Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ULayerAssange WtP7ZY5JC62VFfNjN0qkHWXTGgI ruQYLMnK67lKP7qD4TRFaxDiGGA 2020-04-19 23:18:22 107.189.11.246 443 80 +a [2605:6400:30:f645:938b:e84c:1249:c27b]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26600 +p reject 1-65535 +r Unnamed Wu21b2jUaw3xKonMZoAIl2w3Y9U /tWHKBsXkjFmLl/Ue321Yex2brs 2020-04-19 23:03:04 37.200.98.117 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1220 +p accept 6660-6667 +r snap277 WvFj/ZKlzEtmib8HWQXCSoSUSCc fPMRLfk6WIsGWtZVOLYOdTP8hpc 2020-04-20 11:49:37 80.6.160.152 38901 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=739 +p reject 1-65535 +r whitenoiseRLY WvnpzFkD8R9taqYB6yEuVprmbJI MmL9olvByErxUmtgJy6TsrjLOg8 2020-04-19 20:31:57 159.203.29.240 9001 0 +a [2604:a880:cad:d0::2bf2:2001]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=112 +p reject 1-65535 +r FuckTerfs WwJqZSyfG4+mogLK4Ldqz67YIIw l0dloYQ5ctjnw6ucoGUvOvX75mM 2020-04-20 06:33:36 49.12.6.97 9001 9030 +a [2a01:4f8:c17:23e1::1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9690 +p reject 1-65535 +r neurosuse Ww26wshUuOsODdOa2Utm8v7cSHE Vsj6VgR+nHYxVT1OxmbOTT4kzNM 2020-04-19 23:05:43 159.69.27.103 9001 9030 +a [2a01:4f8:1c1c:2170::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17100 +p reject 1-65535 +r fastlane Wx8NrzeKH6/P1fqc3GbRAj3AJ24 fOGkir5eiCdwTc8msi8mA9sPW4E 2020-04-20 01:59:46 178.63.25.10 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=63400 +p reject 1-65535 +r NyquanKHW2 WyCijMtsWTEk4ld/qqH12YtM0zk E3XnsqiYY1X/vE7lvYGl2iJRQoY 2020-04-20 09:24:59 31.16.223.74 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5630 +p reject 1-65535 +r Unnamed WyOIW5hED65YzKqFvCj928rleOM qh4wdflCEC/9DqGiuZsZ77Uh6sw 2020-04-20 12:04:00 158.69.172.225 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11200 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed WyVljhwlbN9M9s8Uvlxt8E/8O+4 XMwfrr7iseX2/8Tdz81HHN6q9lw 2020-04-20 02:47:22 5.39.185.164 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15 +p reject 1-65535 +r notamateurhour WzT8MZiBk4xt38bbWtz7U4GbdZU Szahc6iu6DOjCtxSV6/HXsvRGZ8 2020-04-20 01:05:25 192.34.80.176 443 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=670 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 WzZU6RdPs/im67HJQJbW5ugbivY 0s8scJVeU6ojkcXaCsvSJ7N96lM 2020-04-19 20:18:01 73.244.74.74 34111 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=72 +p reject 1-65535 +r FreedomIsWon Wz7Ih0GFlrvpopHCqEWk7/irBbg 3564zI8ZTOjd6YHY/8xuOqhEdDA 2020-04-20 03:32:20 144.217.85.34 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5340 +p reject 1-65535 +r LauchRelay W01rhFrDzJfrMWnQx3RGk2QyKUg PYX5TQ34hMKr15dYZfgrGML9TWg 2020-04-20 00:39:12 148.251.55.246 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20400 +p reject 1-65535 +r snap277 W1OyuIAqeno6Ag0zNrx7Rmm0q5s LwBX2V8Yvm1DXjCQ25Kmxs8Cc60 2020-04-20 06:12:19 160.179.201.118 35175 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r foobarShizzler W3AdXIBvkdijxrPpJiRyfsQ+JsI 3PKJ/wJpw/bTWyebF7ZkXOxbnaI 2020-04-19 22:16:09 51.38.115.191 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r raveena9001 W37NgDELNea5X8iH4UPIic+MKEE D9KjfGO0ME38QfEhM6rffzPFZoo 2020-04-19 22:16:01 78.94.186.133 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=945 +p reject 1-65535 +r OurHelperForU W4eznIS4CNOm9vyTSJnBGAqFd/Y y6Y6C2BktAoYOANJVCOoRWGECoM 2020-04-20 08:39:18 109.74.11.81 9899 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10600 +p reject 1-65535 +r Hawking W5PlziYOaDstIm62twGj7Buit1o r+JGwISW7MsQ0a8EMCTh/clqPDg 2020-04-19 21:14:05 176.123.6.20 443 80 +a [2001:678:6d4:5000::acab:9799]:443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2030 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r niftyguard44 W5u3pUPCwDWkI6a0EXgOUGRXgsA 5GvG4y2NF7fQ115AW5INlAk5rFQ 2020-04-19 22:15:54 185.220.101.163 1163 2163 +a [2a0b:f4c2:1::163]:1163 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21100 +p reject 25 +r gurke W6GbXVqwy5746jPad1hbdUSUALA g5u41iHls5EZOVUx0pw/IN+CJYw 2020-04-20 02:20:19 109.70.100.8 443 80 +a [2a03:e600:100::8]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=108000 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r v5p0j W6Nej5PqyToB4O9EK+cmbRlT8AE TirCzX7o5jS3z+6eS+rTxOQUtm4 2020-04-20 08:20:51 198.181.40.229 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1940 +p reject 1-65535 +r Richie W7UeZQNm0UyVAn2y8demm8WwBnY HnHhDLC4GKoI83VsgkaWlE0Pwi8 2020-04-20 00:29:40 217.79.178.60 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27600 +p reject 1-65535 +r Unnamed W71czv2pD0J7IvKfU7EZUxM3pks 6mo/9Ox0KLsJr9LdiH5JE8WSUMI 2020-04-20 04:19:30 85.212.56.69 9001 0 +s Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r theia8 W/FxY8vnPYzZ/b4DDJROoFcH2pM pLV/eD71x6muZfTUFksxd6VaAjI 2020-04-19 22:57:55 50.7.74.170 443 80 +a [2001:49f0:d002:2::58]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7900 +p reject 1-65535 +r 6bbe3e028359 W/OuNfREFjuxUda0xZJPNHXZekQ oOYGcWiIJK+cuvQKv+2HQcFrJsc 2020-04-20 08:17:37 51.81.253.206 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 W/YpF0rGlIypnn2Qd3rTcBvu8I8 DUpJM1wkzHmChz2xwMV+ICmitdQ 2020-04-20 00:10:34 42.62.251.233 35471 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=110 +p reject 1-65535 +r Unnamed XAvZHlqcrH+paYw2hg5abCHuZqY jKq2KHOwxNVEnUDIFYC7xmPTwTM 2020-04-20 09:43:27 45.9.250.135 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1500 +p reject 1-65535 +r Unnamed XBPhCIlohibtqAYXefqFkXeXpic kgyUmZZ3wmMhW5zCL2ftNAPJEVI 2020-04-20 10:14:38 185.225.17.91 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13000 +p reject 1-65535 +r snap277 XCEyFddIMS68EoWIwPhoWEF8RZw BYtupjFaKT9gNh+f4m+3hsxWbc0 2020-04-20 09:54:44 92.238.16.37 37379 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=616 +p reject 1-65535 +r freiburgTKom XCGEU9Xqzik2fWMaKiDjJZumclU I5+0gW7ygAtshv9WpJBb9map88Y 2020-04-20 00:12:55 217.233.225.133 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3650 +p reject 1-65535 +r collaborator XCITeeV4LnaXN359tI9ysvZJ6eQ W1KptRXFxaFD+EkRwCID0udTJPk 2020-04-20 03:36:03 185.248.151.143 20 21 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2790 +p reject 1-65535 +r TotorBE4 XEoWgvrfIh30b/oy/mWCbc95GF8 ldoWMTIlEjvckizLL0ZuRbq3mOI 2020-04-20 09:26:18 137.74.32.28 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r nortor2 XEtQX8/ODjQKhtDnlgskoT7VZ3w WPLBGmH1rjMXOxwI57bKbjy8Wc0 2020-04-19 19:28:04 217.170.205.14 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20300 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r KenRelay2 XF1h8nmqCBb1Bv1c6Gww8lYpHd4 U6s+Nj6qMxmT0t7YiSYF8RFw8SQ 2020-04-20 08:17:44 51.89.151.234 443 9030 +a [2001:41d0:801:2000::26db]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r godspeedyou XF5q9OpEa8GGoFOS/W0cmKoHd/w eEhRnh3F5lWyCVClnbdNL145wCw 2020-04-19 20:21:29 75.48.41.202 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9400 +p reject 1-65535 +r AaronOVHSG1 XIpg8/k2wfzWTZrPvP+JjlGk0Xk TXRE40i915Vfm1sNdWrg4IgodjQ 2020-04-20 11:47:01 139.99.97.26 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=669 +p reject 1-65535 +r t4cc0reTor1 XIuBGId3jc9wXz058Z5AohiJRR8 5dD4WierG8wgvmnnPZljNHMmZlI 2020-04-19 22:33:50 51.15.50.36 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17600 +p reject 1-65535 +r Onions XJaJUifkL9dLSxRFqa5ZvZ/0KHk Vsyfxba6KhDbx/+kMhjHoKGz1lw 2020-04-20 01:37:40 18.18.248.17 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7770 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,989-995,1293,1723,1755,1863,2102-2104,3128,3690,4321,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8008,8074,8080,8332-8333,8888,9418,11371,19294 +r Unnamed XJkiCHKPOVAXpkLShaQUeX+Mtik p8YdeeCxIigexenHk1RSzAebX80 2020-04-20 04:51:14 195.154.182.115 62768 60077 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=98 +p reject 1-65535 +r affectiosocietatis XJpm9Apj2cjflwDm354f1H2K0xc 68aMbpiOQ6Jgme/oc4DR2nqZiFg 2020-04-20 12:26:03 91.121.160.6 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=867 +p reject 1-65535 +r StevesTorRelay XJyjbTE0DKZL4JXPUO1xpQCFpHA gogOXKSmnlpMwDBYWqvJCutLXcY 2020-04-20 09:00:34 142.162.17.247 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5300 +p reject 1-65535 +r trustytohr XKEuTpcRAsxRl7u35VYlrX5BrO8 9T2agJJ53FJYkNIFWSCZCeq9m3Q 2020-04-20 01:34:14 37.187.2.230 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=685 +p reject 1-65535 +r goldman XKScl8SoAC223fhoWy3iQaEWr9o 6TqZ38R7gzdbPHORXPLpppHz04s 2020-04-20 06:28:09 81.95.1.115 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1790 +p reject 1-65535 +r Swords XKXrpI6tBM0aAxGU7BCXm2EceLY SX5RvEwpSj6lM9OoM0uTFljJ3RM 2020-04-19 22:38:28 128.199.132.7 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=610 +p reject 1-65535 +r snap277 XKuv0q0hfBqTQE/ukrCEWKd5Qlg pR49QsgqoTp4S3AqtHvODCClvw8 2020-04-20 11:34:29 24.38.210.244 38789 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1430 +p reject 1-65535 +r torminator XLMMJku56xfPL8authFZO1TDccI yT/rqIAs05Uds2lkfxU6aSA5jNA 2020-04-20 02:20:55 5.150.202.217 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6200 +p reject 1-65535 +r dragonfly XL1FOUVzgoKRyP6XgCMv39DSAt8 +TFyJWtJ2aVRvXeyOQ49oHdbDFs 2020-04-20 12:33:23 192.99.13.48 9001 9030 +a [2607:5300:60:3e30::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r niftyentry115 XMw1acZ7fxu3M2ZNQ99GRfKksE0 1bO+hIC9O3RAYJXbNqgYpTYyaSQ 2020-04-19 20:26:06 185.220.101.115 10115 20115 +a [2a0b:f4c2::115]:10115 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15200 +p reject 1-65535 +r polizeierziehung XOOtitBK3mbAA3o89ff3pA1Iogs hh/kLkwVnSRwT8i8ssEHxlZlwK8 2020-04-20 05:25:08 95.211.138.7 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p reject 1-65535 +r snap277 XOdvZPCjuIgaMrn32GD9zoAHX2Q 6vcVYcDKerzdkgM6mlEIKcMi1q4 2020-04-20 10:45:53 176.167.233.223 40205 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=81 +p reject 1-65535 +r snap277 XOoi7JVZAvGnylvtM98Xszx+VBY 0+H0o+GGYfLJ4hPH/SYslFcX6ig 2020-04-20 12:38:15 167.61.123.140 44567 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2 +p reject 1-65535 +r ktor1 XPNC271hcL7gDNUqy0B21VEIXn8 3oTpgxVjcnc7ZyCGSKDbiiSrZPE 2020-04-19 23:14:11 95.216.149.161 443 80 +a [2a01:4f9:c010:b11::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33000 +p reject 1-65535 +r helena XPxIZ4DL1ERrdk5RYI1ldAA7NQ0 Aekz53Avttf+7OFamUrhALHXNJM 2020-04-19 21:40:36 136.243.4.139 8080 8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.1-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=88700 +p reject 1-65535 +r noisysecond XRIJZgfqt/+BkNbPrKOsN5jOBeI 4qH/FJU/ypAWKyeZRvtjQ1tdqWY 2020-04-20 01:53:42 85.146.6.52 9003 9032 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r anduinExit01 XSYwN/wXVZazo0QTKwt1Xrj7HRw CaBd5YE3FEyAkqjdWAlBus8zM2s 2020-04-19 19:26:34 185.42.170.203 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5610 +p accept 20-23,43,53,79-81,110,143,443,531,554,563,636,706,989-995,1193-1195,1533,1723,1755,1863,2102-2104,3690,4321,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8332-8333,8443,9418,11371,12350,19294,23456,33033 +r tordebain4 XSdiw2Tq5p2CGAyfSLyEev80TFg M0XKNE0wK2KduX5ph8zSqvGTLZA 2020-04-20 03:40:01 95.217.3.165 443 80 +a [2a01:4f9:c010:520d::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2900 +p reject 1-65535 +r theark XSqMqhGdBShyLCQ4NQ+rDI3gGrc kqkkCrc6lWo8oW8UxEmyyWngAqU 2020-04-20 10:35:17 78.46.98.207 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r gabriela XTpX9JT9B4J2LFCKZpX0/P8WH6Q xqD+c+UPGPn8y2Vx9c8kBn9BdFE 2020-04-20 04:11:49 164.77.133.220 9001 9030 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r vlima XUG76RjE3+79YgytlJ34YqIcVlM 7HuRevN6vcVKLNvXBBtVosASZL8 2020-04-20 01:39:04 62.217.124.253 443 995 +a [2001:648:2ffc:108:dcdb:eeff:fed8:9f]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4020 +p reject 1-65535 +r eir XVRPQFXG/S8vaS1RnPp6Yn2NOQM 5WFD8FdOCVFSwYoyUjSdxdgSdPA 2020-04-20 09:29:09 88.198.36.122 443 80 +a [2a01:4f8:a0:23a1::122]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6400 +p reject 1-65535 +r snap277 XVV2QnExcbOaxafPhV+VvvNiHkU 2eJsIG8wBoK8j2AOemSSE+N4X2I 2020-04-20 08:52:58 72.198.211.108 38463 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=91 +p reject 1-65535 +r AutonomyCube XVgRhaEnfLabOtasKlN3oAY4Jh8 3nNyD0cXWPb1CDOpO3hMwC79Kjc 2020-04-20 12:24:08 90.187.52.233 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2390 +p reject 1-65535 +r snap277 XWbjXRubTRx2LF0VAjkoxucEfvc mSgbh7Fxa1HG+/DXJOD3hPL/9+c 2020-04-20 12:29:41 179.24.243.236 38947 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=266 +p reject 1-65535 +r UnivUtah2 XWmndCP+PSo88JoBXO2fCnueONE zHAgTV99+mQoQPyBE1v9OSvT4jk 2020-04-20 05:32:33 155.98.5.6 22 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3200 +p reject 1-65535 +r SwissLove2 XXFtu82NUuBU4pZZzKKnVxgy16s gFKVcxVhquK2379iGbbRTi2ZQc0 2020-04-20 10:26:15 85.90.15.34 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1100 +p reject 1-65535 +r Fission07 XXZXcLTbEQ2IeHRXl4q0AIz2XKw FuuK2ZtipUQuvYKetkrF5RArDDE 2020-04-20 11:25:16 37.59.76.254 443 80 +a [2001:470:c91a::6]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29100 +p reject 1-65535 +r Unnamed XXd8bW09qt/vGQIY8lqRemgsQIs VQH0UAqKew8oYdSd5SlcAS57vfI 2020-04-20 10:59:18 95.216.115.173 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=26 +p reject 1-65535 +r nsaciabrb XXjX0qFva00xZv2dH9SnFbFKVt8 gplbgxPW1xw6mZ5AB3Jpx26wKSo 2020-04-20 00:22:03 173.67.26.206 8500 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p reject 1-65535 +r robinvps XX14m8NRINHgVaccNST0o+DORC8 Pdmsh6gPSUUvhxwtnAifh4vyTzE 2020-04-20 06:30:33 167.114.7.166 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.15 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=62 +p reject 1-65535 +r duhorg7 XYKXZYrQOBeMgg5dZzoiSCkFNzc 92hL4F32Uonvi22S1gAvXTZkWA0 2020-04-20 04:16:00 207.244.75.198 8080 0 +s Fast Running Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p reject 1-65535 +r TorOrDie4privacyNET XYSQDb5tY2VoSpZ1uBporOlXemg xPeDcodJaDWGnpnl/StTMlJxdWw 2020-04-20 11:53:31 104.244.73.193 443 80 +a [2605:6400:30:f7ca::2]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49600 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6679,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,51472-51475,64738 +r Unnamed XYjz2nMaAos9fIElLHtrmB892ic V8XKxF2/tHa3WE1b7D1C/As1WSs 2020-04-19 20:45:15 188.226.152.210 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=701 +p reject 1-65535 +r notespace XYnBy/Hy6EDMSPx1pGCQliqD8y8 x3UV3I4THYH2cco3LKx72pdIomo 2020-04-19 22:51:35 74.207.231.186 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=183 +p reject 1-65535 +r a6xzL5 XZYiMm0a5A8vTVcL4cf8dQXzUow oGKEIz/j2n8GRP4cXngcCDXJ3Lw 2020-04-20 02:45:10 188.244.43.25 9090 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=4990 +p reject 1-65535 +r HobGoblin XZb2H+0mwpkJO0sECe06GHZabbI kcmB46i8FZ/tFctI2F/jSnZWY74 2020-04-20 04:17:26 217.170.205.107 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=31900 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r kaspersiki XZe3V91tzNrWP4/4/th/Y01NKSs gIpDG3CWG9/MkaCQsoK8pv+dPqI 2020-04-20 07:28:56 185.193.125.27 9001 8088 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28200 +p accept 43,53,79-81,88,194,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r t0rjaghman3h XZgT6c4j737s1GXfILnYcu3ZmOw xaG3PVggD/xz+41lKgskIVbYYEo 2020-04-19 19:06:46 92.117.125.99 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=256 +p reject 1-65535 +r bbkamy XZleyYPtPfnaq9Mrm/FUCv9CpFc YSjq9j2Jf1ymSntN8sB0XRP6L8g 2020-04-20 04:39:06 167.114.244.112 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16300 +p reject 1-65535 +r snap277 XZ9c9Hpm6yqYv3qg9rVXrA3RC+g vOD5d1GCJ/6wfYp9ZF2RVu8J34o 2020-04-20 07:22:16 82.28.219.66 45605 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=49 +p reject 1-65535 +r prserver XaabCGuDP8Hfzy2ci5w7AxN8fv0 zk2jyBtHKp61FqWUE8LN2Fmbmbg 2020-04-20 02:06:16 45.33.13.63 9008 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9110 +p reject 1-65535 +r Chenjesu XbmuJ6ROt7R2zASmbGenHJegAeY jW0AONNDXwnX6AfKMcO6v4S5+eI 2020-04-20 10:02:32 54.36.205.38 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=91000 +p reject 1-65535 +r zwewwlLV1 XcQPU1ft9ICakBCCgXIHLJWnNRQ CJLo5DyQe2HkXTpsikaPocI2y+U 2020-04-20 11:55:32 195.123.209.7 9001 9030 +a [2a02:27ac::19]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=5380 +p reject 1-65535 +r Unnamed XclFzo+yo35uJ5Xs0nCbsh+HFLA Iduh7NHIrfHECf7L8ZLaihrwgsE 2020-04-20 03:46:13 207.244.70.35 443 80 +a [2604:9a00:2010:a08d:10::23]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ph3x Xc9yppFhjQeq4uXfm/HZRQm7zzg xYni2rRgUbAsLt2blPGUM+Gkujo 2020-04-20 11:18:07 78.142.140.242 443 80 +a [2001:858:2:30:78:142:140:242]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4040 +p reject 1-65535 +r Innominato XdX8lO9YcEMGyGpK4kQfPZ+QeRk RN7uWPItFi8vYGON1dZXT3JWwU0 2020-04-20 10:17:54 78.13.197.127 9010 9033 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4 +p reject 1-65535 +r NovakTwo XdzwgxQw6pZpF+YmajUvT4SnVdY VmwTAj2uU/+JLNAcz7/NScLQGKM 2020-04-19 21:17:56 108.58.144.234 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6100 +p reject 1-65535 +r niftylinkrat XeN6M3Gq52OHSOtDyfHOZuCdRHA jbkEmtR32QWLsiG82eAV9LsiUlE 2020-04-19 23:32:22 51.38.164.157 20 21 +a [2001:41d0:8:d077:0:1:314d:208e]:20 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=74000 +p reject 1-65535 +r CrashMe XfUU3KGRhp3F4pDMrdZyoM7pHSg fo1FtO4Dru+Jk0iFUbGd6F8nZIM 2020-04-20 12:24:16 213.252.140.118 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1360 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r TitounNet XhFK1ghCjCOzjMx32iLkzQwn8s4 uhCvvkttxwnl2MwHY9ES6S7yzGE 2020-04-19 18:55:04 213.167.242.183 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=775 +p reject 1-65535 +r Freedif XhgBT3kaH7omvHkkfppcYhJ4iqg WkcFLjHIxmgKLpHDeFD27j/htJQ 2020-04-20 03:36:38 113.161.52.138 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=464 +p reject 1-65535 +r Frodon22 XiE0zo06O3ql5Ze47+PmWbA8ArM ogI2ZqMLAS34a+lcUMXkh78Uf5I 2020-04-19 21:37:50 163.172.179.31 9001 9030 +a [2001:bc8:4400:2b00::20:331]:9050 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r snap277 Xij3KONh1iRZjaEoHUBmfzDsc/k FitoW8Pfgcf94y8G2gh4dnVOSOI 2020-04-20 10:42:32 46.2.133.110 34901 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=39 +p reject 1-65535 +r Unnamed Xin0jBLeGcPSbl8YvTJ02rPMvVo YPTL8qypoa/lQbk/7CinyTlRP0o 2020-04-20 07:48:12 13.71.87.191 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=490 +p reject 1-65535 +r fluxclouda Xix9He5/E7mHQzo9Igyhn32pBHc DTDAD+LLfH0sVL9fP6rXfvDARKg 2020-04-19 19:38:20 104.37.192.156 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2000 +p reject 1-65535 +r 4dfd6315e32b Xi+n4NjxMrQHjk9Aj+AqXKZ3Z/U 7rxljCL0+f4+ToTN2q7I/Q72CsE 2020-04-20 08:24:28 51.81.253.195 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 XjDC2tpAmnmCo7U53Ca7a+X6mV8 HeQtS25Oj3i6PiOgzGLMox0Crns 2020-04-20 07:37:01 78.236.46.218 36035 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r 1TD XjqqJ5Cj6E/pVzglO1XovN9ginA DqBF2acc/ieT1dy6Hnnsqrz4LLM 2020-04-20 00:22:15 188.192.32.12 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=999 +p reject 1-65535 +r MacarenaValdes Xj/TG53CecBq0FHWi+CJFPbNO0Y q+xf7iAdx6N1Q+PcucIwkxuI8es 2020-04-20 09:50:01 201.214.186.88 9001 9030 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 XkoPxO+0d/WucwyxSCY1s0bI9Sc P4GYjHnHoFD6L2MT8wugnXeMDyI 2020-04-20 03:38:49 92.186.35.119 40615 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3200 +p reject 1-65535 +r Unnamed Xk0ebTFBPczBSKgFAiRXjLvxKIM xs3BP4wzmi1P9xNmh0IfXUIyXSE 2020-04-20 01:20:56 37.191.202.138 38443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8700 +p reject 1-65535 +r niftydagon XlK+oiEwWY8gDQXEK7ZnCcJOj2c 2bd9HFGNUzJQCGnHGoYy6bp1k50 2020-04-20 08:54:54 185.220.100.247 9000 9001 +a [2a0b:f4c0:16c:12::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44500 +p reject 25 +r Backplane XlZzjn+XqoHe71mvKElCk9+/zN8 Hv+nenmp2jd1ZmLssbT/khfmlEg 2020-04-20 08:25:05 172.98.193.43 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6320 +p accept 53,80,443 +r snap277 XmstK5eR1oXnQ09xZwj98t3ZOa8 qPDVGJHmjRWhekEyj4ir/NysP+g 2020-04-20 10:22:18 153.218.97.85 45281 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=310 +p reject 1-65535 +r sorrentini XnYqWLH3/5LnkaHqTxhpXKxmd84 F9qmUwH1k3+NOWBPDCmrOFHw/b0 2020-04-20 04:14:38 139.162.7.42 443 0 +a [2400:8901::f03c:91ff:feaf:a05c]:443 +s Exit Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1130 +p accept 53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,5269,5281-5282,5555,9418,11371,64738 +r AnonymousOnion XotJtmG+a6Ysfjj7ar3pFRn9Ycg CDzs5CSQ3sV2gP1LMoDlcwscecQ 2020-04-20 11:10:03 94.225.136.164 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=220 +p reject 1-65535 +r rofltor20 Xo6sSnvDuCq/cxB1yyflTyaBvEk grw60FNjqmxT2ydn+wmqClH5ca0 2020-04-20 10:29:11 64.137.175.65 9001 9030 +a [2607:8880::475:41]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r NinthPlanet XqfN6roztUpzaFMwyxV+MoQpSuI Q5/nsPG6E2yhaA9Vj59ZTNkWCr4 2020-04-20 08:33:59 185.82.126.137 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15400 +p reject 1-65535 +r yellowDog XrpKn0g+B/1xe6gd1vc0SvgvfV0 uVPVtjmu6AL5r+V1b56MDRDkaUo 2020-04-20 04:11:02 178.73.210.118 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=565 +p reject 1-65535 +r pansomatik Xr7iyE3NjILYtU4Qu57mjzRD87M CUNBbza2euaiuzrYwoKKvWMhyG4 2020-04-20 01:03:23 91.121.116.34 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=230 +p reject 1-65535 +r Lititz Xt1mKNXhPtAgoeoDwZRN1nabSXQ 1A/XHsBBPGPmuMvT7HOaYnFMr8c 2020-04-19 18:58:01 192.241.252.63 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=280 +p reject 1-65535 +r MyCoolNick XvCqru57EoLaDbq5Rmm3PjndUbY NxMbul6+ojkaUmQh9ofh7mSouf0 2020-04-20 04:54:45 95.216.145.127 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r ClericalChanneling XvZFC+gca1Fim0fdabOC98tILCc 3vZFJnRR42GFt6CFLIR2tMkW8eo 2020-04-19 22:42:51 173.246.3.69 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r TheK XwVj+VzUNiOv0L2jXaxWXOkjCgE QZ2cJXm3PtHEkW4oeqbiz3yNKxY 2020-04-20 02:23:10 86.245.143.76 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=843 +p reject 1-65535 +r theglassnymph Xwv/i/LHUo5B2xSSRfRzbHXMd3k zGZ/1y2+sXEq/MVWs9CaM4YajqE 2020-04-19 21:19:17 185.225.16.146 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 22,43,79,88,194,389,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ParadiseTorRelay2 XxyVWoP/7CVI0qRjfSzNCRJKGVc gTDQPcmsNotkLzuqFNvxXnM3K8Y 2020-04-19 21:19:50 193.182.111.18 80 110 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=8610 +p reject 1-65535 +r ooty1991 XyTyfHba0DtXcX1cTf40GlEpSuY 7L/nUuPDuyoPaiZlLvgI8bjX5AI 2020-04-20 03:00:54 50.39.160.224 9050 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1500 +p reject 1-65535 +r Planetclaire61 Xydqb3qnSvsq8QDq2ijHpvSLpQ8 156Gp0VpnTAe/6GlTo1EFqEeoM0 2020-04-20 06:46:17 81.7.15.101 80 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r QuintexAirVPN7 X0zRIJmvIPr5rf3OxlMWo3bQIBw hu3v/dkUipSIZbeq4CBZOcWoqy4 2020-04-20 11:17:39 199.249.230.118 443 80 +a [2620:7:6001::118]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14200 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r ThereIsNoCowLvl X1jpQX35SmZSmGT6ETRjVhSVikQ ow5mcMvHSSCoSge9NTw2oJyjHw0 2020-04-20 02:23:38 176.9.118.73 9993 8000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=94000 +p reject 1-65535 +r PsyloNet X1pZ4+ywmHQH2RarveYGE/g+oek NY7Bt707BIU09xn2v3+DlTJrF0c 2020-04-20 04:16:40 91.122.100.13 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3100 +p reject 1-65535 +r snap277 X11Qya7H/xW0YeJ0JFjX9w6upA4 jcNIHkNf/7ACU5qHpl6NPAPXdek 2020-04-20 12:15:50 90.9.95.79 45249 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r DrSaturn X27lcLOjZBeFHtLF5B/zf9RY2R4 Y5kiQRkPwSh3+fBnqjmlO/Gvr10 2020-04-20 04:12:54 45.56.100.84 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=740 +p accept 20-21,43,53,70,88,110,143,194,220,389,464,531,543-544,554,563,601,636,666,706,749,853,873,888,902-904,981,989-995,1194,1220,1293,1492,1500,1533,1677,1701,1723,1755,1863,2010,2033,2056,2082-2083,2086-2087,2095-2096,2102-2104,2221,3128,3389,3679,3690,4321,4643,5000,5050,5061,5121,5190,5222-5223,5228,5555-5556,5800,5900-5909,6463-6472,6660-6669,6679,6697,7777,7990,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8887-8888,9006,9101-9103,9418,9999-10000,11371,11753,15000,19294,19638,25565,50002,64738 +r FissionMasq02 X6dZb7K6LIiTN/i4LdcSe7skDU0 byDlN/IMwu/XVX1oit+iJHN+cXE 2020-04-20 04:25:56 185.65.134.175 10750 20753 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2480 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed X7F94uiXYlzcrpmp+naJreL0ppk na3IpZlqYUYYjyJ7vb6N8gOk2us 2020-04-20 10:10:08 54.36.112.241 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=730 +p reject 1-65535 +r torreypovich X7OEYF9T3L8csCFD0xjaPo7jiiQ tDvBXu0zn6YFE5wc1BD9KG/0ip8 2020-04-20 06:36:14 151.236.218.107 9001 9030 +a [2a01:7e00::f03c:91ff:fe46:7e35]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=92100 +p reject 1-65535 +r Onyx X71ZtIt2zLImrX+laX8bcyfBRRs f7sZnAbUY318087tPbDtSIFZ5b0 2020-04-20 11:50:49 89.163.242.17 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31000 +p reject 1-65535 +r pzodisoei2 X74TJC9n04sS3gdFunH06lq9BPA ca85ev1dFivjOwwmaTCeqIM2NKc 2020-04-20 04:18:10 45.10.22.18 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59 +p reject 1-65535 +r Unnamed X76esO1SjkALsf0VgwOmVVbdSaQ wN7h6htTc5LTUjSa70AWuToFfZo 2020-04-20 11:57:01 13.75.233.3 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=375 +p reject 1-65535 +r Grizzly X8kj2EkBQhGhUEeOOxXEolht7xM FFT+j5Zu4Xrgc/29xdI+2M/4FGY 2020-04-20 08:36:38 178.17.171.224 443 80 +a [2a00:1dc0:caff:e2::d96b]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5510 +p accept 20-22,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r TouhouBedserver X9DsuFPPPpf293eHw7bX7TH1kf8 tJCZje10bSKYe4FxkypdSUWixX8 2020-04-20 07:23:26 194.34.134.115 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9610 +p reject 1-65535 +r GreasyRelayPi4 X9jajoja25fRMqVq3nPbYPIak5M re3mVPlR166GdotANxqBBKh8wX8 2020-04-19 23:36:31 69.124.202.194 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3940 +p reject 1-65535 +r Unnamed X9/jfWriI3vCf3UZBbg8+ko6urE Id0CiC1unOyU4bI4dWkeuSdv8FM 2020-04-20 04:31:30 5.252.152.10 44204 36132 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=211 +p reject 1-65535 +r bigfin X+Pkl0JtqSBb9Nrh5EF8Hda8A90 rqnms/OkR+kbap+q62uCOSAQLBU 2020-04-20 08:08:09 190.2.144.104 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p reject 1-65535 +r kohlhaas X+g60Qa0mNWj6npI+3N0mvKJfls puVUBBowHLFSoFfQk+nsXKLalc4 2020-04-20 04:00:18 46.29.250.27 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3600 +p reject 1-65535 +r jJbzwynG X/AtQRPwpoiNCi7mxXxhoVi3VQw +MrOCf1mcGPFR47dkz1lrthTO4E 2020-04-19 18:50:01 37.187.96.84 80 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5660 +p reject 1-65535 +r 0s1nt0 YCdbUugQQHZY/UJ47bF0nHX5Vvk LczqUFRf7hoxRAR4FnBImVWL5E0 2020-04-19 21:27:37 176.9.53.58 8443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=71200 +p reject 1-65535 +r TorHelper3 YE1xrxG5h3yJN5NrTVT7ITb/DeU EGThedXjBzHmBuxxEah3dh6eeXE 2020-04-20 05:55:26 88.15.211.247 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=367 +p reject 1-65535 +r arcanum YF7kN17kw4IVyJSfWAiGN0n9T0o k1GEhGxnlnMHbKXKm/coHkpYATg 2020-04-19 22:56:59 134.3.11.142 4020 4080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=399 +p reject 1-65535 +r PrepreUseless YGhYk6V9ZlYqB1S+47am5oCCyL4 H80DNiZXg/QJHjFdbvGek4zh84Y 2020-04-20 00:08:56 47.254.134.152 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r avast YHBoffxIkOFAZLJeGvp9ELNM4uk /Sre2iIuDG18DMBdqo66LOYkeds 2020-04-20 08:03:45 31.220.30.218 9054 0 +a [2a04:bdc7:100:23::1488]:9054 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=84 +p reject 1-65535 +r snap277 YHFHUlzC3yaxheiP1lud70DrwAU v1oBmuOVVj6zuHgZDOTARwKEX1U 2020-04-20 08:01:48 92.139.70.63 43053 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8 +p reject 1-65535 +r LeslieRelay2 YHaWUsBHEpEubiHO0fCNx5d4mnU DJ5k/LEPhpea48kV2cmDY6f9dc8 2020-04-19 20:38:21 194.182.165.153 9001 9030 +a [2a04:c44:e00:32e0:42a:30ff:fe00:e7d]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1410 +p reject 1-65535 +r nekopeg YIhRkcd0IKGxfvZ4b34c/OAX0Co QoJnPZxC6LvDYHmSsLZDO1aQn3M 2020-04-20 12:33:08 45.76.98.26 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=310 +p reject 1-65535 +r nodvrelay33 YJt1w5Dt39TEM8YfV+ef6BLJMCI xoYM7DHbEO/fAb4eXhEnBUI19SQ 2020-04-20 11:27:17 45.62.229.7 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2470 +p reject 1-65535 +r niftychipmunk YJ5Zj7agC894cpBrYCtwW2RUHFA 02EGGah1K0vGtVUkvf8lCQqgqCk 2020-04-19 22:15:15 185.220.101.136 1136 2136 +a [2a0b:f4c2:1::136]:1136 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37400 +p reject 22,25 +r Piratenpartei5 YKnh/k0CA4OkoP5Y5ZUJg9CNZec FRlUXEU4IPGJ34CmYfKp5Jm/E0w 2020-04-20 10:02:33 188.68.58.160 443 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=27900 +p reject 1-65535 +r schuehlein YMopV0WTCvpZ23P4d4NLQQDHtxI Jb4s6bqdp3K/I8LBUmSMurewufs 2020-04-20 01:36:25 85.92.108.76 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36800 +p reject 1-65535 +r freeAssange YM7VnTppUX/nK7AqKG4XrkM/Ryw he09q6MzC3W0N6KtvSKs4fRQoN8 2020-04-20 08:28:24 164.132.59.130 39001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=830 +p reject 1-65535 +r Assange022us YM7xnVKTxmJsGuAAM6K6femR8OE BK9nDSp24EGjW5UkdFXws5Ixe3k 2020-04-20 02:32:03 66.152.179.11 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6200 +p reject 1-65535 +r QuintexAirVPN6 YNNmf1auxcac9+j1V9sh3fbDYGA 553tS3/5W0RXKnAeQKG5B/2bn6I 2020-04-20 11:15:30 199.249.230.117 443 80 +a [2620:7:6001::117]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16700 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r valinor YNtIg5CFeJhACcwfVAXD+CEJTFQ 3EgHXGdJsOiPkhd5LLbnRFaRklw 2020-04-20 08:53:42 188.24.66.96 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=750 +p reject 1-65535 +r bemyak YOFYfAt+oUYrZ/wHBsDHKYp/ZNA fPExnSzd050R7asDJV7xarrl+GU 2020-04-20 01:22:08 95.165.166.133 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=718 +p reject 1-65535 +r rgiad YOTF4wbS2yKJDuJKCfm2wwrzlqg 6jlFxC1cr7QKzHDwGB5GioFnU/M 2020-04-19 22:08:26 198.180.150.9 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10100 +p reject 1-65535 +r Tor YPITnqPgZBCgXL1uglTmCpBjrZ0 PDlbS9TcA087K7/FrHp8WK9DhYI 2020-04-20 01:49:00 147.135.6.69 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20600 +p reject 1-65535 +r n0trace YQBBUscJZy7nOfJme1bvVVClEzI veEqkWqJHHmyhDFtJu61gUnFPjU 2020-04-20 05:50:23 81.169.255.125 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=33700 +p reject 1-65535 +r janus YRczdja4y5efCbZ1MEd9/8phv4g Wn7a7awEqKObCMOga7fmRPDZm/A 2020-04-20 07:58:44 91.121.143.199 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=162 +p reject 1-65535 +r DevilHunter YRjdtYDu3W/l+NPMDfHuF9iipMY Hd3c0PblVYEimHzqt8ZVZFlyXc0 2020-04-20 02:10:17 94.16.123.67 9001 9030 +a [2a03:4000:21:3ba:840a:fff:fe2e:3fec]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24600 +p reject 1-65535 +r SylvanasWindrunner YRwOyNTvkAiN0OaKtMWhl5vIBho ctw+k5u+A/o2HzfxlXnUqw7T7BE 2020-04-19 20:55:11 217.160.58.205 9001 0 +a [2001:8d8:1801:806f::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23900 +p reject 1-65535 +r HiddenCave YSdnweh3nFhWHj5es7z9X838QTQ 9acWCHjLHrzEICWhGtxdilUb8Oc 2020-04-19 19:40:53 5.19.204.140 8953 8954 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1390 +p reject 1-65535 +r Srv3MuchRelay YUCUyvBwHrVoEG5g7BKnhecErg8 8qDxkbDGZcMpACfqvasnMkGmh9o 2020-04-20 04:13:59 173.212.253.172 4443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r Cloud YVq+ot526zdgvFHnMGuqWfFc2PI MulOTIAELEGEb9oATc9P2Cj+34M 2020-04-20 04:20:52 46.166.139.111 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=60800 +p reject 22,25,109-110,119,135-139,143,445,465,563,587,6881-6889 +r AquaRayTerminus YWCB7IKVk69CMlUN5v+qHXWzepA 7sd9pqKs07Ybx20VTulus7ENGSw 2020-04-20 03:52:50 95.128.43.164 443 80 +a [2a02:ec0:209:10::4]:443 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13400 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r ingdal YYdbuH98a7m2Vr57leu/s9VQDJc 3f6mQMENB7ZdtLAksjfnJ/XGJts 2020-04-20 00:27:54 79.134.235.253 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=630 +p accept 500-1250 +r theredbaron YYt6D/gsNttS+TfysIX8C1iCR/s hBuP6OLFCkBOFWt2vUoXUXcByQo 2020-04-20 00:11:23 213.157.15.235 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=87 +p reject 1-65535 +r snap277 YY809LOkIfgB+A3ohZ6OnYXGBPU nPazHAYHU6se5ci7UDO5xfyLAj4 2020-04-20 03:13:52 134.49.239.153 43683 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=404 +p reject 1-65535 +r niftytucotuco YZNJ2CQkxgHK65QWGkz3eJk9ruc 02ty0MclOiZdYdO/6P6GW6VYOis 2020-04-19 22:26:07 185.220.101.28 20028 10028 +a [2a0b:f4c2::28]:10028 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40400 +p reject 22,25 +r codebykh YZPTCNkdbzW57T/Hn8CQf9XIUs8 KVlj5I4Cf08gr4UUMc24VBC/gbQ 2020-04-20 10:46:19 185.82.126.182 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=5900 +p reject 1-65535 +r Lupe YZj0vsG62kwbKf2tj6x42TfafEE 8UD5n3ox0ORo0Z2yfIqBTNbuAhk 2020-04-20 05:45:15 185.174.101.106 34361 0 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2760 +p reject 1-65535 +r citizen17 YZoY4pYAWLe9OHGder/ezLNUeA4 2k23xDYHUwMEO4Vm1tGenJINifg 2020-04-20 05:13:26 185.10.68.66 9001 80 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r MuellerReport YZ5BPQyK/5W0VmInBwFqere02l0 SzkjSDyw4NaIq3clOozpT+baeaU 2020-04-19 22:58:03 23.129.64.202 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8800 +p accept 1-65535 +r VMHosting830m Ya95DveMLXPI49jiWW1CoarOE1k smyCyKpR+aiAt14A4cXvEXhjoXk 2020-04-20 01:57:41 213.61.215.54 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r zenhoth YbIh48+z3o+UNVPEWrutbPmIzP0 IU2FEFRfvrXUM7MIOLSRdMiwj1Y 2020-04-20 01:14:41 93.104.84.217 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30 +p reject 1-65535 +r pecurina Ybi9yRqnvJoF61o9ZS//iMmOaRE EnaYEhZEm2K7Yk3+PmLsuvR+GkQ 2020-04-20 05:27:33 62.141.39.160 443 8786 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59000 +p reject 1-65535 +r sendlingertor Ye5Me9gOtMnIsp1ek3BEFg5Kbzc zCVFSQnamrBko2duCosLQDcSGoQ 2020-04-20 04:49:38 51.15.112.19 9001 0 +s Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r IchWeissVonNichts YfF5CPw0wFWpVXTSDwnh7pkPygI 7iU7D7V/MRuxiMN+0ldF3vqpFPc 2020-04-20 01:31:09 88.72.49.12 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=942 +p reject 1-65535 +r fsocietyRelay YfJOuuxCkPrDHPNPD/zadlotlwU djK0Ps84CEUbVW7ukzLyocASllc 2020-04-19 23:19:21 51.154.195.73 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12600 +p reject 1-65535 +r throughhere YfOoQPYe7/9oLGJDU07OsJrf47M N4Qb+6OjIXFfs1+1Qe98Z76DkeY 2020-04-20 03:51:17 100.14.156.2 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p reject 1-65535 +r KAPOW111 Yfp+fHZld9duur8ZMwmT3vqK88M 3uzdb7nBxNrBp/jsY9z+VHr4ESw 2020-04-20 09:55:43 54.36.172.32 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=31000 +p reject 1-65535 +r Unnamed Ygar3cKewdk4giNYDrSwvIFXZgk Qfw7pps5O5ggBCgbeBvwwmqHz7o 2020-04-20 11:02:08 116.203.209.85 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=30000 +p reject 1-65535 +r torrunner3345 Yg24WcsPhrAvgZGdoQeZ5x2Sdio zV1dWtIH8oRla9ZcN4aGcNkb0jw 2020-04-20 03:55:58 198.27.64.215 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2260 +p reject 1-65535 +r VergeDealer Yg/c/xuudrmgYJgvQbjTEgXzkEg Rq9MVnekXbUtmhYRY/XlMp2IjzI 2020-04-19 20:33:09 165.22.212.141 9001 0 +a [2400:6180:100:d0::8cb:d001]:9001 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=820 +p reject 1-65535 +r niftyentry60 Yh6oIs6sCVhFoM//pQPSmTqxD/M rEKhHG0G6tsZZN/VT6G3Sht/zq0 2020-04-20 10:52:19 185.220.101.215 10075 20075 +a [2a0b:f4c2:2::215]:10075 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p reject 1-65535 +r UenoStation57 YiIzRlkRHZnenSaXCsxAIrKQ39A Hc/UrQGsvMxTS8MtouZpoDQeRo0 2020-04-20 05:58:56 51.89.143.157 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r fiedlerRelay08 YidKwX3M9AMKatjOvtDDbnuFktg lb1s8w21lH2OPJwxZt+fqOoFN5M 2020-04-20 10:07:16 185.233.107.110 9030 0 +a [2a03:4000:24:829::3]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5160 +p reject 1-65535 +r GIEBELWALD001CA Yi/wPNbrt10dtDmG46pQC4cVNvw j3vauOwGmNfSpmk0tP0zMQG2XZg 2020-04-20 08:40:07 51.161.8.97 8550 8050 +a [2607:5300:205:200::6a6]:8555 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r niftygreatmother YjL980/5B9wlonMn0cBa03D7J2c Bu8jO4bZta8rxSrUvHZf7w1AOwc 2020-04-20 08:52:53 185.220.100.246 9100 9101 +a [2a0b:f4c0:16c:11::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33000 +p reject 25 +r arbitraryKenzie3 Yktzkbl5DnzSr2pyOCObo9aSilc yBRjMQ+FsxuzQJ9HAmCh+M95q9E 2020-04-20 03:24:19 95.216.14.206 21 0 +a [2a01:4f9:2a:f21::3]:21 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28900 +p reject 1-65535 +r cb6d69607b29 YllyS2lJ3yeUgmNluz204f7Ku4M EtXOpreZQ73C5AdHpuIn5EAp/QI 2020-04-20 08:23:47 51.81.253.196 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r peterpam YnDSHWzvCksavqBzCYOq4IEmcBo bNhS7oqUqYrJwtM5RtK1tPyikmY 2020-04-20 03:43:40 190.10.8.152 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=110 +p reject 1-65535 +r Fission01 YnErLCShabJDNs0v4r5V2mdHbIs htUeUe+R/+GCw8CYylNDYTddBI0 2020-04-20 12:24:21 149.56.94.216 443 80 +a [2001:470:b14a::4]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24700 +p reject 1-65535 +r tdipeter1 YnN3XLW9KG5lAvKOCWOxbpghCnU OFSmoWm6dF7pBtpGsqPw5pUrEnE 2020-04-20 01:09:56 93.207.4.107 996 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=95 +p reject 1-65535 +r zwewwlUA1 YocSnLnsR16Bag0oP+TkXWMqSks ssU5wrkpaYgQueXw8drizwkWaG0 2020-04-20 00:47:49 217.12.221.75 9001 9030 +a [2a02:27a8:0:a::100]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10100 +p reject 1-65535 +r thebrotherbro YoyCJAv8TnRnTiwgWGK9tioB3nI lkRxIkL4fqA/so8a9kckZM0YEiE 2020-04-20 12:05:23 46.24.244.146 8320 8321 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3100 +p reject 1-65535 +r Comet Yo2fTKtR5JRoi5on5doOcNY0aAY QOrrroMGE9X/C4uyiywgeswOneA 2020-04-19 22:23:15 41.215.240.118 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=190 +p reject 1-65535 +r AccessNow002 YpCi0I5euJyAkiPFx79SWXaQdR0 VGmcyXHWyT60P+Z6GM1xlbWDUuQ 2020-04-20 10:32:17 176.10.99.202 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r niftywabbit17 YpQpITGaW+xv80dLhNoJCLYOVQU Ba96iKpWiQTPlm8OpHpUq8I/DrY 2020-04-19 22:15:54 185.220.101.157 13157 14157 +a [2a0b:f4c2:1::157]:10157 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25800 +p accept 80,443 +r pilatus Yp3hHRW3YFIeE5Gy0HImmP3BA98 IfDeac6SE2cuswCNT9J2kDtN4Bk 2020-04-19 23:58:18 138.201.196.156 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=190 +p reject 1-65535 +r Snowflake YqYBWKLDAuPaeS16T1M59BMh5dk 0mSPWe6x8U9kYFXdzQiRFB4VUjU 2020-04-20 11:18:24 213.202.252.79 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38600 +p reject 1-65535 +r PixlPowerPC YqZpz2VBLzbV6BXbNf3yqMjGc/k tswpsPt7f4sWEf2xUwsKoD8nUKU 2020-04-19 22:31:17 70.31.41.162 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=660 +p reject 1-65535 +r Carrot YqbAVf1GMotLr9udLU4PkSznDEk wuoN5pZ8yZqsoJAWJMzgY2sExbk 2020-04-20 07:33:48 46.19.141.84 8100 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20500 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r xmmswap YqvD0bDV3kjeS4r1521aqPU1zN8 xfMVYP7rS49XCVFcEAMilZk5UcQ 2020-04-20 00:32:43 217.182.198.76 9001 80 +a [2001:41d0:700:34c::90:1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33000 +p reject 1-65535 +r MrMarioMichel YsKSuAGx/hu0KI8M14uOv7zrUMc qz5XpjLaYrzJG4FH/Oou3g12HX8 2020-04-20 11:21:55 62.178.148.42 9001 9030 +s Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r snap277 Ys0pIis/E6VLICYxWOzZ97mI7zw ChdP3VS2dClhSapSciVx0jjHXjA 2020-04-20 11:40:45 84.98.192.50 34603 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4 +p reject 1-65535 +r lidia18 Ys2dGfjdjwWBMfkO+pnFXbbxvbg 99EDy5XXPWkBCMagvu46QFYy6rA 2020-04-20 08:00:02 46.36.38.76 443 80 +a [2a02:25b0:aaaa:aaaa:596b:bb14:6937:18]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2170 +p reject 1-65535 +r gpeduzzi Ys9JgnR7/ePAOVo4lFVL2Nw8XZI We+IBSV72MtMy+YYjIrVHUDE7Wg 2020-04-20 06:48:27 51.178.28.132 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19300 +p reject 1-65535 +r F3Netze YvSZTG86Wz5ZCu7OUiWRaWyN3uI sqdgGP9zHyGRdl6IA5QNW2RnSKA 2020-04-20 07:03:02 185.220.100.241 9000 9001 +a [2a0b:f4c0:16c:14::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=69000 +p reject 25 +r supersoupslooper YvV/8VOStNjrknFl5urO8jgekCA RpnHNv09H/eE+cDsGnGsG5m/zPI 2020-04-20 12:04:03 68.69.164.120 53 445 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4500 +p reject 1-65535 +r saveprivacyforall YvfWIZB6mO4dyTOrplILpNQaJBM Ingzuo+nyQLuyBqE0PiRn6q+Jl8 2020-04-20 03:17:11 87.123.54.238 9001 0 +s Running Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22 +p accept 80 +r unnamed314 YxUnipFxAGLZCyiBme+gbkqqno8 K5VEOG3761caVwcHR2LRuiD3IMA 2020-04-20 11:48:29 213.136.81.89 9001 9030 +a [2a02:c207:2006:2287:0:1:0:1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13100 +p reject 1-65535 +r Unnamed Y1QIJ8SDLSFJhOpHt6aMWT+fhi8 tFHE0+fLWZI9R9OZU6QE0xxPvh0 2020-04-20 09:02:55 54.38.92.43 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=130000 +p reject 1-65535 +r durin Y1tZ0BC8InrK3Uayowsm4Yxnn5w zCNhRHI7OZ2BnVeqObx2HYsME6g 2020-04-20 02:18:40 91.4.236.249 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=895 +p reject 1-65535 +r FormerJewel Y2eU4PjxBn5VD6Ub9FcWP/4qwzU XL8eWhAmbPhBSh3cRHWwaVC1wHU 2020-04-19 23:54:33 47.56.197.246 9101 9130 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=240 +p reject 1-65535 +r niftyguard52 Y3LK3iuaYI5RFAAqeoJa8NEbRJo eR82Q/d5EAVHII5goTSlPvGooC0 2020-04-19 22:16:13 185.220.101.171 1171 2171 +a [2a0b:f4c2:1::171]:1117 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24700 +p reject 25 +r x86Relay1 Y3dZXDo8e5pBzPBQedfLP9mrRCo HxIJ2RRM9ulkEsZDUbGASxMyFzQ 2020-04-20 10:14:18 62.75.155.171 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=347 +p reject 1-65535 +r GetYourAssToMars Y3mTKCImR75+2Rcfyf3e0Ld6r7U SM+HfcYMABSVtCTyP36eqNJLFxA 2020-04-19 22:59:49 23.129.64.200 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7620 +p accept 1-65535 +r Aramis66 Y3vSaIQ2OHE9b8E6krPjb0tbD0s Rj3UrgPkP3kbESslOb1FQQBgiQg 2020-04-19 19:24:30 108.36.68.55 8443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=560 +p reject 1-65535 +r FlashLizard Y4nstIkTNLhGMA/dimglDrtbfFI WS7j37oVbCZF9sHlr349jbRHOLk 2020-04-20 12:07:45 185.82.219.85 9001 9030 +a [2a02:27aa::505]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4820 +p reject 1-65535 +r jeremycorbin Y42R/J72YTSKaZTQTDSZvAP1C74 88rO6Y1hXFLx9YU/H7ReGO9wdbo 2020-04-20 09:17:17 144.76.57.183 9001 8000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=78200 +p reject 1-65535 +r Badger1 Y5W0oO4ZaJZvguf6ap0SLbowE50 uLfYSAMicRsRp1+a7TxGTvJCBlY 2020-04-20 09:10:22 188.193.191.71 553 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3260 +p reject 1-65535 +r loudolive Y5YfjLDcjzymxGKmYDC8ACz7wzo 7ZKEp5HZd75lWm5v7i9qVXp+/k0 2020-04-20 01:50:12 216.237.198.56 10002 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=890 +p reject 1-65535 +r Gemini1 Y6DRsOSZrMVRBpc4TbysFqGLC14 vw+eNaF3Ne5NaKPEDOe/NezBMG8 2020-04-20 05:43:09 104.192.169.210 9001 9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10600 +p reject 1-65535 +r torte Y7MvflOJ6NvF4bzv5IMS2nzO9dY +iJA8ZXx+E9tonUjzKu40j3Xrts 2020-04-19 21:21:12 217.182.196.71 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=54000 +p reject 1-65535 +r snap278 Y7X1OimhWbLwxZv0z/qIAjSmOoY 6O6IyzQ2FWhyjZcXGC48/kmJ6C8 2020-04-20 07:16:23 86.121.20.108 36875 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4510 +p reject 1-65535 +r torifier Y7aCYa5REK3rCeOZFKd5RfdJnW8 wMcSPBQmgmJT43lyjkDpDgFBDF8 2020-04-20 00:48:35 35.180.173.18 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1180 +p reject 1-65535 +r mrTrololol Y7nrTgkoz4Zjf5ptqTd1RTJ6ZHE M9hHoP0C48bKAmefrxMD0D+DjaE 2020-04-19 21:21:00 185.69.54.127 9001 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5080 +p reject 1-65535 +r zwiebeltoralf Y79Gpj+cIf0xXNBhs+qj6wUoOgo +qjg3+lKavXVQ908huS92a8QCQ0 2020-04-19 20:47:47 5.9.158.75 443 80 +a [2a01:4f8:190:514a::2]:443 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=77700 +p accept 53,563,706,749,853,873,994,1194,1293,1500,1533,1677,1755,2083,5190,5222-5223,5228,5269,5280,6667,6679,6697,7777,8074,8232-8233,8332-8333,9418,11371,19638,50002,64738 +r TangeNLV Y8ardKXCiMIVndx4O7APiKtEQnw mZaMGroKlTNBIGaYoJXFKYCzpZ4 2020-04-20 01:41:34 193.106.166.105 19001 19030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=58000 +p reject 1-65535 +r dontpanic Y8gbyoNVcAaaf81IMS3qcH9suqI E12NaWBpPEnGGnU6oApmSFB1jM0 2020-04-20 10:10:44 5.189.181.61 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10700 +p reject 1-65535 +r Devuno1 Y803hygUrRYjwjnLegy5xOPOuSM eFU11A7lCz1BFOonHEBY/0wwVTc 2020-04-20 08:58:26 91.121.110.114 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7000 +p reject 1-65535 +r celotor Y9PlGHjCBcs5sM1HzdOzEmrLOKk Kwb+HLJL1MYQLDQNfxArfkMrjR0 2020-04-20 04:01:21 89.245.252.38 9090 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5260 +p reject 1-65535 +r HKRealDemocracy Y9mGumZlzsaizZX65oGujHyhK5w w0a8izjOtsOuMSfaHc7wWKecN6A 2020-04-19 22:13:18 220.246.166.228 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=592 +p reject 1-65535 +r Hydra6 Y95UY380n9aGzxwDaCe1voJrn3w 88/VScyCGpZY3r+hiWQM3MbtqxU 2020-04-19 19:04:12 51.15.113.84 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49200 +p reject 1-65535 +r ESCAPE Y+CUpUR3mWc8EUETQFj5SAdOqmM /2sNuDQGLdmjsm2iVatQl7vaYlI 2020-04-19 20:23:07 87.120.254.105 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9860 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r hviv115 Y/AEOBlGj9hsdh6uRbS3Lbmnlbk zEdEOo2u9qT+bjkh+etTc71uA0E 2020-04-20 11:41:15 192.42.116.15 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r Unnamed ZAZkIaXJDEj4dQ6ddZtiOb01VCw 6SZ0paFAqc9lXj+cPt1F32hheic 2020-04-20 08:16:59 78.83.112.230 9192 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 +p reject 1-65535 +r EvolynTorRelay1 ZAa2n5XQb2qUz92D6F7pxBCgXUc ve/QNvfu25Bza1YWeP5Bmb3bdqU 2020-04-20 01:22:15 85.214.212.153 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23900 +p reject 1-65535 +r cattyanddoggy ZBa1sy+so4Z1euj0HkMKQzqIHB0 rEvVx9vJA1VNKOp5Krqp5JwU15w 2020-04-19 22:01:01 107.172.42.236 9001 0 +s Fast Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=250 +p reject 1-65535 +r Torben ZBzwrO27ntxnfMbbLDGHJgmqIeE sPWiXXdOgjew2vzfXdO3gXjhHS0 2020-04-20 11:31:27 79.199.127.10 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=39 +p reject 1-65535 +r lodrich ZCCpwrrcbP0yoerJNbqgiAkmG7M tgsHVra24EDkWCtRo+77Kc+yaBU 2020-04-20 03:49:09 46.4.149.37 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=90700 +p reject 1-65535 +r cloakmodeengaged ZCMZ6EcgyYmb3Z2ptIbc1qmHe94 MsYiJiBWFQBECgk1HR21m6B0fv0 2020-04-19 22:15:53 98.251.10.24 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1480 +p reject 1-65535 +r PrivacyServicesExit ZEB09HJX+akG+apca4kmwVQKHag RxX/6lVEbdIbWShUCSxiwICd6pQ 2020-04-20 07:49:31 208.68.4.129 443 80 +a [2620:6e:a001:705:face:b00c:15:bad]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2100 +p accept 22,53,80,443,587,993,8333,18333,50002 +r niftyhutia ZE3sxaGHnA/iPekn3XBJ9Yu980k dBWaDhzwegqnojJtDQiAorjX44g 2020-04-19 20:26:22 185.220.101.3 10003 20003 +a [2a0b:f4c2::3]:10003 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25100 +p reject 22,25 +r theWOPR ZFw/BUXgl1pJ9p7CcsDD6ihYaCU AH4aMqZVCluPz0bK0WtHIrIaTUo 2020-04-19 20:31:26 212.8.243.229 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=81000 +p reject 1-65535 +r coco ZF3pv3ouhY+Ka0Xx9TA3EXbQI4o 7XN3dvE+9hR10FmljRJK15o65iQ 2020-04-19 22:59:39 144.76.37.242 8443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9250 +p reject 1-65535 +r jy77 ZHmOX0gYUgl6XB7nvJDsx5eJ7F4 dZapgr/R4RCB0Sc9NQCcD26e32c 2020-04-20 07:04:32 134.101.142.99 9030 9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3340 +p reject 1-65535 +r PercyLou ZHvya04X4NVElaSn7B5bObRN6kw 39nsJCj6/EwfMLGroKQv8tM/BQQ 2020-04-20 06:34:01 216.164.197.164 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3320 +p reject 1-65535 +r MrRobotSam ZH+34Ei+fzbGFh1D78s/V+UWklA FI0YrzgCTAYU3lH7Xap/UdHmkkY 2020-04-20 01:55:36 37.120.137.232 8081 8080 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=52 +p reject 1-65535 +r SirioIT ZI0D5TEWPIKL4cC44qUy+VZLVBM xWHRZZ2jpI5exsHLS//V9PKuHjg 2020-04-20 05:39:23 195.231.9.23 443 80 +a [2a00:6d40:72:9117:0:acab:0:acab]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18400 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r fr2xtracodews ZI6XcZ7exPDgjxzrjSTyyPWHNEw ilL4nYUYMjWeMHYz1a4T92xXfDE 2020-04-20 12:20:14 212.47.234.48 9001 9030 +a [2001:bc8:47b0:2257::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24500 +p reject 1-65535 +r kakeboksen ZI8gtUz3GebQL6oHqNpsocfu/u4 XCSRC62ItxFr6+3cug+6Mjt6Alc 2020-04-19 23:18:30 129.242.219.85 110 143 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=888 +p reject 1-65535 +r HunterSThompson ZJ0f6JIIKQL1MY3KaMsnTJZq6jY 5/1Gs20N7+GyU3/VMB0tuQF9KIo 2020-04-20 00:15:14 185.165.68.154 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=150 +p reject 1-65535 +r torpidsNOterrahost ZJ4PfN6b0Wl/ZheLfXHmeRkqpJI MPs99286TImkAS/vPVAwKx9etdQ 2020-04-20 00:00:06 185.181.61.140 443 80 +a [2a03:94e0:187e::1]:443 +s Fast Running V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9370 +p reject 1-65535 +r iloliloliloliHAHAHA ZJ6Dgahr03tdnA+VCylruO3EMK0 6gK5yHcnAuHPQ/oJ0ov36aJM6oE 2020-04-19 23:13:32 81.240.141.19 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=970 +p reject 1-65535 +r arshiba ZJ8M6LEgejD95FOGZykQGKvOzC8 0e0ZS/5eo3aMklMmYZFk9L0N1D4 2020-04-20 01:56:17 46.250.104.224 9290 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=65 +p reject 1-65535 +r NeyamRelay ZKC1ciYT3fwuuEiXxVD79KCW3g0 8fzfh9j6ICX9XO47IQnwFcPToe8 2020-04-20 08:17:06 51.15.122.103 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=26000 +p reject 1-65535 +r Unnamed ZKcAjkn/C0+2nbguOdqkTeQcggg FFak1vl9nMnOPOUjMGSuGtT3Nms 2020-04-20 06:10:28 51.91.48.210 40119 35261 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=163 +p reject 1-65535 +r janitormentor ZKiDepevcXdchN4O2pRVKq7cQk8 uIKfykixS2bbZrclfWFWpuaqirw 2020-04-20 07:42:58 91.219.238.221 443 80 +a [2001:4c48:2:840b::c0de:f001]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=315 +p reject 1-65535 +r AnonNetherland00 ZK/7vgF4Uxk+GQ74nWRgIwe3xNg XtDU2IlJ7vF5Ri/l1CPKHmhqSFI 2020-04-20 11:43:32 40.113.109.14 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1690 +p reject 1-65535 +r montserrat ZLBfmiEitdtK3LDm8IMZPzFwqQI KkFa9ZW+4wRL7MY9n7UtvUcMvQM 2020-04-20 09:41:40 141.70.125.232 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=748 +p reject 1-65535 +r eyedideditheconfig ZLWWf6fg9zcYXCepG/HPB0MElj4 zj/RRj18wwm9O+ROdLtiCOjoF/4 2020-04-20 03:34:18 108.61.166.134 443 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=750 +p reject 1-65535 +r Unnamed ZLknJ5P6tn+2yZqRNkaIJobNHqM ifWykB8YszHoDQYHRUzl/ef1mS0 2020-04-20 08:57:21 191.232.53.233 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=810 +p reject 1-65535 +r permanentrecord ZMsrMsEK3UuT1yW33tI4zM1tbbo cbdwdeS7UI9w1RytZhZO1ufEGZA 2020-04-20 11:32:24 204.44.81.158 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14000 +p reject 1-65535 +r lupus ZOEjHYeES7WGGp0+1P3fk7SnZwQ hgi2m/7inZdf2+LP8dtBOWGOPuw 2020-04-19 21:26:57 87.98.135.13 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13500 +p reject 1-65535 +r l3v3lup ZOJX2U5zknjVlUzIIMnX6sTnp7c Mas+x5hmNOG+wDr92UG4dhstagk 2020-04-20 05:18:22 136.243.69.243 8443 8000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=95000 +p reject 1-65535 +r w3ctag ZOdkhx88/QuuwEDyoGrVoLgYYQ0 gYFZD1JVuYhYVyiNzw3uf4VyjF0 2020-04-20 05:43:32 45.79.95.244 9001 9030 +a [2600:3c01:e000:132:10::5]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59 +p reject 1-65535 +r frigus ZOs8vM63YLn2R/obmkBTM5gwsCo cfxtEehVMgtvxrh6T4hRBRjhcvI 2020-04-19 20:42:01 212.111.40.177 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14 +p reject 1-65535 +r Landesverrat ZPi8JoAhS2wVgbPf/E9lgvh9Rf4 b1E8oaI2P7Slq5y2djvcBdiyKGQ 2020-04-19 22:19:22 195.201.95.182 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7580 +p reject 1-65535 +r yetiready ZPybOFK6fsdOeb1AmdhQwzgAnnc XfOXhgUkVlcQ9bbJCsYHXiXroyk 2020-04-20 01:51:14 91.203.144.194 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9070 +p accept 749,853,873,902-904,981,991-992,994,1194,1220,1293,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5900,8008,8443,8888,9418,10000,11371,19294,19638,64738 +r snap277 ZR9S+q2sInJk0aTOIpEkSQRNDPk 2tess7LrEwjlfwMTwlevM61ad0k 2020-04-20 09:21:02 77.207.34.35 40403 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3220 +p reject 1-65535 +r Unnamed ZR+8fYx1yGz5YJ6LVy23cV4/4do SiDgOA1cvISymLLXY7ATqnZrpvc 2020-04-19 21:45:02 139.59.78.113 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=410 +p reject 1-65535 +r finely ZTDB9eRTzAjrsaHUtYNskhBgRzs BIJ3hpwc8Hf668jKDosiVRiX8gw 2020-04-20 02:57:24 153.92.127.239 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r noisydutch ZTLrUcHqi2dPSu/PoxMjrkxCEuQ 0MOgROUwlEPmO/cxRKFGCpC5Apo 2020-04-19 22:45:24 213.139.206.100 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2490 +p reject 1-65535 +r reim9tiehai6uFo ZTVkjFkwvVhQDTlaJTutY6ewkUQ lTtmZRIls9KBW5cB3mqyNeIY3+8 2020-04-20 10:40:19 121.118.201.170 9001 0 +s Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24 +p reject 1-65535 +r BlueMold ZTee7UiFmbChUS6A1HQ7yRJcswY D9FVwrUR0D+78xmIQC1TzKU1agg 2020-04-20 01:18:44 178.175.128.178 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3760 +p reject 1-65535 +r Unnamed ZUwKZXsZQoc+wxqyGycjBoiAkyk GE7gMqUMhS9p7A/5oyn1YzpKFZA 2020-04-20 11:54:04 205.185.119.56 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2850 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ParkerLewis ZViG7Lg6QOG+mJUT2MXGCNS5aMk MeC5qmC9YT98TbFKCtxLaPBFb0s 2020-04-19 22:18:18 159.203.41.119 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=250 +p reject 1-65535 +r tor4ever16 ZVoIYbhCBQk+bjqch+sSjJxPk64 8NbM6KZBFMapPlntE0NjneMzRXE 2020-04-19 20:47:10 45.62.227.73 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=795 +p reject 1-65535 +r king ZV5lsn0xY5cr5uOlH8+GI5O6Sck UepyLqWxM7tNmBClRBVw9hXU4qw 2020-04-20 08:23:34 51.89.200.124 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Mylittletorrelay ZV6QicjgGwvM66RYPqvdjTQ5bxQ J6SFUr/DinRw0qSM4aXodYeWKFU 2020-04-20 10:25:56 58.108.47.98 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=119 +p reject 1-65535 +r oscar ZWXzHZ7Ax9/+oZIL47pMc+81tcQ LSMreX3higBXMKdAYP9VM9ZcfRQ 2020-04-19 19:08:52 158.69.207.216 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14100 +p reject 1-65535 +r KenRelay1 ZWldH9sIQQYssEMCxWbgcJRk1ic TkGs65AZkigG7ok7WSKJ2U4fKnA 2020-04-20 12:21:00 178.17.174.168 443 9030 +a [2a00:1dc0:caff:15::d46a]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7660 +p reject 1-65535 +r NexusRelay ZWxCVoggmwx0YZvgiLzBRL1FqKY TKsK9DIVLdNl8+6bp3Y4+AP77KI 2020-04-20 05:49:08 5.44.107.201 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35600 +p reject 1-65535 +r mhgngq5364v9ny85y ZWxgtfyYEL7KFZub/wq5mYg63wI sNaVbPLqnJjaYyGn3g9u5fP3g3k 2020-04-19 21:14:11 91.121.181.6 9001 0 +s Fast Running Stable Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r Unnamed ZXM5+BPGOoJmI0FLMZYUcbrm15A FpbxtRIICLY35Wxcamnyx1By9OM 2020-04-19 20:11:48 104.131.206.23 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=233 +p accept 6660-6667 +r Asakusa ZX0vTddtG6eHfrLxdC7ZiY6wRik 7cz3GEixUGHUWd5i+EDgwAtSCtE 2020-04-20 07:31:12 172.104.78.197 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=703 +p reject 1-65535 +r RMB3 ZZw6Y+XYSOsJc9/hr+IUpsdK/d0 bpTPSRhQbXHQMCHhJhOvf672WjE 2020-04-20 01:39:10 79.251.180.45 9001 9030 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r smell ZaKobimsstrnzyi4SdVey6nOhYw rHnuiBXm1Pun8YPhYXjSKXDx14A 2020-04-19 19:46:54 51.178.185.237 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27100 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r goldsworthy ZakKuBxE3X2bc7VSmxFReYU0r3Q ES2/toUfQds7MO84aek5tTZWOCw 2020-04-20 07:22:42 160.119.253.103 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=477 +p reject 1-65535 +r Unnamed ZbHlZY/bmVD5giuQ12wwYWiYzMg G7+4pRqbf/c6szijIr5646Jrsog 2020-04-20 02:53:32 178.79.182.63 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=786 +p reject 1-65535 +r Unnamed ZbyluV02MXca81jMc5M/hbaN36Q 6RssXfhy4b5i+fS4UMqTeaW8Hlc 2020-04-19 23:25:53 45.79.197.155 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=510 +p reject 1-65535 +r toreffiorg Zchhgv2qy1nJ222d24MUiTNBWjw jnXF/l0iFwkgUf/Eb91uzct8UkQ 2020-04-20 05:28:06 212.16.104.33 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=980 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r fiedlerRelay04 Zdb+oXUhp/wuGmM67NM8FGrKMCQ /ijPozcB08IWlRHnt5Dr5DIRIcY 2020-04-20 12:07:31 37.120.190.160 9030 0 +a [2a03:4000:6:b39a::3]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4550 +p reject 1-65535 +r snap277 ZeHTjSo3aDyAUPnL5kqVyWzBmrw qNKE4I6mtCsOES0Hds07LcEycIg 2020-04-20 08:34:00 78.234.140.21 34421 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r smell ZeH58g/w5UCPtrGTGFzIaSoVC6A OpXJRCju+p9pTSjzl4J3STYSzbk 2020-04-19 22:23:25 45.9.148.220 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7560 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Fangio ZeQPft0o4s8oaE4w4Lq3cGgZz8M BF3xtlP2Z94J0bbzd1UQkw7NplQ 2020-04-20 11:39:53 179.43.169.20 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8200 +p reject 1-65535 +r AccessNow006 ZebrZ2YzMoreO9MWilkTTN3SHhk PLyg+IhiIlcX1xiKIn4hMZlM8AI 2020-04-20 10:32:16 176.10.99.206 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r BobsHouseLU05 ZfVt0l6ygyOL9qEMEKjFDX2DuTE LvTmRu9l25qaLqlUOLL+MN6Z+cE 2020-04-20 00:17:22 104.244.76.214 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29700 +p reject 1-65535 +r matuschek ZfXgZkHxhs6qsigAOyAZvmmEeTc R6paOboxOj94AbE9QFboEA1Sg7Q 2020-04-19 23:11:45 190.97.165.141 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=67 +p reject 1-65535 +r eclipse03 Zfhv2LksOsAYh9hrIXHmV9XBn3k ywHKtt55Av0xvcaeX1soXip1Fxc 2020-04-19 22:58:39 90.146.176.221 9003 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=930 +p reject 1-65535 +r IHNIWID ZfukJs6BJnccXutSY087tebpOwg TfvmBWozK7OolEm8Wr0zQ1s71Jc 2020-04-20 00:02:40 173.249.7.152 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=769 +p reject 1-65535 +r snap277 ZgC7njLKTeVO17jT93nOPCgoiR0 jGmGOU+gDkoRyHlQf+A+zyoVk1c 2020-04-20 10:57:32 78.240.166.2 36783 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 +p reject 1-65535 +r sonic ZhDJd4QLqLU8GN+dyyexEjr4ajc VpMgQuNmbxpPvhJ9jVIgC4lbOcg 2020-04-20 04:17:02 62.68.166.37 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9290 +p reject 1-65535 +r ExwMiaTigriMesaMou Zh4IU0+r2+CbpQX3pzhINxxu9zI 28f+jj7R/F6nZctbjB7N1tquzD0 2020-04-20 01:58:44 83.212.72.189 443 80 +a [2001:648:2ffe:501:cc00:11ff:fe4b:4ba5]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8100 +p reject 1-65535 +r SweetRelay Zml62TZEqUvVbrx/1oHkrxq6MqI H9xkCYXgiT96vxmqf19u/1Db4Bo 2020-04-20 10:13:01 98.220.248.235 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1430 +p reject 1-65535 +r anonymousByPDH Zms/liC1V908J6ctkrTm5LHzawg fkfJlvzKrjVDPt85j/zkJWolKKo 2020-04-20 12:28:45 159.65.8.33 9001 0 +a [2400:6180:0:d1::73f:6001]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=570 +p reject 1-65535 +r RelayNameArm ZoQK9QNmSKx0hoid3kLyzu8iQOM vEgZzJwQFiUR31Mzdneqxp1qGxw 2020-04-20 08:55:54 35.157.59.169 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1200 +p reject 1-65535 +r rigel ZodAo8OH95vX10iODCv5V5ZUocs EKgo1xNFyvDr9vtPh2VkAlN+4V8 2020-04-20 10:04:20 164.68.125.194 9001 9030 +a [2a02:c207:3004:2992::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5680 +p reject 1-65535 +r LeslieRelay3 ZodfRclKyAfHdCQ+MlqZywOYMU0 OFajUouGCDSdGfqvUlYsZfJLS4Q 2020-04-19 23:15:32 5.226.148.19 9001 9030 +a [2a00:6340:200c:9000::2]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p reject 1-65535 +r jkVR ZpBag6SFik3Qda6gUUN3qfWeEQ0 Xt25D8aWNfwq5C9rI6Dphjo4R5M 2020-04-19 19:50:02 103.136.43.183 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p reject 1-65535 +r justanothertorrelay Zp5QNLbeLix8+8+erI2fWkd1eZY V64S5YT4HEJnD3SloXOaEBr0gX8 2020-04-20 04:09:19 93.180.154.94 9001 9030 +a [2a00:1158:3::1d4]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=519 +p reject 1-65535 +r daytoner ZrBtWb38kOvG7eecVYJ18s1HmbA FohFLqVgqZl/mG+rTglAv7u7+j8 2020-04-20 03:18:51 212.74.233.22 9011 9041 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1770 +p reject 1-65535 +r niftyentry97 ZrhhuggBZzFa49BPsS8Qllj1CnI vahkekCJ5t4li4PxD1U56yyi8wg 2020-04-20 10:53:00 185.220.101.237 10097 20097 +a [2a0b:f4c2:2::237]:10097 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17400 +p reject 1-65535 +r t4cc0reTor4 ZrvNDVj9uJGths4iomE6m+48onQ g9Tofvjs2viUjlcWJIaOfb1uc8Q 2020-04-20 00:36:21 51.15.113.85 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44500 +p reject 1-65535 +r spreadrelay ZsyqSo+koNuli9pcEarju6Chd7o ncCMJ24vOer7dcO72+cqiL5+b5U 2020-04-20 07:37:50 89.156.195.37 15891 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 +p reject 1-65535 +r Quintex37 ZuGejEdzCG9mmh4Go/jCO2wHkSk InM6MR8dZo86k8T6cBU22F+G2ZQ 2020-04-19 23:41:42 199.249.230.86 443 80 +a [2620:7:6001::ffff:c759:e656]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12400 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r TOR2503 ZvNcNtThmsVdr+dW5e8L/pRkrlk lxjFxDSincPVap0eXjpFEVEGZNE 2020-04-20 10:24:17 212.88.4.54 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=303 +p reject 1-65535 +r troyborgtornode Zv6YEsNUXwZRwO5zQnUe+1JRP6o vJWRooaGTWZpq4Eo81AGEWju6jY 2020-04-20 09:45:18 173.215.17.179 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4200 +p reject 1-65535 +r uname ZwvoB4MF6wXhMDRldqDaRO+0Bgk QgCtQEP2g8JQs1HYIsB7LOH6PyA 2020-04-19 22:14:50 86.57.149.5 1443 9130 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=3770 +p reject 1-65535 +r smell ZxkmbIKpQDRsBjhW8TBEqnXiMSg QGA00kNl/Z0BZdqBtW8bORUb42M 2020-04-20 01:30:42 205.185.124.223 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3500 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r magalien Zxn4f/P8rT44mAuyd99RpnT4qgk 8nUyPqVd/8lh35qgKBGqpZbimPs 2020-04-20 03:45:25 100.33.64.89 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39 +p reject 1-65535 +r CaptainMarvel Zxpoq62hQC+wBnYFX0jqEjubBgw 76QY0JkanYJfOiCAv/saHuYQaKY 2020-04-20 12:30:23 212.162.9.158 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p reject 1-65535 +r Gymli ZyNJqTa2AsJSfaxPr8iKQCr4G+4 MUZ8QwHGpWldcUmNVwyYbZTBgGQ 2020-04-19 21:13:08 137.119.202.225 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=69 +p reject 1-65535 +r recklessbolter ZypWpYPGWDcuY6zrQ+f3kcKBlUg s30Bx70jeWCzX9wpUlnb5RAQWBs 2020-04-20 00:41:01 80.253.94.252 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45000 +p reject 1-65535 +r CalyxInstitute20 ZzwIGpUC1dOrk5X/QlcnS+THqKQ w+T/ICG3E9hOqKu5j/eDM5TtxIw 2020-04-20 03:41:25 185.220.103.8 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r elc4 Z0KzTnNcDd1nuQkg7yiBlzi2PsA 1uNc+oUf12s6Jg4BtmKqdZox3uY 2020-04-20 04:17:31 176.31.35.149 443 0 +a [2001:41d0:2:b026:24d9:6a97:78db:2bcb]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3750 +p reject 1-65535 +r Mainframe Z1EOU0GRyRFfCAxFZbLx80jN+ec N11thGOm0kLCO9iFQKuP+qn3dsw 2020-04-19 19:12:13 84.167.113.176 24192 22154 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2920 +p reject 1-65535 +r torshark Z1ScdD63qdBqdeN764JBfrsi6X8 vjXsqZlecJ+l2CfOklpZ3kKib1A 2020-04-20 10:33:50 195.154.252.88 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22200 +p reject 1-65535 +r fiedlerRelay06 Z18F/ezx3Pg27SdNZevpGcR0O5E KIgcjJt8y3c9RQXFzl+Ac0a17x4 2020-04-20 11:07:27 185.162.251.28 9030 0 +a [2a03:4000:1a:800::3]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p reject 1-65535 +r niftyhare Z4FHGBTfFkwqbxfNHyWEkj/eIQE gHuPftFFuFsWgBoalKePK63mSKs 2020-04-19 22:15:22 185.220.101.145 1145 2145 +a [2a0b:f4c2:1::145]:1145 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45100 +p reject 22,25 +r smell Z4ldF7zH2hEawuDx80i5mx5LWpE d+iWWxI8mBxVd1eo7M7kobi1oBM 2020-04-20 01:26:13 209.141.62.188 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5210 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r king Z4n3qL4LvxEkD6BfZmNDtZE4KjY pclK7uSpf18w5eOWgVNSjwsVjEM 2020-04-20 07:12:26 51.89.147.67 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13500 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r isecProject Z4597ga0R+NgRtFq7sFxahOzszw PLIDIao49Dxs8xP1T8nFGIRNWYA 2020-04-19 23:06:17 79.202.55.60 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=967 +p reject 1-65535 +r niftyfrazUrbluu Z5blMWBxTZCLObywBYz0iP+UAzY r2qYff5AQ2Ocw4ZNuKUfmca4r0k 2020-04-20 08:52:20 185.220.100.250 9000 9001 +a [2a0b:f4c0:16c:7::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42000 +p reject 25 +r tastyd2m4 Z5+9nB/O6idomAh1icX6wGH0tbw GRxZ3m4SJ85f7DDIjIu2HEIHCxg 2020-04-20 10:20:26 185.29.8.145 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6050 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r PlatinumOyster Z6SpbVhufx+WDwMx9nxoNv6HmGs YDQ3Xy+sw8IFHSJ8U74jMVNuCSg 2020-04-20 11:23:58 88.99.82.41 443 0 +a [2a01:4f8:1c17:52e4::1]:443 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30400 +p reject 1-65535 +r troy Z6TPuYcI/ytKctao77C20Kkw9zw 96Z5qxuKk/CguBKNW1CvDj7JCKE 2020-04-20 11:17:09 188.213.49.176 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r MiniBurger Z6iLZXbM79ktL8avCbK1fgg6nMM AeZxM2dVZFLlZkBytjUEelP082o 2020-04-20 03:30:57 79.245.30.245 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1090 +p reject 1-65535 +r Unnamed Z7VpMAm6zKjvDIfn1uGTQPEGxeI a2F3//uVUedKfLzJ4xaLJZnOQ8k 2020-04-20 09:12:45 5.189.89.233 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3730 +p reject 1-65535 +r Camel Z7wbWufUTj6fX5CJ26rqwos1EMg RPnQ3CIED/YIJjNRS5Ayg6Fhcvk 2020-04-20 02:12:44 45.79.91.126 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=800 +p reject 1-65535 +r khao Z833pNBumOVarllbvr845kxMy/M lCOLQ36tzW0I6gAb/mbNI/4yrdo 2020-04-19 22:41:23 87.236.194.23 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p reject 1-65535 +r Unnamed Z+jKdZvWrCRuIL1l5bifRwoo/RU 9S7S08KxyMFaC7kuJWcWyAXp6d0 2020-04-20 10:25:41 199.195.250.29 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6930 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r citizen17 aBMIIYGb7/RSk4+mYp3Fmo0EM64 VeaKsCrDlVK6W7jNr9GCZGdZd9k 2020-04-19 23:55:01 83.97.20.98 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=340 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r smell aCy9G+AlVWRipmni7lxEuXLgrz8 yifiMwOSReYIiPWEKpBTXBbTLX8 2020-04-20 01:25:58 209.141.58.95 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7430 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r mothra aDFaCsX7Lf5VlDoqF0qwJTXNz6Y QKXoDRP5T8NLr96xDXvQkH9gtsQ 2020-04-19 21:02:46 173.230.158.86 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p reject 1-65535 +r r3duxTORrelay aDmvIX+u2zlV0S7ZgEzZKgWmzcg NLvWyVItw7gQYIXSr/nfCMcTd68 2020-04-20 12:26:15 77.20.122.131 443 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1990 +p reject 1-65535 +r PESEC aDpmjr1eJ1iJtRDK6kV1IBbj3jA oWdkj9hoHOW/4mX/EgHbFdJzvMg 2020-04-20 08:18:35 5.3.161.176 9101 9102 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2240 +p reject 25,465 +r BORGSPACE002 aEfrmkdWrrirdBs4mtJqm/Uw6Xk YYbU5senCrzTK/OitaV4/tzbS8k 2020-04-19 19:52:39 86.239.234.121 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=742 +p reject 1-65535 +r unnamed aHc9P/e4zvzu/KMq5yAV4tOMYsE V6fCuH1qEn4jGG1H4YLSqJXMJnQ 2020-04-20 09:39:15 51.68.170.247 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r HOSTHATCHhWkekiAL9O aI2AA8fZcSrsYc1ndrwGx2L2bRs Ht+yyhs52UBJUUk1c9FlWCtoW/Q 2020-04-19 19:39:15 103.73.64.18 8443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=182 +p reject 1-65535 +r sFtor4 aNKr2TYjOlaeK0bWIogWFJoWtPo vyiNp/3WykKPECkWuTyw/CzK3m8 2020-04-20 05:25:51 88.99.31.186 34746 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r jujunz aN/bG5H4ve4jRA4EqZ+niDBkBWw 53sGRRdURbNPCiiFc779MaLY8LU 2020-04-19 19:43:39 85.195.242.56 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48 +p reject 1-65535 +r Pichincha aPF1zKvnJ6otIwm82HiUmc7jbtc qcDeju6blpRWNybBUV7s7XNW3ZU 2020-04-20 11:03:21 163.172.139.104 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18500 +p reject 1-65535 +r smilebob aPXyBeK/6rIQPQp04m6qNXQOtuU JlgEpfvdZBFr4Z0Hz3gZkI6CwOA 2020-04-20 01:25:58 51.158.154.65 9001 9030 +a [2001:bc8:1600:4:208:a2ff:fe0c:7722]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r TORminion aPvnKw1BHDFOx/Jyy1s/FMJCkkY lv7OKZcUmzzb7ajZE6t0zeomXo0 2020-04-20 12:08:06 195.154.255.174 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2880 +p reject 1-65535 +r etam aP+l42uVJXb5NODAlC8+Z7L9IRU S7Nls1mxpqgsU8F8rsQkc275ZyA 2020-04-20 07:33:55 80.72.43.250 9001 9030 +a [2a00:c90::25:2]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1000 +p reject 1-65535 +r OrcaTor1 aQP/H/1qcQx9n+nve14j7wRlCUs sdMyaLq2zFjrBmoZlE3F+BYHemE 2020-04-19 22:05:37 212.237.25.104 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4940 +p reject 1-65535 +r Unnamed aQSmRUFlhTE4HpSe/omhXUw/qNA r0vU17LAbgUMiGiI9USSQpVjl+o 2020-04-20 02:06:20 141.255.164.114 42406 56340 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=88 +p reject 1-65535 +r uname aQtNotR9ZDxO/bmVQXtI+Zf7woE zG+3ZaNGdf6PTB05sTlZIaoOCgg 2020-04-20 02:52:59 86.57.149.12 1443 9130 +s Fast Running V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=3950 +p reject 1-65535 +r randomretorng aQ2kLJxHV3o4M5TOSvYb5iiCTiE MvryASM5yeVyn9ktPLHygeGSVaE 2020-04-20 11:15:45 145.239.118.243 995 993 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=249 +p reject 1-65535 +r URKIGOM aRIiltN/x9M4dT4+wZvGZqEFZqE 44yG4WaBwKULhAYt+Pdte63/L8c 2020-04-19 20:45:38 82.165.67.222 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9980 +p reject 1-65535 +r minty003 aRmoZW+Fgw7Vd4/j/dUi8/GP/28 Eecbt4R3q1b7xREIJ6KKsto/zRc 2020-04-20 00:16:48 91.250.84.156 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6980 +p reject 1-65535 +r torror aSh5lW342s9fjuEjFs7x3i/8Hs8 r6jsvbJqjwjh+IeCypcKWiRuqSA 2020-04-20 10:43:40 88.217.143.53 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=28 +p reject 1-65535 +r battaglia aTmOPRM3rGgW51dRbTYAp1wes64 5P2sVt+/eBAV8l30SbpqZphqyJ4 2020-04-20 01:35:07 160.119.249.222 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=230 +p reject 1-65535 +r LuXun aTqYJYTPTde/IVi2QMz5p1qHsb0 /sa7ZeKSyr92XfarjU+jc8OXuBQ 2020-04-20 10:29:54 89.221.214.122 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r Nope aUAkfgTIOdJoVD5/YlZqkeQFZ+M r4u2UvICHsHRJ5WW9Fzn0t3YGTI 2020-04-20 10:10:01 176.9.57.152 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38800 +p reject 1-65535 +r snap277 aUNutOAAu8dmcljD4G4RtsX5II0 78n1Hk1yrnyLp+qIWpH7w/0u8OU 2020-04-20 10:15:25 83.199.118.50 43333 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3800 +p reject 1-65535 +r Unnamed aUlwNmUxiVMSB3RrPQ5Oy1aIjzw Kv02L3F08LWxrEFCsVEedTGeqDs 2020-04-19 18:55:24 86.80.108.228 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=130 +p reject 1-65535 +r FalkensteinTor02 aV2BGxMGc8Lejc/FqedCeQvSUGY aVmQqpQu68OFf67jSofEm9mtyPw 2020-04-19 19:19:48 5.9.44.29 443 0 +a [2a01:4f8:161:32c7::2]:8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=51100 +p reject 1-65535 +r JongeDemocraten aWIEGaPQB3Jysuo5UqH0aID9+uU iuJzHOzC6muqrUs1baw4HmQ1GQ0 2020-04-20 12:11:14 213.108.105.71 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=154 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r 0x616e6f6e aWI3dyLEql5WVA9PlpPfpSVEmXQ drLA+fzyxw0QnjFWXRbZd7a7p6w 2020-04-20 11:49:29 104.244.72.73 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9270 +p reject 1-65535 +r helper56 aW2oOaZLBou8+eMzmMOFjm5miVI ACKdWnvIDF03WIfwRbouvoZr2qU 2020-04-19 23:20:21 124.189.44.164 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=162 +p reject 1-65535 +r butts aXSRDvmV74tF1GKF/RX8+ENHu4Q TYpBdqy6uza2dSvHw3rw6on29Ss 2020-04-20 06:47:50 54.37.136.45 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17000 +p reject 1-65535 +r snap277 aXVldX0P5x1i2QAwO41fzxEme/o NvhvDyjD0MfMbRPcEWL/RGT9O/Y 2020-04-20 08:50:27 80.44.98.107 39067 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=409 +p reject 1-65535 +r greenlantern aYuHCM9OoC0nygknTzNRtPZqWDQ v/juFnDnPDzvdjF0LvkAUhKhQ90 2020-04-20 07:06:56 179.43.158.176 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2410 +p reject 1-65535 +r snap277 aY5el9SZBWEzteMmmm68eNoryoc VxeAFc4BMylWac6PH2isMjRcm5s 2020-04-20 12:10:32 186.49.40.167 36027 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=306 +p reject 1-65535 +r NixoPixo aZHsbZbRo2Zhb/IxivbYkJnHLAA hU2EB9Mnn29cscY+xqf8mIRDd/A 2020-04-20 09:44:09 176.231.6.215 443 9091 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1120 +p reject 1-65535 +r taster aZOIAwr8XBEIIshd6XpRVFsZKYc PoWqlitepgcFBZJdw5LnDAETQd4 2020-04-20 12:49:31 5.135.199.13 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15200 +p reject 1-65535 +r torvlhdk aZ02htYHtZwZxVtMBjx8GEEB+Hs s0vAWx8k9RO3lVrGXhM096pmvh4 2020-04-20 01:10:56 90.184.239.156 2001 2030 +a [2001:470:28:4a6::7]:2001 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12 +p reject 1-65535 +r blablablabla aaEo1flSZ3SX2gz8OMXOVa7Q6jU asCXOB4J48/VVr8nNVgoXwAnQ4E 2020-04-19 23:28:40 148.251.201.51 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=62000 +p reject 1-65535 +r eclipse02 abU6WuUCXaiUf3wy9pypA3XtKk4 3KK5S3sf3DaPyBeBI5lRsC8tCP0 2020-04-19 22:08:10 37.252.188.140 443 8080 +a [2a00:63c1:d:140::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r qwerty12345 abzKgCBjCieBvJY653ZuIru7z5A +gJWTXtpw5AJPgigST54Zm5N7gs 2020-04-20 04:20:09 82.197.218.212 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=53 +p reject 1-65535 +r ovoschee acCQyfHKXCdeXsYg98yFJ054rqk +gy/hJ5znzimCNOd4Blq+Ptw4VU 2020-04-20 02:57:47 79.136.153.114 9090 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1100 +p reject 1-65535 +r xdefTorEvey acTCz89rQYY2l2tf/AFAo74hExI cWEVYg+if1CUnCS7T26IIHCGXbA 2020-04-20 09:42:30 178.62.251.184 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p reject 1-65535 +r SimonBolivar aez7cxwrCqe02HRu81BK3LHwpVY 3QFXB3BA2DwWhdjgwe52R/VgHwY 2020-04-19 21:07:14 46.232.249.138 9002 9031 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8350 +p accept 53,80,443 +r dantor agle17JULNtPzcHitnUOW9Dpshc Lcmq+5tSmX1fxe2BNBdCuFt1sP8 2020-04-19 23:11:36 77.162.243.170 9030 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=4150 +p reject 1-65535 +r ispy agunalLJCg098/kzBjo0nqzj9pc wuwBBKDUrRYyt/qID2rDQfxwEYc 2020-04-20 02:26:23 178.128.56.199 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=364 +p reject 1-65535 +r faust ag3X6aEfD3s6C8wrhrlwwowabvU N2Ss9Ne7aciY8g9ap6AB8oih150 2020-04-20 12:04:33 94.219.22.32 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=896 +p reject 1-65535 +r eererwerwerwe ahIQCsHSXsbPn7pIdS1Gp+AlG8Q bzDn9yDGBQwDMr1HRW6MRgIsrTA 2020-04-20 04:41:47 37.120.156.234 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=89600 +p reject 1-65535 +r lagrange ahOU1l+TALIiYpSEW36sJEjtebE HEh4FnsbEHx0CzHBbPmNoirH0p4 2020-04-19 22:49:57 51.159.59.115 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10500 +p reject 1-65535 +r neurodump aiZ22sr9vQDFuUvTQ2kJV6Ert1g NXBKuPKUrQxpDGeGQnYMhnlbbRk 2020-04-20 06:04:47 116.203.93.236 9001 9030 +a [2a01:4f8:c2c:86ca::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=24300 +p reject 1-65535 +r gangstatestOn175 ai8MBVoc3nd0G6fZPY+uhWyG9Uw Ws7OFAFS+lebciqC0NaP63kTPzw 2020-04-19 22:24:43 31.214.144.175 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=527 +p reject 1-65535 +r Unnamed ajL3S4UdKD2ps9J+qzDGMsVThdM gxHc14Ahpy/FDPOuKJcCu4Qgo0U 2020-04-20 01:45:38 188.166.91.194 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=843 +p reject 1-65535 +r bliblibli1 ajXuE9Q1T/CgM3TAY7ECkGFLtqk cUI0+8CGI4o3CsJ6eQ2POuTyWTI 2020-04-20 04:34:59 185.146.228.130 8082 8083 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37800 +p reject 1-65535 +r magritte ajZYcHWKHj56nuDoK8wNYiap6qo aUCfSVT8vsBKQ07VKPu3f1mj+gU 2020-04-20 04:29:33 37.221.195.23 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r Unnamed ajdfATq65cmg4CilUyKCrionK6I W9oqzPmLnr16eKlcnqhjuQLQqh8 2020-04-20 06:28:59 54.36.103.223 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=640 +p reject 1-65535 +r Mewau ajxG80FS6E5iRgiJwwaqh4kA5g8 j+lIGHwlI1+MrzBzBr/zV9GGWJ0 2020-04-20 00:54:34 159.89.138.162 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21 +p reject 1-65535 +r maxomeister akEqCe79GRreTuSvC5hhHhChVAk dwR/Fwn9Pg9y+KQBft7RLg3eR0A 2020-04-20 06:33:48 193.218.118.160 443 80 +a [2a0f:e586:f:f::160]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5400 +p accept 20-21,43,53,79-81,83,85-86,88,90,110,143,220,389,443,464,531,543-544,554,636,706,749,853,873,902-904,981,989-991,995,1043,1103,1113,1194,1293,2086-2087,3690,4070,4321,5004,5190,5222-5223,5228,5287,5675,6880,8008,8082,8232-8233,8332-8333,8502,8601-8602,9418,11371,64738 +r Spinach alBiHgl2BEhUwN83JVh1el++2u4 ejeLaO6MYiqLcJuIjoZPdbqzflU 2020-04-20 07:34:06 46.19.141.82 8100 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18300 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r MusicGivesMeLife alldrQg/tDJVEiJQiXuH1jLlelA xZnt4lMBn3LtfzBfs6yBia+h1zA 2020-04-19 20:27:08 174.59.212.195 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r snub altlC4MPQIKG/4cHGNPQC1aLcEU sf8XRMApvwENkmHSpZ76elRCSdA 2020-04-20 08:47:03 205.201.63.48 9001 9030 +a [2620:10:6000:10:0:74:6f:72]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=5800 +p reject 1-65535 +r YouAreLoved amQsr3O9vsZN2aRLm5c8cLPnRwc JRpwDeulv47UcNRF+vvuDq9sGEQ 2020-04-19 23:01:13 23.129.64.180 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5400 +p accept 1-65535 +r hinshaw am4WjH+ykJ2+vKe/Q7gYWDw38+o /rqhqnvq01BPgRxvN869s1ArmPw 2020-04-19 23:18:51 89.33.246.114 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6320 +p reject 1-65535 +r TorMachine anVR7uGPeKmBMJboK/hPdA0yuRE hJkgNCUChYciQzeU2LnvX96n2MU 2020-04-20 00:57:42 95.217.16.212 443 80 +a [2a01:4f9:c010:609a::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15400 +p reject 1-65535 +r NikowskiSecondNode an6GMRcULvsCHT8payBLp8ILz8A nPABWcL3G5x54xnDu5PSGWVUFt8 2020-04-20 04:12:17 51.75.64.153 80 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r Tortellini aoBJ1O2P+QKdQKOK8u+XyRX2EVE 7/Tes5KVeanZIdXcvpCpkR9oaEc 2020-04-20 08:30:35 144.134.156.40 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=69 +p reject 1-65535 +r nyanlay arYCgGhmxkiY//HCrc8YvYCqmgw QAK7xgsp8QNVqH3rCud7JenI8hU 2020-04-19 19:13:19 82.207.222.168 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=93 +p reject 1-65535 +r de0akatala asq0OUqUu//zkUlxQ+O0nIR5hnI jjT0IP8KBzSKD+8ixJWX1qPs18A 2020-04-19 23:02:26 195.201.141.166 443 80 +a [2a01:4f8:1c1c:15af::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p reject 1-65535 +r OrphanOrOften atPqVbh8gJcfNT66cQ9lUCAqk1U fGipfFE9bm14kyE1q+WDgzp5Jkk 2020-04-19 22:21:04 71.19.157.127 993 9030 +a [2605:2700:1:1008:bdcf:70a4:ad52:f4e8]:443 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=520 +p reject 1-65535 +r Rigel2018 atbRy+721hwiOgTnCigBU85/lkA ln5NYDh/T5L2PFJzgMnCnvR0rPo 2020-04-19 23:30:19 94.16.122.65 80 443 +a [2a03:4000:21:525::1111]:80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7900 +p reject 1-65535 +r figue auFX/yIBsrdNrm9V1pD0xQmzDbk t8Uf4ctLjRTdYO+kIAtk9CQU5lI 2020-04-20 01:20:47 82.64.167.199 9100 9101 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p reject 1-65535 +r Unnamed auF+3ZR04V86kDUHadZkgiKa6qE +0Zt+YcA4TjCsQt6IozCKT4tm10 2020-04-20 09:45:56 13.77.56.55 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=160 +p reject 1-65535 +r Aloysha aubArwWj8miM1iQfqvXyAn6AMrA kwG9ViGSnwSjaWyB36/GPIkBJWo 2020-04-20 06:56:11 93.95.100.170 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3430 +p reject 1-65535 +r idideditTheconfig awYrD9/qw8b5ID+5WERR4pVXTa0 Ha8bCV07GQpILuLgruS3Vs5g+yU 2020-04-20 12:28:44 51.15.37.97 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=43800 +p accept 443 +r TorFreedom awli6Zxiz9/K1tkThLEdSZ/ObUY VRZdemHj2HTmHen/ShtQop3QKI8 2020-04-20 01:30:30 167.71.219.124 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=240 +p reject 1-65535 +r smell awlvD01GtyLvTa75TuGs7SmIKj4 k6q/20NRLqgYv4WCL6j0i4X1ABU 2020-04-20 01:26:31 209.141.42.3 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6400 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Bledo aw91qmi1AqjAm2KOX1WLkEED9H8 u+xyGQahYdI40b3vrPLByz57O9U 2020-04-20 10:16:16 62.42.138.162 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=83 +p reject 1-65535 +r hunterwolf axOiwzMftfizfwruk0HVzxwh860 nuZFfyAc26y4o0zQQbZ1ekioZ3Y 2020-04-20 03:12:08 142.4.212.102 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12500 +p reject 1-65535 +r theLamia axPdN0940xQQ6h432AL/ca3dKrQ 6om0BF7LMzyjE0hOX7f/XSAdOdA 2020-04-20 00:22:51 83.252.53.83 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68 +p reject 1-65535 +r ParckwartAykut axhd7rJJ5Lphguygd1MMRemKbF8 bqmrXWcnrA6DILIObKl2oPSoAvQ 2020-04-20 03:14:49 84.176.234.249 24107 24108 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r pmffrrbxone axotiX6gyVkyFFmu0GZyJI7qCqU qiG/Jkr77NascxrtG/B1Pl8JUto 2020-04-20 11:06:53 94.23.214.156 14510 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44 +p reject 1-65535 +r LaMarreTAO ayY7RbM7jixzq4D5sNc1OLRL110 KwzUz9rMcNeO3nzyonxn1ZSM6Ao 2020-04-20 01:45:14 178.17.170.13 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3660 +p reject 22,25,119,135-139,445,465,563,587,1214,4661-4666,6346-6429,6699,6881-6999 +r Unnamed ayzzHH+TUiS8IoXR+Kk6IIxxnEM EHlF8aoHnA+axdhOmZvjN2E46aY 2020-04-20 11:21:45 89.39.105.228 53114 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25 +p reject 1-65535 +r hasselba ay4f9bKto7GVCg7+bSL7CehG7uI 6j0uvZHvEYkltHTpB7FWJTWyT/U 2020-04-19 23:33:23 94.79.137.182 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=85 +p reject 1-65535 +r snap277 a0RMNFYps/7Fz83FjQGHLCDAhFg X0DjqUia5vDE3wJMGY2a40usG8I 2020-04-20 08:38:21 78.217.177.50 38707 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6 +p reject 1-65535 +r snap278 a1Qj+WsQ5qwO2p/8ocQGNEj8NGs qD6DRXFjTLTItZqPPKgbhxeJpNE 2020-04-20 12:57:29 1.222.138.53 39989 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17 +p reject 1-65535 +r Magiville a1pjv+6o71jagS9PBb6YyGmAnfs Iliq24RBaBMLpgVwXNI2zSWp7dk 2020-04-20 07:49:54 51.75.61.194 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35000 +p reject 1-65535 +r Unnamed a2PLm0XQ9QWtOqUa+Lf6zqQ9zhA gYPeCzE9iQOOxiwT9XJUGr6gv3A 2020-04-20 11:42:28 13.75.77.143 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=80 +p reject 1-65535 +r Faentadeg a2vTA5XX7Zfnfqt0fS9AEZvtXX4 0ea4ACvr3iWWKkLUBq2T+8zBCG0 2020-04-20 03:17:12 96.43.138.43 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2400 +p reject 1-65535 +r king a3i5zFOuKs64Ny5FThZ8H4coaEA tmTtC/uMB7bc4jOPV0a+ShC9jjI 2020-04-20 05:08:48 51.89.147.72 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11700 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r torpidsDEhetzner2 a3q9I3zyXl94fzZa9fxMhvAhOp8 qp2FOcomCeDRuWr0emad1/46HRM 2020-04-20 10:02:07 94.130.183.13 443 80 +a [2a01:4f8:1c0c:4312::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40000 +p reject 1-65535 +r sethsBSDrelayZ8350 a4BXGKl79lPLVUYIC+dWUF+b1l8 ZZxB+kKkQi9BA+bnwqFkFv/pG0s 2020-04-19 23:06:41 151.197.240.154 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9600 +p reject 1-65535 +r slacknet a4jiD+6OtH8ajjAgfzJwBcYaAT0 oVceZ+nLPnM97EsofALsVL/qUGw 2020-04-19 21:52:37 148.251.221.163 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8810 +p reject 1-65535 +r gashis1hn a5eZEyxodZmFtNBJeQKtbgQ7o3s T0v8343ZLgfumqFea83nsB8e9To 2020-04-19 19:04:56 46.119.236.224 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1500 +p reject 1-65535 +r cebolin03nl1a a5mbJhxUNRh7rDcSRySztuLgHPI rwBnCGU9dxoxePQW2K+miNmdjPU 2020-04-20 07:03:23 51.15.122.193 9001 9030 +a [2001:bc8:1830:2231::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35600 +p reject 1-65535 +r Unnamed a5tyV3JWij54fgZu7jOAi/9Gfr0 THlKd1/ScaOfuDtIcDmVfn2tL3M 2020-04-20 12:38:46 142.44.133.93 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5970 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r AMDmi3x1 a52DhD29aG27gGaYm/zJAwP2ewU 9wi9h81y0/INaBnyBCGRGPJdgEc 2020-04-19 19:45:21 185.125.217.66 9001 9030 +a [2a02:f680:1:1100::174]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1670 +p reject 1-65535 +r angelinajolie a56oknq26U4hYGfmU3IYI0Olr6I KhHpsbufdLsdylZHp0J7ZjQVNPw 2020-04-20 02:42:12 62.210.83.207 8080 8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.1-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68300 +p reject 1-65535 +r theia3 a6VNeAWkT2OnXXCv7I0t9rp7yuA neQFuQ9X4Zl5KOC48OD4BFJdFAY 2020-04-19 22:57:54 50.7.74.172 9001 9030 +a [2001:49f0:d002:2::53]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7710 +p reject 1-65535 +r NEWYORKNEWYORK2 a7Sb6PXiDD2gd2CEgz98nkgn9JQ OWW3SlznxI3d/OhvDHdGWaxNdf4 2020-04-20 01:52:43 198.98.50.201 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5100 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,11371,19294,19638,50002,64738 +r Casper02 a7qMLGFx0zc024RSsvChxOuBYxI r0OP2+XM5/wemTRkb89+olulPbE 2020-04-19 21:18:18 178.170.58.2 995 110 +a [2a00:c70:1:178:170:58:2:b50d]:995 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2570 +p reject 1-65535 +r snap277 a8ofrQAPUQVtd1C1RU6UF4AXKHU a+Itm6B4jTH/DpuTUuV48ZR7jio 2020-04-19 21:45:48 82.213.188.21 35919 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=621 +p reject 1-65535 +r F3Netze a8uWSrdOI/iYa9qQVpfTpr4Iryg KDmZ0MJ559s6k2ThMkNUDlfYJ2U 2020-04-20 06:34:27 185.220.100.252 9100 9101 +a [2a0b:f4c0:16c:4::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=91800 +p reject 25 +r tormaumauhosting a+WqNKXDkXJGd6P9wqp3s3aPbiY K4vjQswYOMwnOnBxZpfmSN4CDQ0 2020-04-19 23:49:23 212.47.254.70 9001 9030 +a [2001:bc8:608:252f::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14300 +p reject 1-65535 +r OrcaTor2 a+f37KUxtUEYjyAeer/vK4Mf3NI 2Mze3gsTE0aEy55xBI1tH690EUo 2020-04-20 12:01:05 81.202.155.93 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=631 +p reject 1-65535 +r tor4que a+n8iil9iWsjRg8vsV74VN/NyYs HyuJn2kgxNAqGe+3KrUqs65cRLQ 2020-04-20 09:16:49 64.225.33.130 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2400 +p reject 1-65535 +r tptor a/rtbW3ew5sDxMkfnFcz5bIeFIk zEt4OBYJ7XuVACmtz4dGFt/YIm4 2020-04-20 11:10:32 79.111.14.230 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4310 +p reject 1-65535 +r CalyxInstitute11 bBQ3IP/4Rp72pcW0BmNmNAz2wNE QF9YDstvwK6xbBew13zXL2fGcTA 2020-04-20 01:15:24 162.247.74.27 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33400 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r vahShei7Eeth bBqMvliZBu7G5z9PKGrCmvdSHh0 pKFMFDCXck+lWxbdigttLM+St2k 2020-04-20 05:39:54 5.9.37.162 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=657 +p reject 1-65535 +r OctoTor bB0SRLxf+WysUTqj9I8+r02EBCc 3LLCnQcyBq4O5wnBv0sbxiKTroc 2020-04-20 02:54:05 94.142.244.11 9001 9030 +a [2001:678:688::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8790 +p reject 1-65535 +r twinky bCUfp/Rene319puj0Wf2unNvSc0 X4uYT7xeSkuAFT3QGzf/cRl5kj4 2020-04-20 04:23:42 46.20.35.116 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20900 +p reject 1-65535 +r Schneewittchen bCgtNcZ0oDa3m18w6Q0Zs2PT2rI MxGhtKexSM07Uk3/wOYm0VGIlK4 2020-04-20 01:15:46 37.252.191.41 443 80 +a [2a00:63c1:10:41::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24700 +p reject 1-65535 +r czechmate bDM7W9uj3+enguQMuXDCcav+0Rk FOixLtmPKSZDc/90FHmwGqE1pmo 2020-04-20 09:10:58 85.17.127.129 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=61100 +p reject 1-65535 +r cebolin05nl1a bE1jKO2IrARLcTLb7PPy5cZt2v0 7EXfiPuHlTChhBrkka7EMpHFb1k 2020-04-20 01:21:24 51.15.70.32 9001 9030 +a [2001:bc8:1824:f27::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38900 +p reject 1-65535 +r CHRISTOPHERSOFTGEM bE65HJS30ZTLEXCTo2Wh0G+pvwM yytV9612zk9Wp/pfRyfEjrrea/s 2020-04-20 09:18:32 62.12.118.116 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=461 +p reject 1-65535 +r niftyguard27 bFzMexcb/iWMG6LV3B+g+ljbGEA TPPFPKQgf4XnCDn/3Nsbzm6ft+Q 2020-04-20 12:46:22 185.220.101.236 1236 2236 +a [2a0b:f4c2:2::236]:1236 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r Cerberus bGIMNcDqFmV5YIgt6Isolo68hok PHFY0zkYVNtcvox2oa4M+ePvuzo 2020-04-19 21:26:38 205.185.119.222 443 9030 +a [2605:6400:20:ae6:e6c6:d90:fee8:5ad5]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7000 +p reject 1-65535 +r niftyhornedgopher bGSubX79pSpGP7atza4tLd4Gd8M j2ivciLD5fVqNwxHqgOXENVu80A 2020-04-19 20:00:19 185.220.101.120 40020 40021 +a [2a0b:f4c2::120]:40120 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12400 +p reject 1-65535 +r n0torRelay1 bGS6uf3re7duJBRQJftoDagmrbo KLrUkhhhIrV/nwzeXjnnq2eO8mU 2020-04-19 22:08:52 139.162.151.86 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=287 +p reject 1-65535 +r maxlrainerbier5 bGdT01JlOsY8AVYphPJgiFAqfk4 G2igXwZOPILf0uBJVq4DBvYaLzU 2020-04-20 08:14:29 92.117.134.157 9001 9030 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2930 +p reject 1-65535 +r heavymetalnode bISgfEQXpq3mNhjWsDuYIsU26Vo NOlV5H5J+PvpjcrO+vV0Cm3+GLo 2020-04-20 03:09:52 94.134.43.110 443 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=986 +p reject 1-65535 +r csustueckscheisse bJDwZeRJzVE4x+CLS8L/D+3H6QE 9vjXR7bOmtiHRUWiltKQmBHIa6Q 2020-04-20 05:12:16 92.223.109.49 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1910 +p reject 1-65535 +r AmishTorRelay bKHlIHGxWddK81rTsNzhKKGzKuk hlCsyaUYpnZQ16061YbBEmSb81I 2020-04-19 21:39:12 174.54.26.91 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4390 +p reject 1-65535 +r GeorgeIV bK1qtszLWAqzRbLXiXNrgOmqAvQ auYMsmJ1nSkFw1OqyhUmmkZ9Fdw 2020-04-20 01:00:04 37.153.16.170 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5400 +p reject 1-65535 +r Unnamed bK8hTPKhROfrI8pmwpZusCPvnnU Doar4CSVpFM85pwcMKdnCZkQkpo 2020-04-20 11:16:57 95.216.197.214 9001 0 +a [2a01:4f9:c010:3661::]:9001 +s Fast Running Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=535 +p reject 1-65535 +r niftyguard56 bLfQ81W2DvFmQ56Wh2vN6/j9jg8 t0pd7pqaQuluubjFV8JptEoCqaA 2020-04-19 22:16:33 185.220.101.175 1175 2175 +a [2a0b:f4c2:1::175]:1175 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 25 +r nm2048 bMJe8be6jmq1tPYrPX0bbC5dtvM VeGT9fVjh6NuRsGz2WfwYqoROXc 2020-04-20 00:00:57 104.244.77.203 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14400 +p reject 1-65535 +r ORLY bOAraQ4flQMtOOP684DZBxNcnho x6uv6E+fa9P3UXTzwWKeJquUjPU 2020-04-19 21:55:23 85.166.253.69 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=300 +p reject 1-65535 +r nondeterministic bOPd+qnlb1aJAjXMnCOFst2T4UY bh3emN3FKqm20cA6CO66cJJanUc 2020-04-20 01:59:56 23.129.64.203 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11400 +p accept 1-65535 +r cebolin04nl1a bOaU+lV+4YRBUIse+m5Cr7RdHNg aBzNIFqc0Ir7aMc8YDZ+EkH9nY0 2020-04-20 08:20:39 51.15.95.107 9001 9030 +a [2001:bc8:1820:1d01::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24200 +p reject 1-65535 +r kobayashiMaru bO5w0zsYeQZXwEOdlMHzF5muyPM H0qFNjdfHMyI7bQP1myk5ok7I0w 2020-04-19 19:13:17 81.157.142.9 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r sanyalnetcloudvps2 bPpNnPoJsGM6FQ8W3sLQVe0kNTU OAKyGeZMwQIKIxLnJGUQTHqwLuY 2020-04-20 11:05:41 45.62.253.138 65443 0 +s Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=53 +p reject 1-65535 +r charpini bPxHtG5CqddtR7kR+3GeZTCAFO4 7pBPc9lGbJiNPg7RoI2LL0QnAdk 2020-04-20 12:07:10 89.187.143.31 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13000 +p accept 194,220,389,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r gandalf bQUECRpvnBSBxizqvuo3gziu5iU BLESL+2CvUBorSu4Ab71GizOwmQ 2020-04-19 19:30:42 38.109.217.146 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2230 +p reject 1-65535 +r novalue bTTt7oI67CSSgac546KstcfqwzU LjAQ4wTnCu6Cw2kfYs/zakfmjb0 2020-04-20 00:07:03 64.149.142.161 443 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9350 +p reject 1-65535 +r niftywabbit15 bUW/eZq5ib59jwRaSJzN3zjU0go 8+ZTl1E45BQQ57d00X93E9xoLiM 2020-04-20 10:53:13 185.220.101.245 10245 20245 +a [2a0b:f4c2:2::245]:10245 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26500 +p reject 25 +r lukechilds bUh+ujCAMLBEEFFUJ2Xp3BkvlUk JSqdu8G8bba4AoOnN61JwJKAcfY 2020-04-20 09:10:26 159.65.2.204 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=911 +p reject 1-65535 +r Assange026fi bU1Rk6DikMAn/mtmcxEz9wlGoVU bsRjUh5ZCv/vSQg8vCNuQSXV8CE 2020-04-19 19:28:37 185.103.110.14 9001 9011 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10800 +p reject 1-65535 +r marodere bVorQrEGluKUAB+6nT6quXFnvbY Mjaij8Pn4VKKE7e/Vqazjo1gcTM 2020-04-20 05:41:31 46.188.44.51 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r TorOrDie4privacyNET bW7CouLti/8tSDT41mnYL8Kp+o0 jrV7bsqXy5pSQ9adV9Pess0+89o 2020-04-19 22:07:40 217.79.184.72 9001 9030 +a [2001:4ba0:ffff:c4::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39700 +p reject 1-65535 +r argus bXLpcOtSGHAshUviUOwGY8wU2b0 fgPa+c8IUeM0NeDELZ1nI7eo8f0 2020-04-19 19:31:22 147.135.209.234 443 80 +a [2001:41d0:601:1100::9de]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r SysadmAtNbg bZNQPhUElrsypJEvkExOLbIFJ40 Rk/pb1dq1VWvZ7eVaXWwYDy796s 2020-04-20 10:06:21 91.39.144.59 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=853 +p reject 1-65535 +r king bZS6MOKg2lRpFCKGBAqamqJJQdg 7fe/uJ1wQ3eI7DLnG9cqBSeZ4PE 2020-04-20 06:48:35 51.89.213.86 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ApeSthGw1 bafesDe7FjmRs9unSxrsSLtJfHo HBqYlTZM4Xx9+qJGUVKlKZMRKvo 2020-04-20 02:57:47 94.140.114.122 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r ididnteditheconfig beUQKCDBkBVN9BQB93Dj0mYN9mk WtjCoKOXILQJ5nHgvP5VPEqPjpo 2020-04-20 05:21:51 87.123.93.127 9002 9031 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r Bl4ckh4wk beyQ0tMif9azgGnV0x9wGdG1Ins VVmVpjvwob0rHYEvrI/6wRwVbVQ 2020-04-19 19:16:12 77.20.115.193 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1750 +p reject 1-65535 +r TotallyNotATorRelay bfPLUeGchWK1rqTFetwTYqeT6nA 4ylUll3KmXxZFWevKKgpr1B92f4 2020-04-19 22:17:29 87.138.131.58 9001 9030 +a [2003:a:d23:1701::701]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2490 +p reject 1-65535 +r GIGAWATT bftKyLXnsa0LP19GX3dKQhxmy7o kKj6rfoBI88UEcvxzoDc3fXR9JQ 2020-04-20 10:05:44 71.252.137.246 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=5890 +p reject 1-65535 +r snIP3r bfvw/1BFYSWtmN5mXMYAMYY/65g d9GxT+vkjbDLzBEuJ6S8EA/Vjb0 2020-04-20 01:46:43 93.239.181.229 9123 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46 +p reject 1-65535 +r Onyx bf60HATM6EaHEzjoXdWs9c+2wd0 4c3SpZPJvH/kXsPwY8VDoRZGRTk 2020-04-20 11:42:19 192.42.115.102 9004 80 +a [2001:610:510:115:192:42:115:102]:9004 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46400 +p reject 1-65535 +r PlanetBob bh2kwLDAX7chtCMpxHog2iKQius WVqVVFeSKT/+ddBWqo0UOD2GYbs 2020-04-20 06:10:01 176.252.177.192 443 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=482 +p reject 1-65535 +r nightie biFBKbyU8m5I+bjH9jEwQVTW720 nQx9ERNBwi2eDYp0KDhZuGsuj5g 2020-04-20 09:27:21 45.141.156.228 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3870 +p reject 1-65535 +r Gihkal biJWom3UoxdG3ztw8iPlo84D+S4 ZlWERXB8kPJtnmqEmOG8FBSWTVI 2020-04-20 09:51:21 62.210.108.137 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16900 +p reject 1-65535 +r mirra biW/StfBRuJDmpaN1MKc4PVpqrU pckwy5Pp21VoyiYGkBoHWvANHHA 2020-04-20 09:09:21 94.102.51.78 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087 +r Unnamed bjPUEB3cY2a+R3ElBo49XS8ix0c yyU23S7WQMeOlBWdRoncKjrDDPE 2020-04-20 02:02:57 54.36.165.170 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=75200 +p reject 1-65535 +r libertynewsrelay blYzuoHWXUjeSNoY9zCcp9GePKI 1jeS/rm/BIfZECG9pn0zwKTWfnc 2020-04-20 00:01:00 188.166.93.163 443 0 +s Fast Running Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1470 +p reject 1-65535 +r torricelli bmQr0IpdaHssVeNZNuMnJjapA2I n7g2YtkQww9etTorQsYJxBdqzm4 2020-04-19 22:26:06 90.110.168.143 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=350 +p reject 1-65535 +r SatoshiNakamoto bmbZeFFP+Gze8B/jDCOhACklqgI +ztGt1H8OUgkvuTl9Fst+RvAYpk 2020-04-20 00:41:28 51.77.108.33 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r powerloadnetrelay bmcwJT9Brgz/flWfvcSlk9Ydfjo poeYkJYGyx0cevJw1JS7MS8uAbo 2020-04-20 06:39:11 46.223.21.191 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=226 +p reject 1-65535 +r UnstableDebbie bmcy4Aw/iRK9yoDPzyPQ0mhqw4s 3cgQd6skq9OL8mQCd2TpoW8Tu+Y 2020-04-20 08:15:06 198.46.248.36 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120 +p reject 1-65535 +r khaua bn29CeCwCw1IkDzbHcx6P3y7QIs wag8qmtLGC8KV4SvSp6nLjSGoho 2020-04-20 08:20:15 217.12.221.196 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=953 +p accept 43,53,79-81,443,531,873,981,8008,8080-8082,8888 +r canary bn/H1AU7ax6KDb2fLHtHDwEEsjk 3BIPlDQOLcW21vimS3DSoxnHPOI 2020-04-20 08:59:53 84.141.145.3 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=289 +p reject 1-65535 +r BraveMenkaure bo5cqbb1Z0Fq2iHpkOd0a8IjsMA PCkTCRZGUeZt8YjMjR4gfzMdviw 2020-04-19 20:25:15 65.49.20.12 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p reject 1-65535 +r niftybeaver bpSGbtjKCYus39NtTo4rRZuKc04 +vtjkOptOkI2GuY8a9R8tfoveJM 2020-04-20 03:13:53 185.220.101.131 1131 2131 +a [2a0b:f4c2:1::131]:1131 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43100 +p reject 22,25 +r Elenore2 bpZC3bNT0ESTECnANtHK2DLz39c +1mQ72vjYCeo6z90JzsMLQNCmck 2020-04-20 00:57:10 37.187.105.207 9001 0 +a [2001:41d0:a:39cf::1]:9001 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4400 +p reject 1-65535 +r spongebobness bphOL8I4LBKONmhUTIjW8OibH+k iw97xz1o2fOvJdWt57QkgmwkkDA 2020-04-20 08:05:05 89.142.75.60 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3980 +p reject 1-65535 +r X5CXVAGY665MGJW brfx7kSOWigtzOasb3yn704urEw hROixOudodVltoMabMuSCeJI9fQ 2020-04-20 11:18:33 144.217.108.11 443 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6590 +p accept 80,443 +r BLEPTOR1 bs5wO1eBwXjXIL5OJ1XMUy31CUU EZ/PWDOC/mHX1oPkK904ZMaxvyk 2020-04-19 22:10:09 145.239.214.38 9001 9030 +a [2001:41d0:2:8042:0:6::]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r lambda btLTB/Nvnkk9HUZb+3tJVD+/EhQ djYEjqg2WxJm4wLvFjotuGO/bgM 2020-04-20 03:51:43 95.179.203.206 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=88 +p reject 1-65535 +r swlt1 btO+IrImElgBez8FhHBiZZhdeuk UUh0SgtEneWIZc+MlLbs/58U1bA 2020-04-19 21:56:57 212.227.164.108 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=74400 +p reject 1-65535 +r KGBumbrella btRFyFRQmFaUFQ+Su3QCUI2GH4Y 8Ub6MjpXvMepQGCmd6ZlVobE58g 2020-04-19 21:18:52 69.112.102.19 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=230 +p reject 1-65535 +r shufflingmadness btviCJe9AqLY1lTQRA/bKjsGQ+E 5/nShohSGqy6eGBeQhE78KEZfdY 2020-04-19 22:27:10 69.172.229.160 22833 2438 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2910 +p reject 1-65535 +r PikPikMikMik bt6zLQue6i6FwxC2etZGaDmEAvs 3i0WfX4OZGuxFo5M0hC3lyLrlP0 2020-04-20 10:27:53 194.67.202.204 443 80 +a [2a02:f680:1:1100::8af2]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5000 +p reject 1-65535 +r Tor1 buG3aFwtQt54l094yOpko07sz7A BmGefV1+DScb0YynN98Qy09/ZPk 2020-04-20 01:07:55 195.24.56.248 40001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r Unnamed bueJoIkt24ko1B9Dn2OeSUBfW7U hF+WP7sUuTNuIBIFH1UYV4WPQNk 2020-04-20 06:37:15 51.79.86.177 9001 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 25,119,135-139,445,1214,4661-4666,6346-6429,6699,6881-6999 +r LANETRelay bueur8JFQr9Ntuck4LSdhd+VFvo Y8wlu63Ygz2O5sqntKUI4tnH10g 2020-04-19 20:33:10 183.96.178.9 9001 9002 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=180 +p reject 1-65535 +r cyndaquil bu+ERr+dQ9p/fYUFvfxJu+ZL+CI iFOPoK/zB2ugv3X2SYAvukXuPaw 2020-04-19 22:58:11 23.129.64.205 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8400 +p accept 1-65535 +r biggie bvVJACc73/yzrHCDxj3q9x93ciw ydVc7LGWNi/rp3dIdTKChgRvETE 2020-04-19 22:29:08 41.77.137.114 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=72 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r VegaIT bveLsTHaM/nSZrxLtZciYeNNvRM XlcPmrz5z2CslFmDeRkmxJRGQVw 2020-04-20 10:32:54 178.239.176.73 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11200 +p reject 1-65535 +r d6relay bviXZFt5tss16FOzJQY3UBTeNiE UuFt/79b9+VSIt+CD97ayHzHO9g 2020-04-20 11:41:32 80.127.137.19 443 80 +a [2001:981:47c1:1::6]:443 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1880 +p reject 1-65535 +r dsier bwbjVYbojveL2mmMYqx4HqjYDEo UIkGpF71PBlI21hZ8XJ+WVmgqdU 2020-04-20 04:41:16 158.174.54.8 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21100 +p reject 1-65535 +r snap277 bwlWOm3eo2Vkt8y8RIGYreXxOxg CKsTC3/4n5G09T9+zphvo1WrWO4 2020-04-20 12:25:11 70.21.204.61 36053 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4760 +p reject 1-65535 +r snap277 bws1hhSeu6nLFDmJ7rpBThqN/70 3ht39S/tP4sPG04fsmkl3SnOmWY 2020-04-20 06:32:15 2.152.72.188 45955 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=244 +p reject 1-65535 +r Petibonum bwz/Y5pp8y6UH51RU28xDghyqrc AFmx3K/oGppiio2evFu0WDaPwp8 2020-04-20 02:00:05 92.137.3.58 443 8080 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 +p reject 1-65535 +r leysen bxojFMShre37fUGba7ENe8QBGfY qMwQMYZxZk/xBheMF0Kos6yq40Q 2020-04-20 05:17:58 45.125.166.58 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=520 +p reject 1-65535 +r Unnamed bzerkbSeLuwEZjZxOiT2of6qEr4 ytT7tVSSh/a/aCtAW6Cv5v7WtcY 2020-04-19 19:34:42 167.114.89.193 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed b0nhae9AeuZmeSSDiLHDwgCyro8 K+fDP3N4OeMD0zuwZTyI5eKU9yk 2020-04-20 11:26:00 191.234.162.235 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=260 +p reject 1-65535 +r CalyxInstitute06 b06f0A1CUdmL6W+xqlRv40Z2qVs 7MLEqMTZ2cDPPsmwAaRes5OHgkE 2020-04-20 01:28:25 162.247.74.206 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r Otixaava b1QNNb7OvGYaQvl9XwFrPC8mYik sQIDx6EtPT67thtdXbTH+yzDD4M 2020-04-20 10:09:11 37.187.39.53 9091 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=16800 +p reject 1-65535 +r Grexit b1uh08Xedh1HQlGd9TntK4myM88 ZzrRio5EPizTlwBSiXWFKxyOcgE 2020-04-20 05:18:08 185.4.132.183 1194 6669 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17000 +p accept 80,443,554,873,1194,1723,1755,3690,5228,8082,8232-8233,8332-8333,11371,19294,50002 +r Vreeken b15ebGVEFXYaJTVInMXVCwG2ymI f2lPbwCRF9jsySGyr3MiFo+TK+4 2020-04-20 00:26:54 44.137.25.56 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=55 +p reject 1-65535 +r torturing b2R4MQNc24kbMxA6BzrrkCgSISk Wk15fDylRKiKikIqkcW77MNkCsg 2020-04-20 03:45:54 51.15.117.50 443 80 +a [2001:bc8:4728:1203::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50400 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r brotherjacob b2WG8WMcrBEVuVYWVudmTThrf0s kjIk8/bHDjdxupNVj/RW5XEZhXM 2020-04-20 12:47:24 46.4.55.177 1723 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=301 +p reject 1-65535 +r kennis b35gLXnRbIcfiYS5hljyyZKPL9k fn3gmpa4yI+oY3vWtpAb11P2Myg 2020-04-20 07:53:47 95.156.95.8 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=989 +p reject 1-65535 +r Unnamed b5AQaTVqeJ8CKU8YpNX+E2gjlwI jcMjm+xX1rJ4Wl+sqd+K92enNfE 2020-04-20 12:28:03 80.85.154.59 9090 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1840 +p reject 1-65535 +r holl b577vQPxqWXFmt1zu6RgB4Ydfyw k9eYc+4cZZbmVARG29rBXf+sVZE 2020-04-20 01:21:30 91.219.28.211 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5040 +p reject 1-65535 +r mj1 b7ILsFqEHN2zCOhaTRF/z8kR9eo MDkCvXFcItiH/B5JMjB+N13eDS0 2020-04-19 20:58:41 93.115.86.9 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17400 +p accept 53,79,88,143,194,220,389,464,543-544,563,636,706,749,853,873,902-904,992-995,1194,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed b7Qe0daPzDmdzoFgDOMDYNz/4mM TpOFIJ2dFWiJFFEXe2Q2JeoPj0g 2020-04-19 23:51:56 62.210.37.82 443 80 +a [2001:bc8:3c96:100::82]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r niftyleastgerbil b71lwiwplrIDigkL9eVap67e4SA kaqOb9VT48XcLaFD6d/dJ959YLY 2020-04-19 23:16:32 137.74.19.202 80 443 +a [2001:41d0:203:1c74::e5c:10e6]:80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=51900 +p reject 1-65535 +r jubei b8jTsVIFSQZBfLHuBkImV0fH9ok sMT18Ou0EM7ollRou3gilj79Tdw 2020-04-19 20:03:08 141.156.161.112 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6300 +p reject 1-65535 +r S01PIMODELB b+ePP7OWo3hlavLFv2obQ4RSU9w mA50V+bb5jr8ALumTeH37Ld41rs 2020-04-19 23:51:57 217.208.185.99 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=688 +p reject 1-65535 +r atlantis b/RA37HQaXuUI1fXR5AMwwjdV8w xtwCJquJzbDfNc/ANQTQ1nOtOwM 2020-04-20 03:19:31 85.25.43.31 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=94300 +p reject 1-65535 +r OatMeal99 cAkOn4X74ATuv1hGH9bt1b+KUj4 rIavde9PiVuOjIFFg8BlWxFuQKw 2020-04-19 19:08:05 80.66.135.13 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4250 +p reject 1-65535 +r shadowlink cAqb7LNzX02ojxHMfb4ThmUippU tm1xOIxDodfTo5HGNnkbn34vwtg 2020-04-20 09:56:48 209.250.235.197 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=870 +p reject 1-65535 +r smell cAwdo/sM9dNWSdolaqOnUDq4wHo ZOnpLrKnsfSVSzqOjFY/68E3jy0 2020-04-20 01:22:20 205.185.121.212 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5700 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r AkashaShrooms cBDvXR9h7Jy2Vlgjm43aBDnniss uaFp7XX0IGr4lneelJQrxcQz460 2020-04-20 04:40:37 37.187.104.111 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p reject 1-65535 +r lostinnetwork96 cB+N+Cfzj4Ia50YKBCQcTLM0u/o IH6Igwr3uGTggctKruZalfVXzho 2020-04-20 07:14:19 192.40.56.233 9001 0 +s Running Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16 +p reject 1-65535 +r L29Ah cESVWk17BM9wAR1ztGexPOXmnUE Fx9yAn5h6jawl2rM2IVzheK4CIc 2020-04-20 03:06:47 94.242.59.47 443 80 +a [2a00:1838:35:100::e928]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4610 +p reject 1-65535 +r LLXnonexit01 cE1jjNZo7RKwG9mZevD+4zMx/wc 2vrpejJmAoqW+irD/xauPkSUke0 2020-04-20 07:04:00 51.158.23.91 8443 8080 +a [2001:bc8:2db9:299::dead:beef]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22100 +p reject 1-65535 +r snap277 cFEwT+UCzOrqWRdxlICAX22q+og vA9tsRr8i1ua8CfjMsoB7mUCTVg 2020-04-20 09:49:39 78.213.247.7 39295 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5 +p reject 1-65535 +r rofltor04 cGp2dKIXupBf5nfoIja3uWiiPbc PZjfIg1jQGXQiJLZN0qUWzCgboQ 2020-04-20 08:59:10 83.136.107.114 9001 9030 +a [2a02:29e0:2:6:1:1:7760:bbd6]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p reject 1-65535 +r SSA8MyBZYXduYm94 cGse2a9cyskK1IiuJpGzWPpZjLs NngFyJsdXiYYsoNvMCzO0M3Lwq4 2020-04-19 23:01:06 23.129.64.181 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8420 +p accept 1-65535 +r snap277 cIQzeehviEzRVA3YGkAZ8GO84oY nIbZwF4ivCVoL7FTU+RUjkjqpNc 2020-04-20 02:27:23 121.52.142.74 35917 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=88 +p reject 1-65535 +r Basil cIjUhZNOikA7gVMfjJC9x1+kPJg ipnMI2aYUcGjizzeMqX6KNou0jI 2020-04-20 12:28:32 37.139.8.104 9001 9030 +a [2a03:b0c0:0:1010::24c:1001]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r LittleFoxRahja cIqWjzZE+KVHFWNo/qPbZkEQ5jE pxfl6w25Mf1W9nwhpIHipIS9KZ4 2020-04-20 07:06:55 178.63.72.24 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=148000 +p reject 1-65535 +r FRANCKENSTEIN cIwFUnfWwRgJR0hDonhZCby2Dkw vWHZIIveqX/tetyxIZV65HNcQtE 2020-04-20 00:52:20 185.225.17.151 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5320 +p reject 1-65535 +r SleepJeep3 cJMMz44v/VwPimPI8rwvfM+Lpwo SvtqUqC+whPFGim99sjEqSe74c0 2020-04-20 05:48:54 31.220.2.131 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59000 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed cJT2Om7hoTatmdSD9FVLiIju63g 55goc++lPTdXrdiQjy6E50M0eOw 2020-04-20 10:30:02 128.199.221.35 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=512 +p reject 1-65535 +r Hydra11 cKQ3Ltj13eO6BaF0kbtgMurAJpI 4nmoUQiOx8tqacbC7ITJaoAruMU 2020-04-20 10:33:29 89.34.27.43 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11200 +p accept 53,80,443,1194 +r CalyxInstitute21 cKygfZJ2J3uC6QnBQ54ZzKL7Fsw amF4o3J0k5WhagxkG0RYdhoSAT8 2020-04-20 03:42:34 185.220.103.9 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23400 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r Hostbank cK/uVE9agMLCnT8K6THuq4HB4yU p9heDAFJ8GLVe+09TGc8ebYCO6Q 2020-04-20 08:12:24 66.70.212.3 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r torpidsFRplusserver cMVaEUwO89xXhKT67mQ4hDSjOY8 fe6hcj7usBO3MNAXEHmDqoM2rJQ 2020-04-20 00:29:05 188.138.88.42 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9020 +p reject 1-65535 +r Magic cOP7MVdWVq1nUTJXGkkYEPXzvRI 1a0Umo/uPe5grgAB93XPVY6sKr0 2020-04-19 23:31:05 131.255.4.188 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=98 +p accept 20-23,43,53,79-81,88,110,143,194,220,443,464,531,543-544,554,563,636,706,749,853,873,981,991-992,994,1194,1220,1293,1500,1533,1677,1723,1755,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19638,50002,64738 +r nha cPCemB1tSjSjXySPDIc8ujVqBhI Y/vp6TTOHEGJdc958Q591+iPjBM 2020-04-20 03:07:39 81.17.17.130 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r 92022ff27ab6 cQB0Hs8hnLdKzhnx3vqOmotEKvo CYKZRexYW8MV/uAtG69Kbjptsh8 2020-04-20 08:13:17 51.81.254.23 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11300 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r hviv122 cQJrmZ4V7MC8yla5cuIQzKdq2Wo 6Bhz0nNLSFoNQ/vyjlnpNYnZlnk 2020-04-20 07:40:27 192.42.116.22 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24200 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r snap277 cRn5iJMVS8o/fmjTF1WwJt6BzOw xi/hVqdO6GMihEQjfJgQSEXHgOA 2020-04-20 06:59:45 92.189.126.95 45675 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1840 +p reject 1-65535 +r hamburgo cSsKrbG3jVQBF8BViqK7Iq6gP7I htEcJG6m4Baw7pKbKSnzNJ5kQBc 2020-04-20 00:20:12 95.116.154.78 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28 +p reject 1-65535 +r snap277 cTB2IFio0sPTic/8EZhfJK3LwOU s5UxPCZC2wH4cHVtjRfLG4075yc 2020-04-20 06:11:32 90.41.238.233 43807 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8 +p reject 1-65535 +r Goetze cTUultitIi4Dr0BMoO1qKsBW99g SpeZbMnGgaTyfQUagxBywZw4JrY 2020-04-20 02:21:17 136.243.247.88 443 80 +a [2a01:4f8:211:115a::188:2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35100 +p reject 1-65535 +r vps603203 cUGLailM3EjpqdsNqZ4Xi1Wv90o oM+T2YhbHSyCqENI5kMXSxLxYbw 2020-04-19 21:52:11 51.75.125.241 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=990 +p reject 1-65535 +r mullbinde9 cUQlQY7u36zIbYdUSyZYkumPoys lbH2W2hS8prIEk/Ifu9AaWZkNe8 2020-04-19 18:54:10 109.238.11.114 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3770 +p reject 1-65535 +r AnonKorea01 cUXjJHzeF5f95aGgR2zYoAAAg10 OKeiv55EEvbyliURK02UwGITZ5M 2020-04-20 08:06:37 52.231.11.34 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=186 +p reject 1-65535 +r rs cUbLs/+wQcRGOnr2gjhObGMXHqE 8Srde9Q2cHlWT3udcA7XCKM7FNw 2020-04-19 20:33:46 91.90.193.8 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=979 +p reject 1-65535 +r hereIsANode cUcktdchWLNqwUcnDVsK6RX8H+k KrU3nGQC8OQ4jUw8qN+BOqlIs08 2020-04-19 23:16:31 75.164.208.199 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3500 +p reject 1-65535 +r Fission05 cVOdGRHsuCYGmk0VZ3GsT59GMqc JgxtWsnykjywy1qlMb0V097CbU8 2020-04-20 09:25:22 37.59.76.252 443 80 +a [2001:470:c91a::4]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33400 +p reject 1-65535 +r maltimore cVjR4Nn5D3mZrLOwc9p2LJssMnU KEAhEWlTykZIF/0R3C46IRLhjXM 2020-04-20 04:19:58 207.180.224.17 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16200 +p accept 6660-6667 +r Air7jyl cW7pKi6T7WkRPY+B6YUwupow3DE nJ3rKFobQeW2zGA0epYv2MJqE5E 2020-04-20 08:27:20 95.154.24.73 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r niftyentry79 cXMPG+tTcsmm/zZwT/GmpIrueBM h2Te4PWyK+FHJE/HZkT1gulnMWg 2020-04-20 10:51:25 185.220.101.219 10079 20079 +a [2a0b:f4c2:2::219]:10079 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r Apollo cYQPRcJHg0e4cjIQZvmAXRobef0 k62Gf9wkUETuVZjiQILoZb2gN8g 2020-04-19 21:38:23 162.213.3.221 443 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4760 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1863,2082-2083,2086-2087,2095-2096,2102-2104,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r FalkensteinTor03 cYW2njJn5x0OTL4wIJZ3IF3qXmc VfgNnm8i+ZOwdhCCCKDcX6N39L4 2020-04-19 19:22:18 144.76.236.14 9001 0 +a [2a01:4f8:201:120d::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=50000 +p reject 1-65535 +r Mahesha cYl9QRZnf0hb523i5e6SURb9d2w 7QtvDesmfQAABv8QC1behfxHjIs 2020-04-20 01:11:45 51.158.152.30 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17700 +p reject 1-65535 +r F3Netze cZ/Q+jJ/PMvNoNTqdMFeoRAziUI +4IgwHxM6AocBAe2+OC+wfVcCvM 2020-04-20 01:30:52 185.220.100.252 9000 9001 +a [2a0b:f4c0:16c:4::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=97000 +p reject 25 +r niftycottontail catHJtgw+ud210rveQzwTY4BUbQ BhS6oQBEnbY+IiAayUH+W7uW3LA 2020-04-19 22:15:29 185.220.101.138 1138 2138 +a [2a0b:f4c2:1::138]:1138 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=54000 +p reject 22,25 +r NeelTorExitC cax8Vp6yyVa91bPU7Moeyhvqaao q90w6YeyBlHD34yZuZt6VE6eAp4 2020-04-19 22:36:27 51.89.226.199 143 110 +a [2001:41d0:801:1000::db2]:143 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p accept 53,80,443,8080 +r Unnamed cbXwsyUl16ZQlD0JaIkMFtcsMIc L0rOywOy4GcyHkc0uWAFt3GBBUM 2020-04-20 04:53:25 116.203.104.192 443 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15 +p reject 1-65535 +r DailyStormerSupport ccWMTu6pV2dAB/VsbK8Mu6H2tT0 2BYxaOt8fiv0QmrgyA6Zb1W/YXk 2020-04-19 23:26:05 14.99.38.109 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1630 +p accept 22,80,443,6660-6667 +r merula ccfSrFwDRq43V/482zg2l2uF6Ww +7CuQhTPce+PlIYZHiXIdoj9cYs 2020-04-20 09:56:01 187.247.234.93 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r Unnamed cckkp3L2lFH+l/5akCXe3e89tmQ J5nkfwgBAc8MEEgj49yaKvGrbUI 2020-04-20 10:51:57 24.49.67.120 9001 9030 +a [2001:470:8a85::42]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3520 +p reject 1-65535 +r nodebyCyper ccoKjDQ1v0jR+5ZCQO/AeWNtvl0 7NioxtLW5fcPSPh8PV9L0lq9irY 2020-04-20 05:18:05 78.46.162.123 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13 +p reject 1-65535 +r niftypedetidae cc/etNngDMw+MexOiinhCbvB+zY YcqmCynrwv2fPnpxIkV8F6LEwRU 2020-04-19 20:27:43 185.220.101.14 10014 20014 +a [2a0b:f4c2::14]:10014 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47800 +p reject 22,25 +r nionyn cdFbSn3Z+3Cw4UOffTULj6zPwwY XCDXwe6ia3atwOsCoGyvlVe+XC4 2020-04-20 10:33:40 95.216.192.22 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r FreeHK cdMJXBzegsS9ohsaTmN9Zuwd0zw kadDE4ipZmhPlZuKVU4Qf3rEWPg 2020-04-20 09:43:57 73.193.43.25 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=270 +p reject 1-65535 +r formica1 cdQWPTY+g60E8v9SWU0knitbpLI BknncX/UG67rRqRV37q80Gc3K8Y 2020-04-19 21:23:04 147.139.139.154 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=282 +p reject 1-65535 +r ULayerEllsberg cd+BdNgJ2GJEW/y4n1oJgAmZR+w BfyK9kiea0xkcXYCvi+KvdgkHpo 2020-04-20 04:19:11 198.98.60.13 443 80 +a [2605:6400:10:2b1:44b9:6ec1:8ede:4dad]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8800 +p reject 1-65535 +r Unnamed ceNqIpcXXMbV37+HOVB09EKlkU8 JEz1ubyMIY4Zdv+JzVWVCF7uEtY 2020-04-20 02:38:46 52.156.128.64 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3490 +p reject 1-65535 +r Cosworth01 ce/kMUZGxGE4lVCXI7/TVNjqvK8 lmL1T4Gek4ZrlJtYQqVxKgPqZEw 2020-04-20 10:27:22 51.68.140.94 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12200 +p reject 1-65535 +r greenoak4 cfi5WMxfglwV8BsGki0LyyzujhA DG83HRZHHR04n8sqAEBr393ZQoc 2020-04-20 03:46:58 81.217.225.96 443 8080 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2450 +p reject 1-65535 +r Unnamed chxQ2FsTvcZPujy+0AiAIBdIV1E l8R8OlEN0dpBxS/Z0yAHklCKs24 2020-04-20 10:12:01 88.74.144.209 9002 0 +s Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43 +p reject 1-65535 +r desync ch5JSw4GVU2Pmhab2/FygsB7JYg Ell1danOKcbcA0p0CpK4H8v6DxU 2020-04-19 23:35:40 66.230.230.230 443 80 +a [2607:f178:0:3::2]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p reject 25 +r niftyentry103 cia+CbeoEAC799lZ42Cy/kHMxjk myADSXZeYvMaNAdqQSS/FURO+Mc 2020-04-19 20:25:41 185.220.101.103 10103 20103 +a [2a0b:f4c2::103]:10103 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16800 +p reject 1-65535 +r giesskanne cicOtY7evnJ6op5nQXYo286In64 AfKEom1T01DLXO2jZ+iVPotZrzQ 2020-04-20 05:32:48 95.216.146.117 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7740 +p reject 1-65535 +r Unnamed cidU1Y5VHEPR9u8Mojrn/Pz0RB4 LVw+Nw+zGbogeqs87ppo35OV+ok 2020-04-20 11:06:56 49.12.78.122 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=35700 +p reject 1-65535 +r Unnamed cipCOP/VR7mbmb1LlpeG6CKR+WQ o4RRRurCFJauHH6OkaC6OpaJQ1s 2020-04-19 20:08:20 167.114.89.194 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6610 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r BraveTeotihuacan cj4h/W+RkF6E5YPUYZotHigrgYA fRIN2OPoFWQTzPnbS145sAAWgXY 2020-04-20 12:26:15 65.49.20.12 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6400 +p reject 1-65535 +r ToeClipper703 cj6bKd8DV+GbLRyGuGoBZTNb+qk 4TyU+K9dsBn85+h8OQXYhM2r7Y0 2020-04-20 12:09:44 193.22.133.92 9090 9091 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6460 +p reject 1-65535 +r Unnamed ckEaLObrJNjNqGiKazpVzBKQ1EE u0aEbxUhDdGVwjP0NlFPQxFAdU0 2020-04-19 23:59:58 5.146.220.20 9998 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120 +p reject 1-65535 +r besttorrelay ck6G5/XacVUp3A7KoBOuS9xoDkw yyNo+axs5tV5VDRxoO/9POoKln4 2020-04-20 12:31:21 5.9.29.183 9002 4080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=84900 +p reject 1-65535 +r snap277 clEDL5QXwCa8dZVgH4tzd3EnW2Q OK1U0NdnzJ2rPY1SQ8WWKZz3K1I 2020-04-20 10:13:50 86.245.84.124 46569 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5380 +p reject 1-65535 +r w2jul19 clIt0oBnz8nPTz6EyWpXQ8bpmHA NN4ntYHKcuGwJO/jSUB72uKsgmU 2020-04-20 00:24:31 81.170.155.6 33333 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=510 +p reject 1-65535 +r Segezhye clOXEYtERbZM+o6lB8/j3oEAW0Q t4VW2+rQfxvBTK+upcMJLCfR1U0 2020-04-20 01:29:49 157.245.86.215 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=1970 +p reject 1-65535 +r ANormalDay clvbOHUquGzJ8gSsmFfCkwa74tY 49rASnN5UTKNAqVf6gKw1auq4fE 2020-04-20 08:20:20 81.90.180.161 443 80 +a [2a00:ab00:1103:7::9]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1770 +p reject 1-65535 +r Unnamed clzlZuBjEqXgkddx6Z8mH43E0OY WYOVCPyjl/9/BrA/jzJynY6RhOM 2020-04-20 09:37:08 13.88.182.24 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4300 +p reject 1-65535 +r SkynetRenegade cmK50u3gtqJmxLQ9YgIgm/a7qIg NOkWsBoW53vfBRlizuuexa5f9eI 2020-04-20 05:29:58 78.156.110.135 9092 9093 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r torexitrendrag cmV7lr+Zso+9nysDalkKqKRTVCI XavvgbhjdPu4yCXvuOhJ4vLO430 2020-04-20 05:03:18 221.121.153.184 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=192 +p reject 1-65535 +r snap277 cmddOoepwQ+tMRO7gY8E7f0fAeU 3KfCGX6xdTZHA0i6kYQxlq/BLQA 2020-04-20 09:23:16 5.252.173.253 42073 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2620 +p reject 1-65535 +r xXxOnionKittenxXx cnL6J6f5nojVm+IBjj8U+4i/l4Y z9q10/2Frn6NEhrzI7NLWKzma8c 2020-04-20 03:06:31 46.38.255.165 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p reject 1-65535 +r chieftain cnSaU46ayhMRSzjS5t3Gr94YWbU o8nO2d+f87/0h4m3ZfI22CiW5do 2020-04-20 00:49:48 54.80.24.96 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=64 +p reject 1-65535 +r Unnamed cnqgxjD19Ui7SPNgafIXlJZoKHU U5exKEiiicbb4FBRJogx0v8j+bY 2020-04-20 04:42:40 51.75.144.43 443 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=134000 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r semechki cpLvWHQsx5P3qzhG2HABF4Mo+aI WJM1EHNWC4mQlmOIaJNO032aWmI 2020-04-20 06:39:19 193.218.118.140 9001 9030 +a [2a0f:e586:f:1e00::3]:9001 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4350 +p accept 1-65535 +r Unnamed cprWWVnlmz1tcWDWW2tm27zkChk fuEjMRciFqBhaR7Q2TcrC2HO++Q 2020-04-20 09:55:34 104.211.166.22 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=511 +p reject 1-65535 +r zai3Pheevoa4oiWooz1 cp2qCfHiJduq8vQvPIL9O7561d4 36DHdRZ4j+mSRZi9VHAO5p8XwRQ 2020-04-20 06:57:07 93.184.27.3 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4570 +p reject 1-65535 +r Zimmer42019 cqG1HZn6mYweyvNvWCJ/TfMI+DU NDzy0EZDKaclmzKoUcaqDbc2Fps 2020-04-20 03:25:02 178.17.174.229 9001 80 +a [2a00:1dc0:caff:159::4d79]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4010 +p reject 22,25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r Byte01 cqiLo6RbYH5HXO6BzpctSED04HU 0rp4+vzXRkbFYhFRpVnmF/gEpPI 2020-04-20 01:35:29 167.86.114.102 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19500 +p reject 1-65535 +r Unnamed cq6bgG4QiT9tadspoCGDpc9z/0k CW8BRvtGKuTlgIsZXqt1IU09ab8 2020-04-20 11:12:23 51.254.87.75 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23700 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r xoFelix cq7JitLczhUQbwfzXRsNAqFTBSE H0G0oyevXALOkVte6ZwPo9ca034 2020-04-20 03:21:00 2.200.23.141 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2900 +p reject 1-65535 +r TykRelay01 crKxKj9gQIvbyYxt9TmI06Cz8O4 rchAWsMBZaY5RNv3pV/QNQqWUqw 2020-04-20 08:37:19 85.235.250.88 443 80 +a [2a01:3a0:1:1900:85:235:250:88]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36000 +p reject 1-65535 +r katharina cs9USSyi9X8SuEk5Rsm/kTLrCro VDzj/RHcihkz5zrRFdcmAyv0tiI 2020-04-20 03:58:23 45.125.65.45 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3560 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,5222-5223,5228,5900,6660-6669,6679,6697,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r guisseppi cvhfFQd3Zl4UWWO4hfxPTKZDS14 NmjMG83XwzZDCPvSTXxZc1C4too 2020-04-20 05:39:11 91.228.53.86 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=940 +p reject 1-65535 +r Ozigbo cwENnFozDH0+ZQV+iLhxxNXSM9U kZXhRP+n6ESZs3LhdMgokZaFuUY 2020-04-20 03:18:26 202.165.228.161 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=309 +p accept 53,79-81,88,443,464,531,543-544,554,563,706,749,853,902-904,981,991-992,994,1194,2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,5900,6660-6669,6679,6697,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999 +r ilikepoop cyAAGIMLhtMYLtBbRK11vanOU7E fO3iPVkMD5uDfU3/hU9cpAlyHO8 2020-04-20 02:16:03 81.34.17.240 9001 9003 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7 +p reject 1-65535 +r F3Netze cyeHauecmX3+MRp7FbT6h1c2u9E K9+pxsVz6hs66nj78pEsN7s8qtE 2020-04-20 06:33:52 185.220.100.255 9100 9101 +a [2a0b:f4c0:16c:1::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=102000 +p reject 25 +r angeltest29 cyg8TevAHT5KX9G7HytQ2Sc3n1k VuEY/lAVhQbsfNFJ857yk15HF3c 2020-04-19 19:26:10 87.106.152.102 443 9030 +a [2001:8d8:1801:8086::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2400 +p reject 1-65535 +r MoldEraTor czKgawDWr1SqgE8DxiTfu8nmYXI sw2DONAp/OBVt+EBh5pgbK6MiBs 2020-04-20 02:15:39 178.17.173.26 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4250 +p reject 1-65535 +r torlesnet1 c07dwsBLHAGEF4Fnq9I66FQTIS8 0ysdj2XhW3j+TrGh9BdLPETo1OM 2020-04-20 10:23:53 199.87.154.255 9001 9030 +a [2605:e200:d111:1:225:90ff:fe24:3f9e]:9002 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.10 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=4600 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r hacktheplanet c1WkogukwIPJIUZDAhCMEhusfvI vydH+cvCMjHlYo0Wr5cGNztwjGY 2020-04-20 00:00:00 116.203.61.45 9001 0 +s Fast Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=55300 +p reject 1-65535 +r marisa c1Z4qNPeIwXXvEVX5MzPu2hvYzk 3SqJTlbQsUQwkKVQLFtQkhYrB5c 2020-04-20 03:10:50 188.134.71.147 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11900 +p reject 1-65535 +r beneficentsoot c3E1GOi9cRDQxthPBoLB4LdUH3k manQvIRsmfL6RoVv5rSQK+czr2c 2020-04-19 22:59:07 116.203.149.9 9001 0 +a [2a01:4f8:c2c:3a88::1]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p reject 1-65535 +r 9eec30762e3e c3aJJaW1YdfcvoOtGjMqBJDScyc EpqdezDdLs78bBfOehuT2ytaDUI 2020-04-20 08:50:56 51.81.254.16 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11100 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r king c4MNE1j4EuHtSWZ01q4H8rdgdhY 4pWspG3ngSFl/6nSXUXJXfi3f4g 2020-04-20 05:29:32 51.89.213.80 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r terratorserver c5E1YlIVR7pZ7re5yKlQaSlI09U Di4g2lyPmZ2WrwQ10FAbX5Q3Dtg 2020-04-20 11:17:37 78.43.12.83 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1430 +p reject 1-65535 +r Freebird33 c6WoFoi9U2v7q+GGMPW9YwbJrI4 88m5kGPnouu2ifP74B2IzRrPPY0 2020-04-20 02:13:39 5.44.101.190 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p reject 1-65535 +r torcow c6YrWQzE8pDQaPogoS1kCKDYtgw sq2hKc+w/H4GsXQLr1qXoOlQqdk 2020-04-20 02:06:15 174.89.81.140 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21600 +p reject 1-65535 +r Babaorum c7HT7fC9a6Y4IM78T9fZ/vrVE9c R8cl1NRSOruPthZSpQnX34pD6cQ 2020-04-20 04:03:33 92.137.3.58 9001 880 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r icytorr c8W0gHezet+L/d2sAB5xfpyNl8M dBvNJOHPe3eq8nNeRbh8tzTwM10 2020-04-19 19:35:34 185.112.146.80 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37 +p reject 1-65535 +r ehtejab c8xlIZiJRDwG4GoLbUJ7H+HDc3k dNjqs/i7xokYvbl3wqG7uO3zcNE 2020-04-20 02:03:05 193.42.156.106 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6980 +p reject 1-65535 +r notem2 c9ylZCSRL2nxR41mMN8nz+j0FDk oiC9ymzKT3blE3ZIeDoXt7mZagw 2020-04-20 01:00:26 129.21.187.10 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20200 +p reject 1-65535 +r negatoraligator c+Dq18Kp6WA8DbfuR0PM75NerD0 HcMnGpK+dwUDXq+ZI0IcZGVQoEk 2020-04-20 07:11:47 81.7.11.253 443 80 +a [2a02:180:2:4e::c0de:f001]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1800 +p reject 1-65535 +r Torild c+IEah5/DpXTbD+XnOX6w2CaxhA p29XL7J/HRBI7njaXb1uEx5VKzs 2020-04-20 01:55:31 207.180.198.88 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p accept 8332-8333,30303 +r n4lksask972137tor c+ilWxWP51Cq9xG0AtNwLj/Dle4 wscneacVW+ze9KwLK+kMiUbYO3I 2020-04-19 19:41:48 62.168.3.212 9999 9998 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=440 +p reject 1-65535 +r pkswitchtorronto c/a/ReFMcsR7iz01aPb/GVuWehU NaPeQNySCEeq55hNGUYuNb/8l9U 2020-04-20 04:01:11 159.203.27.5 2568 1403 +a [2604:a880:cad:d0::4f:4009]:5201 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2 +p reject 1-65535 +r kraksrvr c/gReKwp+00p8tEUuHe++VwGcrw SpDtdLStRiPrCg6NaQNcIIbAB+M 2020-04-20 07:03:24 172.73.49.125 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=500 +p reject 1-65535 +r bbtrotro c/ie8u4PXFQGSsUr6cERNJzZ6MQ 8bXqg26sFe6esJe2d9PUr1B7ivY 2020-04-20 03:02:32 62.210.251.97 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=23300 +p reject 1-65535 +r ididnteditheconfig c/wLIi+Eh/Xv/jl7Jq85UP07nto KrLD8I+XJerSZIxr8Alf8tfIebA 2020-04-19 21:26:31 31.146.31.130 443 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24 +p reject 1-65535 +r niftyguard21 dATcTmsX1bdRvzQ+UJ9tS5QPwQQ Zhg9Vh0Cv0ZUklci5Rj27GDKrAg 2020-04-20 12:47:06 185.220.101.230 1230 2230 +a [2a0b:f4c2:2::230]:1230 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20200 +p accept 80,443 +r kbeb6vqsa93r dAbZZyL7/h2bGrQyu71wXYHKdzg F9wPFFhS9LCCOADOTO5EbSeirT8 2020-04-19 18:57:08 80.143.25.240 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=836 +p reject 1-65535 +r Unnamed dA5MSELkwZDf7CeOwf11T9JhqGQ xF+QtmSAy9d+zTMg9GSI9bUFuA0 2020-04-20 02:18:42 46.9.195.72 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3700 +p reject 1-65535 +r effiorgoulu dCCRSG0Ec0xX2XvO+1PSLtC3eIE L+GJ0XkVmS8O2pG/M3czgfB67u4 2020-04-20 01:46:24 185.67.82.114 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23200 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r handsomecurtain dCJItUkgmVSkS2eZpGHl8jkJqU8 CsUwO4AFFXvAP8PTdQGk5y3o/o0 2020-04-20 10:11:44 45.76.5.24 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=2960 +p reject 1-65535 +r TorExitMoldova2 dCxF8tkASq3gB35SikQYpqgbwro ACUrEgzmw+xnh3Qzn+PPZ9frDT4 2020-04-20 01:08:25 178.17.170.23 9001 9030 +a [2a00:1dc0:caff:7d::8254]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6540 +p reject 22,25,135-139,445,465,563,587,1214,4661-4666,6346-6429,6699,6881-6999 +r hviv126 dDD2axyry1LVg8nDA17hmj6Hoj4 BOcjTSWmc171tkoDYa/0UVG5GAU 2020-04-20 10:40:38 192.42.116.26 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r g00dplain dDEu9XbeHncQ1UIHkea9tBgIQ54 C44E+FGt/RRleet1VHDVeb/XTqs 2020-04-20 06:02:26 37.187.113.218 9001 9030 +a [2001:41d0:a:66da::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11100 +p reject 1-65535 +r CharlottenburgerTOR dEvuvgYDtmlDHiW6bNKFMcU3Ph4 PWlCkPIiWQAlWCivnvq726a7M3U 2020-04-20 01:26:28 85.212.112.87 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=472 +p reject 1-65535 +r shalazarthewizard dFBI9RqDT6kVL2ICFZPyzWLDGro gNlwXsG4pg0RKv6T2S/CjYkWQhk 2020-04-20 01:12:00 23.239.22.248 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=530 +p reject 25,119,135-139,445,465,587,1214,4661-4666,6346-6429,6699,6881-6999 +r Unnamed dFLn0ZrNLDneEMAgcDLmvAXbePI fYbwMPQ6oJXVQiUnc514GORxOKQ 2020-04-20 06:48:13 46.29.248.238 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7100 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r theia5 dFNpMydJAhxvrxANMnvDvx30cHs WnBy7SRNi1GZwoh/UG2z8e4AY/c 2020-04-19 22:57:55 50.7.74.173 9001 9030 +a [2001:49f0:d002:2::55]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4600 +p reject 1-65535 +r pizzapie dGs8S63MoJAD3Qka8ChWCmHgpI4 XshfT77LfiYU+6cLhXEUMs1TSO4 2020-04-20 10:15:01 185.244.148.237 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r DIEPARTEIistsehrgut dIdqSWLhtFAWrVn1lHD4zSrRXXM 7adtP3hXbgGMD63Cs1EsyxIFcVo 2020-04-20 05:12:26 79.237.161.212 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=604 +p reject 1-65535 +r niftyguard28 dI6tDR4D/g+vWKgMde8v2f0Lj5w kw2ZRrmWwoKrrS+CL+txyvaisqU 2020-04-20 12:46:22 185.220.101.237 1237 2237 +a [2a0b:f4c2:2::237]:1237 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10700 +p reject 1-65535 +r s2chrgrde dJTLa1yCcluvtsEITcChvnZZG1E 6EizLxVW+yJFQHnQlNHVqhr9S64 2020-04-19 20:39:55 173.212.192.162 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6980 +p reject 1-65535 +r avksenyovsk dJnBIfTp4PATVxvTNMdvCrY2G4c V9XpRp370fi2LNj32CF0vSOjUC0 2020-04-20 04:32:46 45.32.29.195 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=137 +p reject 1-65535 +r ExitNinja dJ70pDTf0A2rMek96GIz+5FtMeM o8r62n9jxXpivp9y/3NtO4WGY+8 2020-04-19 20:25:05 46.165.245.154 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=134000 +p reject 22,25,109-110,119,143,465,563,587,2710,6881-6889,6969-6970,55000 +r Unnamed dKGdht32PxEztBS4Hzbh9EZAgR8 NVXqpZimByIaNpwmBx3K275SK4M 2020-04-20 12:06:58 62.210.105.116 443 80 +a [2001:bc8:3c96:200::74]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31100 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Crows dKVeEvap/RcWWjVsAEB/TSBug2g H5nudllLDZoNUPEjp3N7faxGsB4 2020-04-19 21:17:42 178.62.86.206 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22700 +p reject 1-65535 +r longclaw dKkQZGvO77zS6HT8HcmXQw+WgUU DK2nJFSa7urQ8NPsUXvuSBk/TQg 2020-04-19 20:51:37 199.58.81.140 443 80 +s Authority Running Stable V2Dir Valid +v Tor 0.4.2.6-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r collapse dKmThbbslgNAnKhM2j2B0ksFTA0 bduyhO7L8eYZJOhlOKaOLDEPyIM 2020-04-20 10:53:56 188.138.72.10 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5800 +p reject 1-65535 +r NineX dKwQypTkALpNaeOXViWXygT8U1I /bn75V/54Ee9HGXEoBAWi/VA/mg 2020-04-20 09:40:43 185.233.25.162 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r godse dLQd7VBc+rx6jUOTYvybZYneRZE wYk96ePQh3DbEdQlAzHngVJWBqY 2020-04-20 02:58:52 91.132.60.9 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20700 +p reject 1-65535 +r tiflin dLiyKvlQsL4R2KIo+wnS9Seft1c hO6bv/AZX+3ZWtP1MSeXnBvQZQE 2020-04-20 03:57:38 163.172.21.117 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=52100 +p reject 1-65535 +r sabotage dMDCcF2xGSwD8Z980bsjSEOxqB8 ArQvegqSw4dklo4ek0aeFj9OVhY 2020-04-19 21:33:23 45.66.35.35 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9280 +p accept 80,443 +r czrpYOL8Pp dMoW9Gh6jWGbCBbFIbBeTz82URM SGflobjkSDRNlV8kyRBsDs9i0X0 2020-04-19 22:44:40 78.43.152.56 9001 0 +a [2a02:8071:41a2:b300:e77a:2cd3:9de9:5d4e]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=61 +p reject 1-65535 +r NimbusReaper dM1OpqunWxptfCIthWeqtgpumUw Fle/TgUxi9JmDwKdyy31pEsad6w 2020-04-19 21:47:55 139.162.96.82 9001 9030 +a [2400:8902:e002:200::c0f:c0f]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=370 +p reject 1-65535 +r Sifon dPIylnTyfLgWmjKkHZcWKWI7dTU 9R2VFTb0GfANupkFbois4odnywA 2020-04-20 06:35:46 95.27.246.252 1485 1490 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1120 +p reject 1-65535 +r SebnemKorurFincanci dPt3fyXn+Aumv4uAjfhzoXCIIac n7wPghgi34H/VcYwM/43yH4ytB4 2020-04-20 08:25:26 144.217.60.211 444 81 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6920 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 dQkTRsB3/jRSKw8IScgRRWu3o3U lGqRM3VsYjZ90BFZ/KYzS52N16A 2020-04-20 12:00:04 109.242.200.47 35491 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r Basalt dQmvh6DI1qt/ewP9TmUG9VlRob4 1DfYWnlSFg9Y/QJH7sixYZh6dAM 2020-04-19 21:31:40 185.166.220.41 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56 +p reject 1-65535 +r GoingNowhere dRV90LmtL2kOraY6dMX+DK9eD+g vMNkEwgNPQHZFGz8ZdUEnyUjj8E 2020-04-20 08:23:32 69.164.210.142 9001 0 +s Running Stable Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=41 +p reject 1-65535 +r Unnamed dSWOdVBkqiQSvGuriFdWoyAfjHM g1lt5YqDZZ6VuqApQpRYVSAcQc0 2020-04-20 07:41:43 108.161.133.189 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=653 +p reject 1-65535 +r snap277 dTLhhR3izamXINpGUV5TPSoYTG8 H2rObYw+nnKw84t+FDdjZNKQQhE 2020-04-20 03:10:20 92.9.151.237 33707 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r FissionMasq04 dTOr2pAn9Az4f7YYmuux9DoTKgs CMfQJrXECdH3JMYBaKi8P1+wDeA 2020-04-20 05:27:01 193.32.126.160 10750 20753 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14100 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r benefactor dUy5kRfm7VcN/Pt9nxJnS5ek4o4 NslyaohKh4bFr4WxUpKbZoHQB8E 2020-04-19 20:56:03 90.94.83.26 3690 8888 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22900 +p accept 23,43,53,79,88,110,123,143,220,389,543-544,636,749,873,992-995,1194,3690,5900,8332-8333,9418,11371,12350,23456,33033 +r nodeXY dVnUvOiF80lPd8DzoN0/Jfaw6qU wN7F9+f09HslRRs9iSy393ZRZzY 2020-04-20 08:39:53 213.202.232.19 8550 8050 +a [2001:4ba0:ffa6:12f:213:202:232:19]:8555 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19500 +p reject 1-65535 +r spookybird dWw0u9x3FqX+g4UH2LX9HPJPMDs TGxCZVo0AYemESRhxiQbAVRe3jg 2020-04-20 00:00:00 167.172.237.203 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=960 +p reject 1-65535 +r snap277 dXGzuNo/tzDw3IyJfD5+vL6LsbU Dh4XGJwheLZKD4GaFzV5WD/EGh0 2020-04-20 07:06:41 92.247.119.34 44881 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4880 +p reject 1-65535 +r smurfix dXSXW6dt4HJiMfyRbdcLCbOCTOU uz9lJiIlINeXbPBgdDdOUTIrJfU 2020-04-20 04:06:34 213.95.149.22 9001 0 +a [2001:780:107:b::85]:9001 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=868 +p reject 22,25,119,135-139,194,445,465,563,587,994,1214,4661-4666,6346-6429,6657,6660-6670,6697,6699,6881-7005,7070,8000-8004,9000-9001,9998-9999 +r w000000h000002 dXePguBlcxiUKdVT69i9PO2Al8Y ADIMwnuwsZjaXs8J356nxgA++aw 2020-04-19 20:14:14 38.68.37.77 443 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1250 +p reject 22,25,119,135-139,445,563,1214,4661-4666,6346-6429,6660-6669,6699,6881-7000,49002-60632 +r TORxyz dXhN0ry3DOE87JPP4kzWnGbixns u24eCN2vvpTZe41wHLj5HizUNf4 2020-04-20 10:48:10 198.245.50.175 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11100 +p reject 1-65535 +r chickenlegs dYFJ3PVYoeMUGbd4kLZbok8QTNw WR1oqaEZ5tNNGLFiwV+DxJv4c1A 2020-04-20 06:31:14 106.51.33.217 9099 9100 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=269 +p reject 1-65535 +r losangetor dYJwuQMV/NCkHgWVBN0PGHfISNY QtYjW1hgubGUdSBKZ5KzhSFHbmo 2020-04-20 10:13:09 82.65.29.121 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r gapcoinclub1 dYQxnQ4Z2uhWISI+KiL5ISPquBU E53Ulfv4raSqY+rEWa3t7djan+c 2020-04-20 09:34:11 172.104.85.43 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=366 +p reject 1-65535 +r TorHammerTut dYcjMUCTgYPmpFFMYKXhOgvtbDs 6LspLuJA4jixAnjt78EhcNO+Jgc 2020-04-20 10:08:44 173.208.179.155 9002 0 +a [2604:4300:a:258::2001]:9003 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9100 +p reject 1-65535 +r StrictlyUselessPi dYeaYH22Ya4u6OJw+8vKZq33TnM eAEjWydI3/1J40DNckdCXvl53mI 2020-04-20 02:06:03 92.249.143.119 9005 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5 +p reject 1-65535 +r Unnamed dZfTlUCXlrql1tzDBameyz+PIvc fo4h6QMc0wj5R7xK+mf3zY0x+oY 2020-04-19 20:32:04 20.36.45.94 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=317 +p reject 1-65535 +r PNTURelay daQpXt1S3YoKN+o0VB8vTEgCpNc t7SQDL8RiFC5FlKCUxpPA52SWWU 2020-04-20 08:22:56 139.59.213.101 9001 9030 +s Exit Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8 +p reject 25,119,135-139,445,1214,4661-4666,6346-6429,6699,6881-6999 +r wsod42 daZB/PW2Rs2EkK3SkZUYkbYvpXg 6LtCSoaTiT4tE8nHoCuQdld6gjU 2020-04-19 21:18:27 185.95.29.165 8443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3230 +p reject 1-65535 +r Tiberius dakxQERTAwghxUek+qkJSgbEjHo 8xt4C049hKmhybECv2OnzquduG4 2020-04-19 19:18:33 46.101.183.160 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=23500 +p reject 1-65535 +r snap277 db9VOXRQOGF1e2zWyYHuRF+GLn0 BKzSzb91eq5gvF/TSvEx9xGXu7M 2020-04-19 21:28:07 203.221.85.204 43241 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=54 +p reject 1-65535 +r hrck dc8PZv4YwxFqq3tniJkVHbdit5U cGhEpdoL5HB8kalXrd9c0hzBr4g 2020-04-19 22:48:06 138.197.150.159 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=535 +p reject 1-65535 +r deceptiveSimplicity de40MM73dE6h41YHiBsnWB6xWIA FdGM8/AeAQemIQ8dSzHlnf36qUc 2020-04-20 04:48:56 217.237.112.149 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8900 +p reject 1-65535 +r NervousEnergy dfuaRGkZnyUVgQYTkSFKz9xoLvQ Bmj5r9XNGRPC4S3G0S56SE5ve1c 2020-04-20 10:18:31 51.15.249.137 9030 9010 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13800 +p reject 1-65535 +r ES12 dfz6EiW1tLNeJdpTyLp1RUY7Z54 hDNIwauVMqLcG7VYJ4NNM+I1JGI 2020-04-20 03:08:21 134.101.177.101 9920 9921 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2100 +p reject 1-65535 +r herukkahillo df2xsDFk7O0rN86Lkl6nYpwc2sM rub9r1va3uw20S0JKI2y7NpRhOg 2020-04-20 01:07:55 84.251.163.151 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=850 +p reject 1-65535 +r ipunchsharks df5SNuZ/+kpEwRUsNeqzY2Dk198 9biL3Hz+r5Z0qlMMVAOOYcZmK/M 2020-04-19 18:53:38 89.239.212.124 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34000 +p reject 1-65535 +r Ichotolot62 dgBoAkmiIIDsxhc/u/ZNb88zCmE 0KCB0Ec1PmkRLqxRD6Po+Ypqkuk 2020-04-20 11:45:39 81.7.14.31 443 9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3360 +p reject 1-65535 +r blademaw dgCJnlT6KKq7F2RUjtKM3slmc7E PquNPfbjgWio1jDiRHDaTzG6ZA8 2020-04-20 06:17:00 188.214.128.181 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29800 +p accept 1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223 +r BadUncleSam dgDkaAVcWSAtTlw9ysp64NydSc0 jIFTbC4HGVGz32BYMtAXbcJA6AA 2020-04-20 11:38:00 192.99.183.59 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7350 +p reject 1-65535 +r turing dhHaw8WaQzItd0QA9X/aTSrA7uI JAv3VZq7ekCiJhWIs4EihP+d6T8 2020-04-19 22:12:26 88.198.12.66 993 995 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=59 +p reject 1-65535 +r Nicenstein dhTvMmY12oEGOOL11EnRCuK7cVg 3Lct112bsBdi1+qksXZuayij6I4 2020-04-20 08:01:58 62.171.144.155 443 80 +a [2a02:c207:3004:8874::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r tortestyoda dhnWSebZHSEv9HifQotaSd2qyb4 GdazRjzZ7oeMIpvrbl/1Yag1t0c 2020-04-20 01:33:14 185.26.156.86 49201 0 +s Running Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45 +p reject 1-65535 +r WorldCLTrustDDNPPE dh1DI7az1llYLkTIg+0XdryFzvk RNV9qKRn2F7rkqtVgy3mDLZAb7I 2020-04-20 03:01:24 94.237.76.207 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2040 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r Unnamed diTF+vgTitsfiiBYgkV79ZBAvug 6pfOZCAQQ3nIW/0D1gFHOcWesMo 2020-04-20 10:26:07 107.189.11.219 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22300 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Panier2 diZ0pwI8LCBqjbsGftsnhtw6IfU WjnnsHCMdJuyPatSXSUXMFJp9CU 2020-04-19 23:35:22 35.178.59.186 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=104 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r RESIST di7Bz+/C++mszlv4fF6Wo1G9em8 aj6r0MVSFfq9msRO1anKXXC9R7A 2020-04-20 02:22:26 95.154.24.156 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r FictionEndevour djmHfhPouk6o/COjgkuaArw+1OA WH921CnbJYgG0o2yPxuiNYWyozQ 2020-04-20 09:58:20 47.254.134.8 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2260 +p reject 1-65535 +r fenchel djt9Z6ay0Zs+nqV9H73EjzuFtVk kpvPha8AMeCvrFEdAJ5EX258kfc 2020-04-20 00:16:41 109.70.100.12 443 80 +a [2a03:e600:100::c]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=84200 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r Quintex45 dkv4oDho+EyPMjwaZ2qiVLgNw78 XINF+H7QudOEODOJSVDGh4Wvcak 2020-04-20 06:50:03 199.249.230.68 443 80 +a [2620:7:6001::ffff:c759:e644]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14500 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r TORfrance dlQ3SVEM0Ayxbh3UlAyqj6xyf1g cb6dwZLAns3T7m8YL8DUvoaeLfM 2020-04-20 10:13:47 94.23.29.204 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p reject 1-65535 +r DevelopeKR dl+PZG6u2vwUqnuSJ3FZXOWsuGA +/UEGOOaJXNz6hFks5VTz6aCGcA 2020-04-20 09:18:23 108.61.223.153 443 0 +a [2001:19f0:7001:5284:5400:2ff:fe96:34b]:9001 +s Fast Running Stable Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1060 +p reject 1-65535 +r tatsuya dmElqHmsYuNYZHNtCad8sJF/hvk JQiAi+b5ODvsya3YLRfvE9i6jB0 2020-04-20 06:39:30 37.110.66.21 9001 9002 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23 +p reject 1-65535 +r lamomiesinistre dnTDg/f1UeBl4+lbvPwGcVdUahc FecWLfUykhHVdsduW6CDgQCpWpQ 2020-04-19 22:17:30 62.210.99.162 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=61100 +p reject 1-65535 +r Unnamed dnm1fCFnx99y1ziaJN+IqXcp/CQ W1aGINf2otkix09FcZPNP0n1ET4 2020-04-20 12:14:19 209.126.76.249 443 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=52 +p reject 1-65535 +r qtornado dn5ETh+h2nXzt3R521ri+j//dcw fAkb92toIzLa1OUbb1gvTFyVJ/U 2020-04-19 19:49:04 95.216.35.84 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29000 +p reject 1-65535 +r eludemailrelay dotIiuLGG2+oN+OrjbdgHhoLhJI KV9oT6hOklsjREIgMArdcNonFlo 2020-04-20 05:41:48 109.236.86.109 110 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19000 +p reject 1-65535 +r TorDotTeitelNet dpWZAThujJCPUCNdmJQAeIa2fC4 kXiQ1oRHZvYMtTayjCAW7aKWtAE 2020-04-20 09:42:02 198.50.158.140 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6200 +p accept 20-21,43,53,80-81,88,110,143,194,220,443,531,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,6660-6669,6679,6697,9333,9418,11371,30303,50002,64738 +r sosa dpopcBe7XpKppaPXZyXKEtaUqjA JxmUwRR+XIEy61uXF/+YBtJQ2+A 2020-04-19 19:30:30 179.43.156.214 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24000 +p reject 1-65535 +r snap277 dqVle9LQB2yH5D23xdHmAn1aok8 iyFwVn5iXYHoD1+PjWEBEKEefAI 2020-04-19 18:49:36 185.7.93.26 39965 0 +s Running StaleDesc V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18 +p reject 1-65535 +r niftylolth dqtQw+wEcqY6+5qDOlNfpr1pFHg y+c4LR1XZcr1quSt86oUi4x2w0w 2020-04-20 08:51:48 185.220.100.251 9100 9101 +a [2a0b:f4c0:16c:8::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=58200 +p reject 25 +r vladimir drT+3QaW2SSkB8+rULbldLKMzco SHmbNJ9NgW4d2lBf73WdevEnhic 2020-04-20 00:22:05 158.255.1.112 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3470 +p reject 1-65535 +r loedgreem dro6P02lzf1VMJmi12yx1fPBegA rj4PmSXotAkxH2jxtVN4W1E6IEg 2020-04-20 03:21:56 79.214.234.110 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4680 +p reject 1-65535 +r Unnamed dsDGE7Y9g+hOyHCn9J/V4Mu5yOA pU9RZG+h6hCaQVk5SZcDKwYSs4E 2020-04-20 00:43:34 34.249.24.135 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=946 +p reject 1-65535 +r pinselohrkatze00 dtLrqCu8yj358lSpqDcqEKJvPRQ AaCDThjgNTi7W10bJGW7lTiq/OA 2020-04-19 20:18:11 134.130.172.229 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=52300 +p reject 1-65535 +r MarysSister dtPMGpBnMsi3+Q6bWg/zvkpKUt8 aLPMSBdkdKCtuTuqwDWHaSWs3hk 2020-04-19 23:08:57 185.225.69.59 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13400 +p reject 1-65535 +r xabbu dt0YS8JYIgukZX6IJVly0nuEuhA Uv1RwWwTP9l1aJlBkc7fUa6rp78 2020-04-20 07:19:16 207.180.221.73 9002 9030 +a [2a02:c207:3003:4471:96:97:98:99]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p reject 1-65535 +r snap278 dt/G8sgOcWSFRHji1Ds4w873aCk 6HkpCjF3re5bhWYvC3ZUjhUPFJM 2020-04-20 09:53:42 92.167.236.39 42908 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=123 +p reject 1-65535 +r ECHELON dvNVjLJvQfid7GhbrmZgGLargIs mcGAOma9HlS9LwvyuLfzxex60Fk 2020-04-19 22:42:20 5.254.66.111 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r stalkr dvOoGgeE3PU29t4Z+Y6usfid7M8 wa6QXk4DLRIJkjdDKJyD8lc8Klw 2020-04-19 19:43:42 51.38.54.48 9001 9030 +a [2001:41d0:403:1830:14::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1640 +p reject 1-65535 +r TheCaveRelay dvZpimJN0XYqXKzIMkYOyeijR3Q CgjqhUdQJx8SEMgOEyY+WSOySc0 2020-04-20 02:39:55 70.57.124.3 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3390 +p reject 1-65535 +r cat1435 dvifaG7cWZwUWNXrQvZh0q3xQz0 6F7njvhOsVaW28g96ZepgvW862s 2020-04-19 20:02:02 100.15.249.55 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4860 +p reject 1-65535 +r 2501 dv/fPMFYhzZDlCrqn3olINMIaEI wJG/6uxEHpXj8w1b1S12h4M8JGo 2020-04-20 02:24:19 89.12.56.197 9001 0 +s Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=29 +p reject 1-65535 +r CriticalMass dxMdfi7BypuNc3UCJW2pEDWZzlE /eXE/kf2iHOeXyFvY9ZEu9n0BIw 2020-04-20 04:50:50 77.247.181.166 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=79000 +p reject 25 +r Hydra8 dxbegDClaoAIBEbgy8WXOGBUVOY /lJJmRgqwZQfXphfRHEdNcCXtN4 2020-04-20 03:22:03 89.34.27.48 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 53,80,443,1194 +r Weazel dxjpYyqxIx3rOi7tELJLccn2CXo DmZWbcAwVAn72YAscmfsC51AwtI 2020-04-20 02:06:48 88.130.92.64 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=190 +p reject 1-65535 +r ntfshard dx4IJO+C2F4E2AEWVUER439+t5Y P3m3m3KO13snuqNV3iNQ4BduzqA 2020-04-20 05:29:43 46.251.93.54 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2320 +p reject 1-65535 +r frankovich dzekAwUTGti15gz7kSbku+Htf3Y 8DQrlmA8XZ6zCONkgr9XhjaoQDc 2020-04-19 23:11:30 46.23.72.81 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11000 +p reject 1-65535 +r NMary dzh/AA50cX35LBbF1KowrJtbjjs 00jgqsOX88IhdDnLoGAZKub7klU 2020-04-19 23:29:38 45.63.7.96 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=471 +p reject 1-65535 +r TrumpTower d0Tj0fbch+MSXUaz2FRJAptw/lk 2cXWIUSm3qxCfyHhPdNNtW6WW1M 2020-04-19 23:53:04 73.61.161.136 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=181 +p reject 1-65535 +r Aerodynamik01 d1sPr95xqtwj/8h4K3vrHVqScz4 c/KMPoshN2gvbvmgNQpw+Z9t94g 2020-04-20 04:26:00 5.196.23.64 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r CalyxInstitute09 d2Hdx+sb4m1BVfdKFfEsMqNv4PI KohEJGV4RoIzjLYB45TEjV6ZXSk 2020-04-20 02:20:29 162.247.74.217 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r BrightfieldRelay d2/Lj3P42EQH9a8kYKdfnuyYLrM NVANJiXVt1E0qGlnM3PdKTARsW4 2020-04-20 04:39:52 51.175.121.67 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8110 +p reject 1-65535 +r Politkowskaja d3st7NZ8YH2IV61g6XbuPh6KUr8 4L1CEG74jV89YKQXI0Z7lHQInAk 2020-04-20 01:42:21 144.217.60.239 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6900 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r blueberryTORnode1 d36eO7Nxz7Q2y5k8+Mf2MRN77rI hTCf3Lh/d6ntOJP/vm34QC0iwYI 2020-04-20 11:59:11 178.62.205.137 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=358 +p reject 1-65535 +r MEGArelays d4X9KZvSfB/6y1AIUAfzkJzhp00 mqdf45LJmHKmVxIOw8qKDquK96k 2020-04-20 12:45:10 45.142.212.174 9001 0 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p accept 80,110,143 +r BNode d480nkOULAoHZ46ZLJta/W0hgKE vXa4QKQG4U8OAvJVnvbi5xvgveg 2020-04-20 07:10:42 84.118.60.117 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=99 +p reject 1-65535 +r snap278 d5WRlHJmeoyVjrhnGQzoXJ8pxmU XaeBSD5jkd0p/BebYfFqSd2xtPc 2020-04-20 08:04:36 181.91.138.214 41167 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=269 +p reject 1-65535 +r TheEpTicZeus d6Vssjd0DiSuotYcjIk2Iyr8G9g BsRsN4tVtCQGpppTXSgoSklV+mI 2020-04-19 21:05:52 54.36.227.247 443 80 +a [2001:41d0:800:3a7::]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=38900 +p reject 1-65535 +r IKEA d7RWKXT11xVibreEYMeaLRP7cAY NJnuij3uL5rPSgrXmuUEOhVVv7Y 2020-04-20 00:56:32 188.68.33.224 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=42700 +p reject 1-65535 +r BienwaldKA01 d7glXNKmCLli2kQjuM9JrP0eIf4 op7Vptf30vkO2oUlUpNkbT409NA 2020-04-19 19:30:34 217.81.81.31 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=400 +p reject 1-65535 +r LeonNet d7iPdI5AZ90Zi8D6Mx4RjaIRM40 NV/253XQtxZEmFcBLtfvdrydwzo 2020-04-20 04:19:40 95.188.89.206 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2160 +p reject 1-65535 +r Unnamed d7kHToprGRsJ4kkpzr9AieMyHrQ jGMsh4dQmynEAk7aZ0YFb/R0ajw 2020-04-20 11:33:14 167.114.92.50 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 d8ZAMjaHDUURplnwEjKUh/Q/O6w cwi/Iebknwy69Ed6CIm/gmAVR9k 2020-04-20 08:33:13 74.78.27.171 40457 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=54 +p reject 1-65535 +r Assange027es d8dQDMVzZD5LPn9gLQE3+Mic4Lg bjtmi2hwDPzzDltyZMPLarVuy7s 2020-04-20 12:32:06 31.207.89.76 9001 9011 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6590 +p reject 1-65535 +r bff914041c9a d9MyDIyt9JDcg/lZ423qCDIm1g0 UpDR3/Ak7++Ye4Z/X7caWZMygMY 2020-04-20 08:23:35 51.81.253.202 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10800 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r tie2ooK5 d90ljw1YeS4Ny9qgvGah3F+NhK0 kvXY/fLnxk5jDwub3WesnjNQvjQ 2020-04-19 19:50:50 37.120.179.169 9002 9091 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4520 +p reject 1-65535 +r linode12300423 d+AaXTF0hHTE9fCGwkYeBKJrNPE ojREBdJaLLMMQX77TLemhCajSi4 2020-04-20 08:42:16 23.239.9.92 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4800 +p reject 1-65535 +r keith d/izVzAcaN6pa7qmDAdnbj4WH1Q vVs1FtxkNv+lozMMRC5nqSm8A/g 2020-04-20 03:35:02 51.68.205.181 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=81100 +p reject 1-65535 +r jeweet d/6YRFBIxXdmYbtUrsqnoRroXXg 0XLy0RFkPjz+IpybrTEIwKk6JLk 2020-04-20 02:43:08 82.197.218.152 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=891 +p reject 1-65535 +r delrovio eAco0+0vEoQx38O7Lb4h6AwgdY8 PosvD9KAG7nDJk9V8viPCXfe6ZU 2020-04-20 12:11:36 192.195.80.10 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r heyieditedconfig eAouRwH2xEhbW5iLyUgMGmf2Mxc DI91Wl4mH7jOhG9O7ZJ6PVyC64U 2020-04-20 02:24:01 51.68.106.162 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=148 +p reject 1-65535 +r BarrySylvia eBbe3dfNePkf63Ljl6yxi4gTKKw ba6rWjk3iIb2IbBDUFkj4unwuDM 2020-04-20 00:04:02 3.20.179.249 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r mischief eCk2wWv4dvX1mheTrbHFslHbZec /nDTf6VZ6FE509JVH3xDlK0BJvc 2020-04-20 10:25:18 185.2.43.84 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8300 +p reject 1-65535 +r spotyor eDajiICg/j9DNbi/PZ4IObOWnqY 7GjGsaHYzZwwIZ1WLMYyXK5FKgk 2020-04-20 11:13:56 209.141.40.46 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=763 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r VSIFweb eDeN3QFcThySQqXsQRWK8eJM9D4 rc+seNV2486Gjh+AVznr2IgmQws 2020-04-20 07:14:29 163.172.147.53 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20200 +p reject 1-65535 +r Bierpipeline eGpt14sXAG3AlC4XFBw04Dhj7C0 yObrWAZ5lOxTqRZ9ytBGLlWugOw 2020-04-20 01:16:26 91.39.58.237 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3110 +p reject 1-65535 +r Kitana0x00 eG7KCmbdxQdnK/WYeYXZ9ugR554 KypOiDd/d1LQOH9+tZPvnqjenm8 2020-04-20 08:25:34 213.141.129.246 1984 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2860 +p reject 1-65535 +r WYSWYG2 eIoopKNJs/488buiDJD8RP+9fZA 7Wx9dpGtgx1j0nxn8NXD2xhoYrI 2020-04-20 04:33:20 46.194.46.65 65533 65532 +s Exit Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=110 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r machinesarepeople eLj717u+0tv1aN5c6QNFwxAhUuo iAyuQd3rjnX23mtpdS0uUbjKgFo 2020-04-20 09:54:00 37.75.227.17 9999 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3960 +p reject 1-65535 +r grobosolforte eLmNEpl+3WMPamdMv0LyBxHerBE /FQz3YQmWf3G1wbIan8hlbp0mD8 2020-04-20 11:23:16 217.144.138.249 443 0 +a [2a02:a00:1009:d990:8af9::]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25700 +p reject 1-65535 +r dc6jgk9barm64 eLwiVNOzHNhl92gmM6pDghITJTI BioguZAxOvmY6zCCitoPPSVDxJY 2020-04-20 06:28:48 51.15.80.7 443 9030 +a [2001:bc8:4700:2500::174d]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7100 +p reject 1-65535 +r MartinLutherKing eN8rk3hJ5rdjbpATd9sIoVtRUlw wMy/L1QC1ORA8GvZ5HWceUL95XI 2020-04-20 10:07:25 144.91.106.71 9002 9031 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9400 +p accept 53,80,443 +r COMRAT eOIujQFouGOT5WAKr/D/iyX5bgg R7TG8LZ3AD6OqQReSEiCUAHAOcs 2020-04-19 20:20:37 185.222.202.10 9001 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1430 +p reject 1-65535 +r bynumlaw eOK+dEpTYxtKq3gUaOlMUqtzlos MeNkc+shl6T+qEkrAJauxeYzwkI 2020-04-19 19:22:49 104.200.20.46 9001 80 +a [2600:3c00::f03c:91ff:fee2:4963]:9001 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=1150 +p accept 80,443 +r PolishHuntingDog eOQsXqP8TFYGs6z1Yj3iX+a18Wc yqBiB/q+TdZAzcl2p5FDnC7orYA 2020-04-19 16:53:03 46.41.137.28 9001 0 +s Fast Running StaleDesc V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p reject 1-65535 +r Unnamed eOua0Y5PQilIRDDK4r6F4quUSS0 zEIQsRmcfehr5aKpiX3sNm5/EVs 2020-04-20 10:34:43 107.189.10.190 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r tor03k eOuj+JM6D1lrQ6fb15TFYw9bWH0 9SRwE/RSNaHt+H4lKr43o71kTC8 2020-04-20 04:33:14 164.132.51.91 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22400 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Blockwart eO2EXVAt/6RmbuqQmYPegd4aP54 gAZTCiG76kBI/d0tx2/DrujZ4pk 2020-04-20 04:04:20 83.135.237.170 443 80 +s Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36 +p reject 1-65535 +r snap277 ePoVqx3mQwXBwddufpE59h/e7t4 NjK0QV+Isd6eOYtPY1PB49Q/aM0 2020-04-20 10:25:24 73.157.203.222 45055 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r chaoscode eQCSPu7OR9nDye0VqfXLc3+wNDc nLjehbqli2+Fh9A+oy1tyC7pXq8 2020-04-20 04:11:55 89.245.242.150 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=643 +p reject 1-65535 +r dockstader eQ6z5UTnCAn6dg3Hk0afxauvHig qr2Phgy6DD3xlcbgC57OWENAWBI 2020-04-20 08:34:34 209.58.180.90 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=370 +p reject 1-65535 +r 4istheloneliestnum eQ+r1RhOmPiZCEBCMzZMlApIgew X0W6/k+9lJ+eafzhuMliRNBMHvE 2020-04-19 20:10:39 185.189.183.143 10901 10930 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3150 +p reject 1-65535 +r torar eSoBX780ONOljIfQAx2e3cJvIpg jG+V5lY+m/goU5WkZ+P8Zg24N/w 2020-04-20 09:28:36 83.56.112.221 9001 9030 +s Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r dragon eTSab3SsDU7yk5iUsSJwLld4b1o AOBal5Uzj4KmEvav+fDcfyEDnXo 2020-04-20 10:51:43 81.17.16.149 9001 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17700 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 eUQFxd+EH9sdGoQhppm1IGGKcFQ vqM+YLnNmRcihokqnq6AE87O57g 2020-04-20 08:34:57 5.158.55.160 35629 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=707 +p reject 1-65535 +r DerDickeReloaded eVCWg6tMjdr5ChIMaaQXnGzVo4c d9r5oXQd00yLvu43mks1s5Xm8K8 2020-04-20 04:13:56 185.244.193.141 9001 9030 +a [2a03:4000:27:192:24:12:1984:4]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40000 +p reject 1-65535 +r fakename eVeQwlveg0uDbqVN2W2yYQgpVzs V3h1k3heWaUUal7egmMwwkIHL3s 2020-04-20 11:02:45 51.255.75.3 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32100 +p reject 1-65535 +r ZEN6 eVsuzuWiivqVk3ukHkIadai9q/c 8KGVm1OFfWpJosCtOtgcNrOPnn4 2020-04-20 06:42:14 202.239.38.249 443 80 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r Unnamed eWHJmR8CLIo2P9RAyjldR9tdRNU iiB+FNj02PFygaDWbEkUDvtFRTI 2020-04-20 02:03:35 51.254.35.151 9000 9001 +a [2001:41d0:401:3000::436]:9000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16200 +p reject 1-65535 +r TripleBfifty eWIdPzags3dnC0ZHwzcGNc0lIa0 o7GR3zyY1u5u9ysOkGCXnIom8cE 2020-04-20 08:50:03 18.220.20.115 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r Piraattiklubi201810 eWM4mZp+NMpMDyxgkmGMgsDTNdk FxoFSBaGgWu8z5AlkYNi7cQtCOw 2020-04-20 01:56:40 82.181.47.70 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50 +p reject 1-65535 +r torfan eWi7aU0FwDNyJ4YsyiIH1m16rxA PxSj2nwQVQsGoksJm9RjDZnRMUk 2020-04-20 10:20:39 79.127.150.75 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=470 +p reject 1-65535 +r Unnamed eYpXtOEpaZpSGgPn9yvA/ewx9NY LIsZSSZi/ob0QWuK0GuGAT9oQNs 2020-04-19 18:53:34 185.90.60.73 443 8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17100 +p reject 1-65535 +r unic eZH903KouOUwGrKojf2BgLknXAc 1kMefXHvGkm/+v87j3bLiondzAY 2020-04-20 05:45:31 94.227.13.244 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=182 +p reject 1-65535 +r NeoETor eZfXMnIpXBMi8w/9HzLQk+Hhl5U q7/cgupNBbEoFTbaWDvztawbTjI 2020-04-19 20:18:13 86.210.4.33 8001 8030 +a [2a01:cb1d:8adf:2a00:200a:884f:9827:d443]:8050 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r LaTorretta eZgOulZxTSM1THLBGyKbZ2yeyEQ mFRo3rU21PPoQMlLhRWjbBdPq0M 2020-04-20 03:45:00 145.239.86.245 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7750 +p reject 1-65535 +r secunet eZ1OZHcc+je7McgjcUGlbqfZqwI c4ocPRqakAf4afh3PT2obPH7MrA 2020-04-20 00:42:00 13.229.152.50 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=568 +p reject 1-65535 +r VariantRocket12 eaCNJhvAtpriHa0G6rUK8GDpbgE zORnYB5LQYN1yer7Skfndk5ghfw 2020-04-19 19:56:31 194.99.22.195 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p reject 1-65535 +r yuggeit3 eaYJN1wNrPgqivDkcvFJSeGMW+c AUHeRmLeNUmmdD2plqU46RNeMxQ 2020-04-20 01:44:30 139.162.10.72 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=130 +p accept 20-21,23,43,53,79-81,443,1194,3600,5190,5222-5223,6660-6667,6679,6697,8008,8080,8332-8333,9418,11371 +r 1d1dchang3th3c0nf1g ebIHrVGEL6IV2Va5MHs9Ac00c2g T5TEyjBqzfTDrM/KaFHLw2lDt4c 2020-04-20 04:48:14 37.252.187.129 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9940 +p reject 1-65535 +r grocock ebOfjVPazJpjl1+8NGMB2NDTYDQ /oaoxjG6Ox8q+FHVZx8bki8aeys 2020-04-20 01:56:57 178.32.220.61 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7980 +p reject 1-65535 +r gorlock ecZ05sGskGh8zPZE0kwXrB5TWjw RGPjK5cTBA6Az9t+XGCiUrwOSA4 2020-04-20 02:19:23 81.7.16.177 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=23200 +p reject 1-65535 +r friendlyminsky edEQQZcJxLPR+S/DzhIbUxfb6LM kaOtgmUXzwqUrNQeq4c1l65OY14 2020-04-20 12:09:48 51.158.165.212 9001 9030 +a [2001:bc8:1824:608::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30800 +p reject 1-65535 +r BeastieJoy65 ednma7L9vyXoRrY12CSP4RlM/SY 9PX//9CHtxmnZS5EHPWIfNjJ8NM 2020-04-19 23:58:04 81.7.11.33 80 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r Mundl ed604C/QiuGutNhZSqsII3XpBi0 cECv/+R6kEkb5uWJKLgRo0W3h4w 2020-04-20 10:34:11 195.230.168.83 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4160 +p reject 1-65535 +r bittorrelay ed+w4dedEwavA6SwlMVaV2mJq9E 43aTsfLdgh/3W8daRn+9R40Z0P8 2020-04-19 21:48:26 187.73.18.43 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=237 +p reject 1-65535 +r Unnamed eeSKMkLbNRVwD4kl+o5jI/jVHX0 7Vi8kWTHtxW1F/dwnLGw7yz0Avg 2020-04-20 10:11:22 37.191.196.246 8443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12500 +p reject 1-65535 +r TorGwTga efHkblnr/PygVr3Awc94o2eIqDU kEw7Kvfycgzm2w0Us/RImjMKeUw 2020-04-19 21:12:51 101.100.141.137 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=176 +p reject 1-65535 +r lptr01ORFzF4Zq egxWPbh2CN02KKCw0hZk8UyYkgg /74PIBZbzy8YMgCjSbwubRCOefU 2020-04-20 01:05:51 213.188.235.229 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=54 +p reject 1-65535 +r framboise eh5Vv2MByPn/lnf2sH0EwKYydmc IwARLNROY2xgXytT9daz6wGkiXo 2020-04-20 03:45:06 216.6.27.12 9001 9030 +a [2a09:8740:3:42::12]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12100 +p reject 1-65535 +r thardes27415 eipvOfSFxPyV+4hf/zfENv0rt+U UORLnoZU9bF8i3lfdEXDT6czTzI 2020-04-20 11:21:16 217.160.57.194 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34300 +p reject 1-65535 +r silentrocket ejLJUZ2AykWPyLA0oo9faBVkmpg /jhOuIr0ZF9VRvfgPehcRlGxA2A 2020-04-20 10:22:17 82.223.21.74 9001 9030 +a [2001:ba0:1800:6c::1]:9001 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3200 +p reject 1-65535 +r Quintex39 ej3SgOpM1N0W74xnuT2b3hhNGoE /0HF7PAb9KQiJhnAkCSalbzOyc4 2020-04-19 21:43:52 199.249.230.88 443 80 +a [2620:7:6001::ffff:c759:e658]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Unnamed ej5TTAM+ODa9WvIjtkKFPFAqszo JfATHMxBW0Na7wHXeh/thir65Yo 2020-04-20 11:00:29 5.39.69.166 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=126000 +p reject 1-65535 +r myrelay ekwpagH62gvF3k2nQ+7tFoKClJY j49ZWJNBzSFw6eTWbgiZiZtmyls 2020-04-20 11:45:25 137.74.198.250 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.10 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3010 +p reject 1-65535 +r shokupanman566 elNRgBxgzTADnz74g7onBNBtMFo QwdXbIgy1nyj0xsVIfwi/B8ea8M 2020-04-19 21:55:02 27.120.90.181 9001 9030 +s Running V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=44 +p reject 1-65535 +r dorin emhzuG2CvItPDnkIKGJhB4IPe54 a1scABuTU2uiP0+3rHDeeiEwsAc 2020-04-20 10:37:54 146.0.77.50 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16100 +p reject 1-65535 +r cryzrelay03 em7EP9TNWZAjD85I7DevxXjjbOY bA0/rL+RVOiXFE5RLhCWxKWgTkA 2020-04-20 05:44:41 82.149.227.124 8080 8443 +a [2a01:440:108:11:82:149:227:124]:8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r GibblyInTokyo enBwz/sMiC5QeXEpj6je0F7wOUU KNypBqvTJwXDa2hMPs/eb6PHGwI 2020-04-19 22:38:54 107.191.53.201 9001 9030 +a [2001:19f0:7001:33ab:5400:1ff:fe51:b2fc]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=644 +p reject 1-65535 +r Unnamed eoeRZQFok0/36gTl4Cs9pzWhie0 zwX9+vx2Lz6Hvr41gF9s6NQ7/u0 2020-04-20 02:25:38 82.207.167.86 9001 0 +s Exit Running Stable V2Dir Valid +v Tor 0.2.9.9 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3 +p accept 1-65535 +r ITBURNSWHENIP eofyPdJ4XHd8cDKkdbh6yIyi3jo AaRtzfG0cj8vYLXuTv7/MlhsLWk 2020-04-20 12:40:43 66.85.95.43 1337 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3750 +p reject 1-65535 +r druid eotvB42Fro3o0bz9jhtutYlsQxw EQvt16BN2f+z0PGG8CA9xhwov1I 2020-04-20 12:00:11 51.38.162.232 9100 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r steinpilz eqf8gOPg0y6SnSzAlOrPUpyVJkw ZFnGNYSBHKAksQH6OUsypNdPbJU 2020-04-20 03:08:29 193.31.26.18 8080 9030 +a [2a03:4000:2b:1731::2]:8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r angeltest8 eq9Vl7GNgsyQypX7eXahzqSjLgY jNC+e1DKO5CezsO2tl7Yr64+ew0 2020-04-19 20:17:32 185.112.82.50 443 9030 +a [2a0c:f040::dcd2:faff:fe8f:70f3]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14600 +p reject 1-65535 +r reihl eriwjfi5DRCO/DfXTKkKe5OaAj0 5M1Br+BoOIynQAvPFRXGpo3zZE8 2020-04-20 12:10:18 87.121.98.43 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6670 +p reject 1-65535 +r snap277 esVK/SfRtv3jcYRsyT0E2qITcOQ W6fbQVnPq9HAtpromJGcpKnpon0 2020-04-20 08:07:41 109.221.142.241 40815 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4350 +p reject 1-65535 +r torex essqhVoOXtr2gJeuJ3ETuO2poLs lWxlt4snawNVJOidyP8+K9ao7nk 2020-04-20 03:15:32 202.125.21.31 9010 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=314 +p reject 1-65535 +r massrelay euFX5QCEAEPB60MVdUU9G2DWJ48 LYI0ekHrcJQHDGa1mYc+kxJtEmA 2020-04-20 06:50:08 178.62.244.168 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=560 +p reject 1-65535 +r citizen17 euVz4No84q8mOgZ4A6xfN9ALHsw Awc8Yq7EhEyTPyN0MMIYh8hF4S0 2020-04-19 18:53:10 83.97.20.245 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=740 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r torly4relay ev5zQmPJR63YjQlMbjy3GjQGJyQ /wA+TELy8JNgPiY7U6VEZbj8FjQ 2020-04-19 19:55:18 62.113.211.114 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=195 +p reject 1-65535 +r snap277 ewGSFj/yyZ5YLzCexjJneYuIjx4 pm0MUf/CImYTSLUpn4fUn9iqZQE 2020-04-20 09:19:13 71.38.183.183 43649 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=170 +p reject 1-65535 +r snap278 ew7GQFHszuOCebERZdxdHWvNyRg YskW0Xmj7AoeroAbAxRH2Olh18c 2020-04-20 05:22:58 176.110.34.244 40139 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=540 +p reject 1-65535 +r godtfred exkEY+czzCkqpAENGU0XmM2OuaA iL5tEUtuPu+jGQzUChy356A84Vg 2020-04-20 00:01:00 104.131.72.61 9001 0 +s Fast Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5990 +p reject 1-65535 +r megalama eyN+brU4PI0IUgl7ZjO6w/q16jk 585E5pocCp/MahA1qtAZRpVMTMw 2020-04-19 22:19:36 141.98.254.225 14655 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p accept 1-65535 +r torified eyiXHUopmVeE4wZrnYfkLpxoXzo BK/G7F2Fr4S70uLr129AaVJj7iw 2020-04-20 06:04:32 80.219.48.52 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6850 +p reject 1-65535 +r ClubCryptique eykE/oqhLkXqPWVljtjOykpR9/g NQY5OYtSuqJZRKLCbq1jFapoEwE 2020-04-19 20:05:11 51.77.62.52 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4670 +p accept 563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 ey1FbFf3PRMZ+slBLlbpzU8/lQQ L2nT4+hSeoD7jSE8uTdSNbYYXGM 2020-04-20 12:34:56 71.226.11.169 43775 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29 +p reject 1-65535 +r DrNefarius ey/U/9VlmTy0xDNKwKDEKYXr6ts f3q9qjSQOus/J7QoxTgHmAHSun4 2020-04-20 01:31:53 37.120.169.252 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r Unnamed e0hOg7qtd/kVmgncNKjelJX/PAM W+rWQfSgPyF1jXa1flC6ni5F+vw 2020-04-19 21:06:26 185.125.33.242 4351 26185 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=779 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r YoungRelay e0h25sm/sGBepoFnsw+t2EnFmkc cEomWUcfKBH6F3Ep0qsMLl1hlvI 2020-04-20 11:17:02 128.199.196.137 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=710 +p reject 1-65535 +r TorRelay268 e1MtYEppCewh670KCRExlSFEdXI NEiyIBo9Ip8pIpds+AZ7c7WUY6A 2020-04-19 22:00:00 51.254.39.39 9001 0 +s Fast Running Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5090 +p reject 1-65535 +r iscariote e1PaKIEyWKIDNcjomFwF0NCJtEE 4TsbUlGOlWR/23lkySlHTWvhRZ4 2020-04-20 07:09:23 51.15.142.0 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7050 +p reject 1-65535 +r sandman1 e1eTPinVIEcdfmerSLBrYoMoKPk uoOPsK5Soa7k1Vjt34XZCWXyYas 2020-04-19 23:33:57 51.75.82.166 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r emubeard e2ytGmI5efDOhvwULjwuuyb785k /JjlDOUnqNVYDwDUyU8f/0aA/+0 2020-04-20 06:10:41 91.240.229.195 9001 0 +a [2001:67c:2a4c:1337::195]:9001 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=450 +p reject 1-65535 +r dc6jgk11barm64 e3AMDCB+vQAC4A9Jm+JlUZrDwlo 5YnDNtcxaUD+Bq1T6mKqBVbv62U 2020-04-20 06:30:32 51.15.75.120 443 9030 +a [2001:bc8:4700:2500::2115]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5600 +p reject 1-65535 +r king e3WsW6x5qe+zIkbBgA67KFt3SoY w4x1lvbcvZ7MxEkqL22oBesapKM 2020-04-20 05:18:41 51.89.200.97 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 e3pKQhGGpKIT75Gr+G3s4FV7zOg 9YBSvxbnPs9IH7G6FTqxYXZIFHY 2020-04-20 11:27:09 179.34.64.113 37015 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=124 +p reject 1-65535 +r geay e3vmVsMW7tVVzpz2jUTLUBR2eIE 623c44vW6uqDYEt/cEAuzC5i1q0 2020-04-20 05:54:19 93.115.241.50 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9910 +p reject 1-65535 +r niftyentrynice e3x/MSBdeutd/+2gjgAoKnjNduA efiIQu722Cg2RkmMJQgfW05gORg 2020-04-20 10:51:08 185.220.101.209 10069 20069 +a [2a0b:f4c2:2::209]:10069 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20400 +p reject 1-65535 +r SRTorRelay e30KI1deZJzWESpelTuhpvL2K1M wfNiBBcQGVRIZEUrNeZcWkbqSrs 2020-04-20 11:14:41 121.122.127.134 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=446 +p reject 1-65535 +r 6ba405a10c25 e4TmZ3AYUmXyh2wNNJzsmOPSpyM YdsIbmUDapiuSGfD8Cia+8qj99A 2020-04-20 08:03:53 51.81.254.3 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10200 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed e4fvV9rDMtcBbASuggY+k7UWLEQ Xla02bJKZZrdEizU8RDCYcfzfjc 2020-04-20 04:15:17 51.158.65.243 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r bigtits e5jR08NORFqnJq6ZuS/NmaFeTsU PGtoyoXGWDIJsALZ4M6Ja+DLWIA 2020-04-19 21:25:15 178.18.94.247 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=90 +p reject 1-65535 +r eceakwer e7JwRUrm5UXqJUY6AX7ppAUsmrU GVIxh+LTpTUVO/EreoJ8V/hJ8H8 2020-04-20 07:26:26 139.162.23.53 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=722 +p reject 1-65535 +r torproxy02 e7cPhYXfwn511pKXDA7rDyKYOmM fXLw8Y4BQViH5slEkRjVs/rRI4w 2020-04-19 21:06:41 51.254.136.195 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r heartbeet e+R1KHdVOpbNQDXQxSa80J6BzGQ Wkx/8pEW8QHzeli3mrPf+RJ6e30 2020-04-19 20:58:19 51.75.153.17 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13500 +p reject 1-65535 +r dannenberg e+aD5l1IFBMhxe2S8HXFU2SscSM lWlkMhSLf0SadvOLSV8toILM3os 2020-04-19 23:27:26 193.23.244.244 443 80 +a [2001:678:558:1000::244]:443 +s Authority Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r ididntedittheconfig e+ezC0wQ58Pd8urR1rYqGCY9ajY 0g7ulKbrUbSZXjD8tvp78ViOgok 2020-04-20 03:19:32 83.254.12.1 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=80 +p reject 1-65535 +r WYSWYG e+ni7yu0G7Zi2aPNaCibnj2/igg pCoML4P2KtDjWZcu69d0vJrNTrE 2020-04-20 04:37:43 46.194.46.65 65534 65535 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=181 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r Thornode4 e/MDFl105ix+a6uqB0YLNoQJ+Jo AtU7rjT1L46zlh7ZRScuZfPmmxs 2020-04-20 09:17:54 5.42.136.114 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r sofia e/uQijqltJHaTKcsy+4OHyqTm1U tcyaebs48twC0yfLITIiiunJNfM 2020-04-20 04:50:49 77.247.181.162 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=72800 +p reject 25 +r Dimmer fAQW2KvWP058R8NfKx7fn2ZCSQA SAGp6roq8VhnbpRHsMOQ80F0Qhk 2020-04-20 08:37:24 178.254.43.123 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7160 +p reject 1-65535 +r ibibUNC0 fAqk47c+QH6fX+sZEvi+JtiqEk0 BGiP4Jw5EMlmZP8e6GtTmsN2U5s 2020-04-20 03:45:17 204.85.191.8 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4290 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r ZKP1984 fCLomrYg533xtKM3h6XsPyq0qNE IpRP6YLtiQ2vlupiExhw0USNrCU 2020-04-20 01:19:15 190.2.145.7 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=73700 +p reject 1-65535 +r Stargazer fCknYHWSrfJjExBXknFN5Aiu0Ls zpozxr3fXSO8prgFMRkJGRFiw1I 2020-04-20 08:53:05 92.223.65.31 9001 9030 +a [2a03:90c0:154::30]:9050 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11400 +p reject 1-65535 +r leenuts fCsaH7Ul0y7uUJPI6QrpFufuyrA lb0Cm2l22MNioifPn+Ys8UU1efU 2020-04-20 00:41:58 185.17.178.132 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1300 +p reject 1-65535 +r anonymous fEbALxdbSuioyMXdmxQH6hz3Km8 FW4eZaf/gaogbuFOK/a+j3xLkIg 2020-04-20 10:44:24 163.158.13.177 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=46 +p reject 1-65535 +r ES1 fElLW7wVWDA9sc+4QNmAoLS8wyQ bnw+Ao54zu6GwWjAV0/0mCjmt1M 2020-04-20 03:09:07 134.101.177.101 9910 9911 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2030 +p reject 1-65535 +r DefiantDaveRelay02 fEmazWD7ZR3UhrbYAikKPrvszYQ El77YM1bOf8if2iaB1Zd2/VvI+Q 2020-04-19 20:36:03 174.141.200.41 9002 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r snap277 fFrEcBKIALneFanIGKe+NiTwW58 BcJ5mIOKX2xQHri8N/LEyjd8zBM 2020-04-20 08:42:15 59.166.192.158 40087 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=65 +p reject 1-65535 +r Gu1nn3zzRelay fFwOg8opD/9tXjDZ4OP/ybrg0MU AwOsbI2zlnnyDYeDUqYZJnbutpk 2020-04-20 06:06:27 212.47.236.95 443 80 +a [2001:bc8:47a0:201f::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23600 +p reject 1-65535 +r snap277 fF/4GUMyXW9Oi+Y3GO0nVIuZQR0 jC8K03Eh7nTpLowQdcEnQbT1TwQ 2020-04-19 20:24:56 195.62.15.26 44839 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4470 +p reject 1-65535 +r niftywabbit6 fH/7HEi34MXJs9Ef7C+FAPRkeGo 9E+/9eF3SotyQ7Cd5r1++Y0vx9I 2020-04-20 10:52:53 185.220.101.198 1198 2198 +a [2a0b:f4c2:2::198]:1198 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57000 +p reject 25 +r Unnamed fIZ/UpByZ/ZYhn+HSw0+WvzJCb4 tqbZMzqrCyCdn4JU0a17rwZl8jQ 2020-04-20 11:19:47 97.103.190.156 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=215 +p reject 1-65535 +r toomanynodesDE01 fIbHPbF84gzSZTfJ4+wP16VeXG0 1eUPJnXAA+kqk3G4zkIluEKKiOk 2020-04-20 00:10:11 79.143.181.221 2010 2015 +a [2a02:c205:2021:2617:2000::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17000 +p reject 1-65535 +r Unnamed fIiJC2bIx++wokQUIZ057Yf6JOo msMMLAwZEJ55Lzuc3AXKckeG6yI 2020-04-20 05:02:57 209.141.58.114 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=9170 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r snap277 fKL3OiSyqNhGmPaPkYO25gFNe7Q cyijA+xuFoRqfCZTpaziZc1YM8M 2020-04-20 12:03:24 49.244.147.223 34015 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2 +p reject 1-65535 +r CloudRelay1 fKU8NNjHA3ahY47nqTSnywOZa+I 4oO6DAUieWdWTQ7Zfl4P1N4CLqQ 2020-04-20 09:17:48 80.211.53.44 9001 0 +a [2a00:6d40:72:992c::1]:9001 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6010 +p reject 1-65535 +r Rigel2IT fLwdR1TvOmLBXLSMCAKcmQCeLs8 MhlC5CpPkaNHPmUMeXkwJJ6YV+Q 2020-04-19 21:52:54 193.183.98.224 443 80 +a [2a00:dcc0:dead:b2e0::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6600 +p reject 1-65535 +r KD8HLN fNI03+/o8hXsmuK8HSyvyeDRzAA Oq3OvUSVmwpyKBZMOqxZdl8dZN8 2020-04-20 01:37:45 158.69.222.218 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10400 +p reject 1-65535 +r torrnado0339 fOlUztuYJ8NHgqPxcu4B29xoOsg 7h78AtxuKFxUXGIrCEMAkrJTb/U 2020-04-19 19:27:49 172.104.79.222 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=418 +p reject 1-65535 +r DEDI44 fPPlui9Vr3t1Sxfc1lmGRGfh7SQ Ap5pdLwaPqit6TEG60OHzr6gRaM 2020-04-20 09:15:01 178.175.138.58 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24800 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r 21b fTHVEY1Hv4bFUKu3nt3oZewxtn8 GmeiHv1JY7/3+90JEVlGlboxA3k 2020-04-20 12:47:07 51.15.74.130 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29500 +p reject 1-65535 +r Unnamed fTK6lMMcQLDti69/wobq4axsNjU u4+VjFABKVmAIcjZqMlA5/B38JU 2020-04-20 04:24:09 85.212.133.221 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35 +p reject 1-65535 +r lemontime fUH+1YSBoOWUxkLnQXbIEXeNkaY /VQZdscEMGRjbo25SdaZTfbWDFE 2020-04-20 04:56:29 5.135.181.213 9222 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9230 +p reject 1-65535 +r Unnamed fVX4ea3h56xJvNQNf2gpMwgjPxg 1bc7pas3Fqm2Q9B5lS9zM44Z1hs 2020-04-19 20:02:27 51.77.140.69 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=13300 +p reject 1-65535 +r omgididadoodoo fVqmmnb/Y0izanx1A2vhFd+IBcE 7/TRbs1q/NGI315viQb/env1P1k 2020-04-19 21:49:45 122.59.117.254 9001 9030 +s Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r Pagkaki fWk8Kpw7Cy1p9HOvHA4cvgXq1BI dBBlRD6I4cHwgCYXJZ8M8y0Zhp8 2020-04-20 05:27:33 83.212.96.120 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1130 +p reject 1-65535 +r Unnamed fWm/dgY5+9HZD5zKgIYNaIN0W2Q 6wdpwPJ7686uVXY/5EZv31yOEfU 2020-04-20 12:42:12 108.20.80.107 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1560 +p reject 1-65535 +r Celestia fW3JK6918d4oEsLhSJ6RKSOFjjM IUD0aV9H1u9mQGsSy845BlZIauk 2020-04-19 21:06:50 188.165.211.164 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9850 +p reject 1-65535 +r smell fW6Wy1+wsEPNqjiG6ghBD22ZU1w TKgKzhV65Z9Ddocby39dUVVpo48 2020-04-20 01:24:14 209.141.35.14 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5880 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r TakeBackYourPrivacy fYX3lNOzrmUTQ2O2Vq45ImXtcNU ESt+6KZDaWu6dpJd2SxwAHlQ0VI 2020-04-20 09:17:11 185.193.125.155 443 0 +a [2a0a:3840:1337:125:0:b9c1:7d9b:1337]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5380 +p accept 22,53,80-81,443,853,873,5190,5222-5223,5228,8082,8232-8233,8332-8333,11371,19294,50002,64738 +r PinkmansRelay4TOR01 fY67hs8utWD5OL7wGOHY/Ws2syc J99U2+K+EDs1JakVQM0ggwdymXY 2020-04-20 06:26:41 82.165.74.130 62734 62735 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=46900 +p reject 1-65535 +r niftymuskrat fZITY4F76Ja1Ri6QAz2pN773zj8 FyhXNFFMcQM3cuT0yRoPvT5WHmw 2020-04-19 20:26:41 185.220.101.11 10011 20011 +a [2a0b:f4c2::11]:10011 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50000 +p reject 22,25 +r Anagramix fZTYStjxUbr9zXZU9EbD2VY0qAE gCU6W/2iDpEnhHiLD+2LDalmWvM 2020-04-19 19:57:16 84.215.198.76 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=352 +p reject 1-65535 +r Undertaker fZwD+BIkHbCK2pZjXnJ6LveHk4Q 5fw/zwQTXR4Mfxk9OMZWBm8JsXA 2020-04-20 09:51:40 77.120.113.64 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12100 +p accept 443,464,531,543-544,554,563,636,706,749,853,873,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,6660-6669,6679,6697,8000,8008,8232-8233,8332-8333,19638,50002,64738 +r FritzWilhelm007 faMdeeUtEmhbvoVE48VX8Xaw/IQ 2wT0klk98P/jovEIEKcxZ/WLsm4 2020-04-20 06:59:18 37.221.193.44 9001 0 +a [2a03:4000:8:3c1::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6880 +p reject 1-65535 +r Assange006us faNGC3wcE9yrO0nt1sN2yoVis8k IEwc7Pa4z0pHgnUNqU0FUbrhedk 2020-04-20 04:11:37 198.23.221.16 9001 9011 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r Songino2 fbGK7jQQVgoDllz8XpcXYHdsFkk DxyMAeUmT/A2Z4G4nCa0v1S3tsQ 2020-04-20 04:13:07 180.149.125.150 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=590 +p reject 1-65535 +r 1chandotus fbhEOuKfvEUNNOVfqRT0K/kp7kk hX2H8wzNMFhiafgJN9DNpA/vvu8 2020-04-20 00:44:20 147.135.36.62 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r DeepThought42Bridge fcCZ6ErYrMEt6S7vKxqQUrFdCvE jbgup8p2wiCE2/wpcoGvIUepaN0 2020-04-20 01:02:00 5.226.148.44 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=692 +p reject 1-65535 +r niftyllipika fcUq5mZ6MFNrojg80QLPwk8grXE 5SSmGP0YPcdR6B0rz7xXyfai7T8 2020-04-20 06:25:34 185.220.101.9 10009 20009 +a [2a0b:f4c2::9]:10009 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37500 +p reject 22,25 +r dreamatorium fdKaZcNwuGtb5wbqOxQXdFcUyK8 L1lm//NBq+Mus5h3mjWJvLrQpsc 2020-04-20 04:24:14 89.31.57.58 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=79200 +p accept 80,443 +r snap277 fdmrSthDiLz8OM9II11vQW5SpwU 1z8g8HCRbArjS7ymarSGKs7MRII 2020-04-20 09:22:00 108.185.223.157 43047 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1100 +p reject 1-65535 +r Symphony feHozy/CMQU645SV9HpgnaA0da0 72A32L76FBqU/9UiuP5yvYLD/vY 2020-04-19 22:19:51 51.15.206.48 9001 9030 +a [2001:bc8:47a4:1f52::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p reject 1-65535 +r celerity fevQk+JQOSbDAnrrDAMKGohWKlg 4jUmW9RcuItf7fsz9qBCjxnmjK0 2020-04-20 05:33:10 90.65.152.93 9001 9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=7530 +p reject 1-65535 +r niftyentry91 fe5W2UZGCAjwrAc7/InZvgL60Rk RNeRKG71BaA4F9tdTmETKfmkhdM 2020-04-20 10:51:48 185.220.101.231 10091 20091 +a [2a0b:f4c2:2::231]:10091 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6800 +p reject 1-65535 +r ZurichDistrict4 fe8C1ssFk3ofaikjhAyMbNJmtMI 1hfbp6JqBa3HJrnQwSlwMBWylu4 2020-04-19 21:08:56 213.160.38.238 443 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=480 +p reject 1-65535 +r AccessNow008 fgBqRqIizkL4S0oXVpiztZOns7c M+xxQGGzGBE8GZkmJVZ5ACmn25s 2020-04-20 10:32:15 176.10.99.208 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25300 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r ididnteditheconfig fgeNE8OpS0NIai+KKB7tYAenrSg yYIBvIem5q2f8UirYgEQhLKqHoU 2020-04-20 08:54:52 217.76.158.244 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22 +p reject 1-65535 +r baroni fghzSQk3jX84/o/clCncwVIe61c UDfo/4M1udPlyfgRfY7vlAsJElg 2020-04-19 18:52:25 160.119.249.239 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=359 +p reject 1-65535 +r niftyporcupine figc0sMVxPeoS8fIchw7yXTdv6M boiYedZrtRGsPNUPXYLOtYKfRlE 2020-04-19 20:26:46 185.220.101.16 10016 20016 +a [2a0b:f4c2::16]:10016 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35100 +p reject 22,25 +r 15T01 fjF8+kTntgE95Lxfg3w3ancXnHI +HwtL8GVJc6dR4I/MOaHkcTYqkk 2020-04-20 01:16:56 92.60.37.105 9001 9030 +a [2a03:4000:33:1c8::13]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3420 +p reject 1-65535 +r CONNECTICUT fjX5dBT9zGFQhj9S9r220SF61sU ILe+WJT51rA0ZzEcUz8vP9Tp0R4 2020-04-19 18:59:35 209.141.37.231 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3710 +p reject 21-25,119,135-139,445,465,563,4661-4666,6346-6429,6660-6667,6697,6699,6881-6999 +r mentsomedle fjbot1qA7qk1nZtGLe6uHuF4Zm0 chi+AxTM4e7t58boTCkgcKJqE/g 2020-04-20 09:23:09 140.82.51.196 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=854 +p reject 1-65535 +r ChaosKnight fj1rv4XtGie0J120Y7BEoLffaRs xc0hfTzyU6PxISHcebsEgsqrwIo 2020-04-20 05:30:13 205.185.122.208 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=130 +p accept 1-65535 +r torexit42 fkTg05zoZmqY6l3ry7jhKzkGQQ8 DnaASjYmU5DTB3MMFrnmyOl2eYY 2020-04-20 00:06:33 185.31.136.244 8181 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30300 +p accept 53,1194,1723,8082,8332-8333,9333,18080,50002 +r ARCNetWork fkfSjwdEO1f4Ji4UEpNrPiWGlKM 4WmFvgQiVu9jYE4zqPcsPMZdCfM 2020-04-19 20:20:05 173.249.29.137 9001 9030 +a [2a02:c207:3002:6974::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r cn1akatala fm2ua9y962k2EnBLv78WTFD2XlM zKZXbjSU6/Y1ckze8xUDNgtwXBs 2020-04-20 08:13:50 103.73.67.198 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=260 +p reject 1-65535 +r Quintex48 fm6ab9243HyS8M/MPL52wp8GF5k JtiTaUPiTqQ+75HnqiyKqzRQyVw 2020-04-20 06:50:51 199.249.230.71 443 80 +a [2620:7:6001::ffff:c759:e647]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r torjockel fnRh+LTEGuYXJARj5cyDkFXpgQc 1EfApZiMKuXvoSYDnJuCI1ayFDo 2020-04-20 08:30:07 149.56.44.47 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r pitfall fnfMlNlMCGCdcLUX/5OMxhyfgjI Jbeeahjh53APTn8GzN+x1H0PywA 2020-04-20 05:52:20 185.100.87.241 9000 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r SoftPower fnhpgpvyAHi+ALzqO0KXH1vY1YU s2P1M+aqRxNb+3UlLamrwVIWgLk 2020-04-20 07:35:17 206.63.229.144 4031 0 +a [2002:ce3f:e590:1:1::15]:4031 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3 +p reject 1-65535 +r Carrie foWXuznUx+3Eq/dTi2UxZVotozQ K1EaJXjdl3eUQO5ofXckxz24q4I 2020-04-20 00:52:56 15.188.107.107 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=74500 +p reject 1-65535 +r minotorus fovEOuderhbX7EZ29KXDVfRUuAk gxmIDnr2LVdJYOZZuX8gWLUZJqw 2020-04-20 07:49:52 94.23.194.134 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r dizum fqbq1v2DCDxTj0QDi7+gd1h911U uhPxE1UgJqaxBge93hScWaY44rw 2020-04-20 08:12:19 45.66.33.45 443 80 +s Authority Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r BobDobbs fqqpqaGwuDS3TGDNu84wbKf5FCM P5uxk1zJtB5vkhXBs6VZtlvvHJY 2020-04-19 23:11:16 190.246.222.162 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=160 +p reject 1-65535 +r rulistan fqs4ySV7XqqrtVHGqj7s8vRtqmI h3WpucpJN/35BZ2ZPsjwxzzmce8 2020-04-19 22:01:00 185.183.159.157 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=812 +p reject 1-65535 +r jbone fq+eVbm0BTKvLbW3A5LzDlqhxZY Ufp/aAwnp3yCMhbBb3dzc7jftHU 2020-04-20 05:45:04 188.168.34.90 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2290 +p reject 1-65535 +r moonraptor frhrBXp2GwhScwSWQoY++drK5ug M0J6b+B4cdql5GWbmtELVCDSM4Y 2020-04-20 02:04:18 109.74.206.21 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1120 +p reject 1-65535 +r falared frkf22jq06E4CNk1bagmBXcyFfU 3rcw4Obo2atNpZYIcvD0pZM9UxY 2020-04-19 21:41:15 148.251.81.16 110 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19900 +p reject 1-65535 +r nuruve frw3WoLRG8pVSQKrkhiI2M/Yquo 4O4BccBp2vysXr/5pOuWtegIsQQ 2020-04-20 12:30:48 181.43.208.239 9019 0 +s Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=34 +p reject 1-65535 +r TorBerryPi01 fsohXVsGEdWmEx92Fse2AAN4G3g 7ax9jpFlNIG975TS7bGFSHlmS84 2020-04-20 01:14:59 93.198.218.48 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=760 +p reject 1-65535 +r Unnamed fsuyKinqkL07/fW6UqX2ETQlI2g 2nr7OkCuJFzXg9c6ILmjTw6nF74 2020-04-20 06:43:03 213.219.37.205 9010 0 +s Exit Running V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=62 +p accept 22,53,80,443,1190-1200 +r brattastic3 fs8pTEPblZvcDn78kTw6wjHedEI 1+iaBokEECHa5y28PCjrb5yVsjI 2020-04-20 05:33:05 209.240.109.238 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r niftyentry100 ftPYr6x1D4zAvfjIf+O8uiu+Igk XKqkBPuD1bsEVUAJJ1+lLLF/GZY 2020-04-19 20:25:33 185.220.101.100 10100 20100 +a [2a0b:f4c2::100]:10100 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15300 +p reject 1-65535 +r nanas fuu/7r63D5lJX7+fUyGj4vemKOA TjeR08Lln7iEmMOGFNuHJdunLSI 2020-04-20 08:15:21 85.17.88.177 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=32000 +p reject 1-65535 +r MaiaAlston fvbpmFZCEfuGiB/qJieqkRm9mEI OANj4zXecYhfu2S8qdvCshwhUwg 2020-04-19 22:50:28 31.13.195.248 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2090 +p reject 1-65535 +r captain fwTgica+2D4E+yrhlr3jS4CAlPU f0FhZIUNK2JO3tlhbxsuOFUPW7g 2020-04-19 19:00:02 142.11.201.90 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5500 +p reject 1-65535 +r DevOops fwzz2WwckQAgFJ7qWhApQRfcZ6o nHCgAypHUYjo2JfhxlHJBXXvX3Q 2020-04-19 22:59:08 23.129.64.184 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8480 +p accept 1-65535 +r ToRRTHoRToRRRR fywPsQqMlyUIn0AVCPbT9vU0R1s EVbMjMi//JNfLxTTcxfqtXRJ2hs 2020-04-20 00:44:01 24.118.12.208 9011 9040 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=72 +p reject 1-65535 +r PolishTatraSheepdog fz0g5yok7S69kqqcQwuAW6OJ0Cs rhBq3AIvI7TqygdcxWub/MheU+0 2020-04-19 23:15:36 31.6.70.71 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p reject 1-65535 +r anonymous f06eyCFUlJmRHIchoqRHz568Gqg 3a6sCpdbjnyI7kFiMShSdooko4U 2020-04-20 04:19:01 182.171.233.68 9001 0 +s Fast Running Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=790 +p reject 1-65535 +r tor4ever17 f09G5OhW80Whsh8yvEitxtwNJno fr5JllgnwfwJNGeHkbftwfh0T/g 2020-04-19 20:34:45 45.62.227.10 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=505 +p reject 1-65535 +r TheWindyOnion f1OJjYXBhABjsv5WeyM8CYQC91g rUSNYQi5ub+F6OCpzq7yNNvxInM 2020-04-20 11:31:46 167.88.7.134 9001 9030 +a [2602:ffc8:1:18::1337]:9001 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3060 +p reject 22,25,119,135-139,445,465,563,587 +r Unnamed f1jNGb959yD+541oR0oiTkBQWZI WkrG200XQ/X2X+qlRc3XcN6+A1o 2020-04-19 19:23:38 193.176.85.183 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6300 +p reject 1-65535 +r sharkwire f1lA99ZbB65cLHoV/opj53CLlQ4 ZDt956wcTMqcsl/xazHXqixCuII 2020-04-20 10:17:54 2.205.196.120 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1510 +p reject 1-65535 +r DKrelayasa3 f1viZqvbPnBFEVidqsaNOxsLf7I WWcQtuxIBXhP/gKhHZY1F/NwC/Q 2020-04-20 03:49:47 81.161.163.140 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8610 +p reject 1-65535 +r Coatltor673412 f11acu4FZYbzdDdR75Cw/fQu+cc YG5FIRDxSghRvVTqQdd36nt24nc 2020-04-20 01:27:19 84.142.203.177 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2610 +p reject 1-65535 +r OONITestHelper f2S4T6eIlogEHSQTrWDqP5ymgB0 YBhq2vK8JnlfwoVLdhryJtcfQOg 2020-04-20 11:55:57 103.104.244.76 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=570 +p reject 1-65535 +r Hmmmmmmm f3RdIS/SgXVrElSzuEouil/YmpQ 5AG2YOzz45wdAlB4VE5EDaKAYVo 2020-04-20 04:10:07 116.202.179.148 443 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1150 +p reject 1-65535 +r niftyguard02 f3vnkmr3GNaj3tJNaU2UwdX6zyg Fhyk3loyHDCtEBMYIytQ9nL3gXc 2020-04-20 12:45:26 185.220.101.211 1211 2211 +a [2a0b:f4c2:2::211]:1211 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40300 +p reject 25 +r EpicOnionDefender f4MkSJZTtj9IiGS3rke5vmCRvZU 7nxZV+8M5Qv3oan2JwtOgo5HXTE 2020-04-20 12:44:37 190.130.151.29 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=590 +p reject 1-65535 +r king f4fRQrqRsOIKO3CODDnijo7roD8 tqC6zMbxqa7ccihJpU3pN3JmUiE 2020-04-20 08:20:24 51.89.200.122 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17100 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r pewpewfaaast f5+2vYfZ4hYhc/T5WkE5nWKoQRQ NCTAnxvcGQFClPJLo4Wt7ALgiUw 2020-04-20 03:24:36 104.244.77.95 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Nisos f6P6UlkBqRoTELgXlDZovCwWKJ4 EUlQvMr+zhpWokp/MDZmAFaG+pY 2020-04-20 02:45:56 138.201.87.38 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=62000 +p reject 1-65535 +r Quintex20 f6jn5E8TkqTkD/w7ads7AAkbf9M gzIFCTmZ+SWePM9ACCe4evbzMI8 2020-04-20 10:53:41 199.249.230.110 443 80 +a [2620:7:6001::110]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r km6p31yo f9bJq4OXYbMzS8m6joVDJhuTu4g 2sVr5XB9Xv8cOB+sTtGseQER1V4 2020-04-20 10:20:39 81.182.119.76 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=600 +p reject 1-65535 +r Unnamed f+E+xSOv13IK513heh867l0odEc aO3Ulzp1XOa+vQ7BLb1vjEe0jsY 2020-04-20 00:01:00 185.112.144.53 443 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1290 +p reject 1-65535 +r webbsonTor01 f+gGW8HIyrz0mpqMnccClhN5mac zJPMEd95VvBWtL0ux7Xw/cA/rF4 2020-04-20 10:19:46 51.158.191.0 443 80 +a [2001:bc8:1830:140b::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10100 +p reject 1-65535 +r MiamiHeat f/Gmc6Xh9+nSSVo2wYW4kNvZZVM oKZFAtHhI2cGA67M2xtEZWnhkWQ 2020-04-19 21:22:11 51.83.236.121 7777 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12200 +p reject 1-65535 +r edxred f/I+jQq5naeMgdQeUabiDrhL/Wk cEqiaK/MldpyAV6csFw90xUZvfE 2020-04-20 02:20:48 45.63.116.104 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=268 +p reject 1-65535 +r lebreton f/lDIJY7XNr5oHLOm+6bTx8rODw Fi85bUODG8W9mi6BqvVHprggtEE 2020-04-19 19:07:56 50.7.186.38 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5700 +p reject 1-65535 +r greluc0 gAJnclrws0Jl+2onlas/dDpj3ZY wupXXziJlzCTdAoOIt2RUYrFebM 2020-04-19 20:53:38 217.233.93.239 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4800 +p reject 1-65535 +r snap277 gBejk58JVPV32ZMTHO9oOsduVf8 prnWZa6veytyLQ70P2gP7KV4wPQ 2020-04-20 12:15:18 201.82.102.218 33427 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=81 +p reject 1-65535 +r anyname gB/FRofjgMIm01zX279z/NRC6ms mFFJRM0LeI5UyCKj8608xWJ+uTc 2020-04-20 09:21:44 82.146.47.17 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5620 +p reject 1-65535 +r limitedhangout gC7KnWIyLSFSqh1LsyX7mxaaf6k GeI1uTxRE56vBkY91HlecvzzABs 2020-04-20 05:09:27 145.249.106.102 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1280 +p accept 53,8333,9999 +r GKrvrs gDoK9IIQpjE8mMZQ9N2acWzkV0o H4Oa5VSnfGpfFgfm4eD0oNqwCN0 2020-04-20 10:04:36 174.127.172.185 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6800 +p reject 1-65535 +r Damnation gD+5i6D+FwnAh+kTjMYJbyIIPKU coHlr+KDI+3bO03d6gquSYZ0W5c 2020-04-20 10:45:44 123.255.62.137 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=113 +p reject 1-65535 +r niftyguard57 gFTxBYKUOLAp5yZbsQcPklhwURI 509agn9mGh7soeRRLT9i9TR+eeI 2020-04-19 22:16:25 185.220.101.176 1176 2176 +a [2a0b:f4c2:1::176]:1176 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p reject 25 +r rohtidanoshis gFYIDugitcoaj/9StyQqgsXkL7s OfrQcq+YzL1u9/9UTvM1y9ER4xk 2020-04-20 03:34:42 185.246.128.161 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14400 +p accept 88,110,143,194,543-544,554,749,981,989-995,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 gGc/S+CyW7tDTQemcmCYSYlpIEo DqB0vYtLVyt4SUNe/cDpxYoHKSE 2020-04-20 00:45:56 149.200.160.156 39353 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2360 +p reject 1-65535 +r weiner gH6mSnYdGh/jy9Pq1DIoPJoNUjw mnn4u/u5+1jaY/F9lfRFFtRYF7s 2020-04-20 00:44:24 50.7.178.98 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5910 +p reject 1-65535 +r torayne gIEuOzgNbZpugcfh0ifzY+bLX+Q vwCMk2jqfeX5DhrZV6qbluPqcj8 2020-04-20 11:34:29 208.110.97.231 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.10 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r camus gJRA/9V1aWI531P0XUlYDk5hM5U 3+zIZ++KKJuKjJ8ew136kCyd5xg 2020-04-19 21:49:22 24.7.200.130 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=164 +p reject 1-65535 +r bavarianOnion gJRvL2kWowRnaTqZwDojB8SqYbI jiKScxl+Bs2p2JNaQf5ZhR9yFQk 2020-04-20 03:15:34 89.247.161.22 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=548 +p reject 1-65535 +r Unnamed gJeeyTbkjxviKXXzLxLgaogW5Mo YmncDfK19lRGGdnpBG63EUXGFb4 2020-04-19 19:37:40 167.114.89.192 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r mdfnet2 gKr41ZVqQ8GXEEzvJVDNQtFlxvs ewK7345fX9Ev4z4MfpLr3iOzHjw 2020-04-19 21:21:53 193.11.114.45 9002 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14300 +p reject 1-65535 +r TOR01JKL5Group gKsWfkY9yXfwsC1ogOY9wpgCmHU sf4jkLzX9Lf10AlJzSorXvtRzJs 2020-04-19 22:37:47 172.105.98.201 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8060 +p reject 1-65535 +r ScarletTitan gLLdrjriNX0RhXjIJ0jvVVs5lAk NAaCfZiM+/HlzLXi1ItphCdj2UM 2020-04-19 22:24:47 41.215.242.42 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=166 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r bambam gLj1rXn1YW7/gWa04hKJJPkN6PA XWMzl+aKsbdlZfkhyIOOzZ+bV/Y 2020-04-19 22:18:07 178.202.249.204 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r dizzy gMETvOk1a03s+U589KjAvTFe6Og so1mBswYuWbgV1drTQ+fruVLObI 2020-04-20 06:19:08 80.90.39.25 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r Oxygen gMXWf+E+Ol7b9N1C44Frdj1dQ0s KUvpXhnNIFhILBfF++fkk0za/XA 2020-04-19 23:01:52 94.130.129.15 9001 0 +s Running Stable Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6 +p reject 1-65535 +r Aequinoctium gMf9OWTIyzY9idhf6lhWtv2Mu5g kXC+yExInvz/o8o8ClvXt0EYaBA 2020-04-19 20:44:51 62.251.100.171 9001 9030 +a [2001:985:c344:1:ba27:ebff:fe33:9eee]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=99 +p reject 1-65535 +r default gOPK1pqqnentnLZTHKPXP2+5/lI PBYfkbQ232r+gF6sbL6rpkY85Gk 2020-04-19 22:27:33 94.19.217.76 444 9030 +a [2001:470:dfc4::1]:444 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p reject 1-65535 +r snap277 gOYrLLq0Ht+cJrhqOjdzZyxqmp0 86uUDxis5E1DaMea0woruhwA+X4 2020-04-20 11:18:09 201.158.136.152 39125 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17 +p reject 1-65535 +r snap277 gPZYboEZphvVoKJSXfWC68kiLyg 6BtGLvlnl4dtrWaCf2KlI8PvR1E 2020-04-20 06:33:53 177.98.158.237 46635 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=232 +p reject 1-65535 +r STANSTORNODE1337 gPcvl5Z4Bq1a1MHmHIi0PcR/Zgk PAAyI2O6+8dIb00Cy669z/mtDWM 2020-04-20 11:46:40 66.85.92.15 1337 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3190 +p reject 1-65535 +r Powerballs gPictCoSV6YUXBsdZGPHlcuZpqQ AB81nT/pbAUTcPqlF6/C1FFWE20 2020-04-19 20:07:46 173.249.63.227 9001 0 +a [2a02:c207:2026:3509::2]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8120 +p reject 1-65535 +r Unnamed gPmsgeDGTGz+viZFIsVFYE8sQ2E 8B0r4gcUDlGvRNpr2P1FLNwK764 2020-04-20 09:21:05 46.127.38.176 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=560 +p reject 1-65535 +r rofltor01 gQFCG+/M9MJx1Ug8WqvKrSRbu50 OFviIOK/DniOehiylFCld0PW+AY 2020-04-19 19:16:46 51.254.96.208 9001 9030 +a [2001:41d0:401:3100::30dc]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16900 +p reject 1-65535 +r Unnamed gQFh78YMdA16bvYlQ7SMA682gMg u+gTLc7a5Nf9lgncoDM9qs8BYsM 2020-04-20 00:59:07 46.229.55.13 45869 57069 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=239 +p reject 1-65535 +r thardes3 gQHAfMnn8AHM1/Ox0MrtArwmPYw wZep4HQnqu0JJ3jmDK4uefY79qo 2020-04-20 01:14:07 78.54.213.231 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=97 +p reject 1-65535 +r TugaOnionMR3 gRH+tF7ylQ64+Ev9j/Bwqweu6d0 X4mBgqfJ1Wbh93n4gmfi+0eNfZk 2020-04-19 22:50:29 152.89.106.147 9001 9030 +a [2a03:4000:39:605:c4f2:c9ff:fe64:c215]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=58800 +p reject 1-65535 +r jitter gRb2IZR67lIqVrPrzgB2KrjPa4U EuX9Uw4qFmlr/H6fktnetpvQbLk 2020-04-20 09:03:17 95.81.20.188 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=653 +p reject 1-65535 +r wilfong gRj0wOYMhKRTrM0WQfOnMoy+YoA D60wZ1fm+2XtbTYZm0yO3Ea69UE 2020-04-20 02:55:58 178.32.189.88 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19900 +p reject 1-65535 +r shelob gS0X+XTyzNeq5YWoeXg8Lvlmh94 9TQIQiDaLUNlZv3cdEGY50gMYtM 2020-04-19 22:58:03 23.129.64.211 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p accept 1-65535 +r capeaturtraffic gS+JpK0FlGR9fhpYpQhwUE48TEg BuzpUSpWpQwe0or5czqE1/5kizU 2020-04-20 06:43:58 45.33.47.218 443 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39 +p reject 1-65535 +r king gTjbTxJWnQOjV3HkyBoVCnADE1w vdyP7Y3u2XO4mFPVfQeEC93Pd8c 2020-04-20 05:18:44 51.89.200.110 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12600 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Tor4eghaineebe gUh6TIkoTCmbH8EzHaORDChbbsY z+FlonE7vexPOpmXYPmmD+1JIUg 2020-04-19 23:56:55 91.121.67.146 9001 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.10 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=68 +p reject 1-65535 +r salus gXhFYMYTxfgbPCe2iiNOGgxCqYE 4xg3+csbiV/LAzVJbRwQs5VnK5s 2020-04-19 22:34:23 97.107.141.130 4731 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1560 +p reject 1-65535 +r Unnamed gYWkPhF29iHc2VqgS919GzzOt1w EHNC1sED3tE3M02Tt9Qk4pCULzs 2020-04-20 11:59:48 199.19.225.15 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1820 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed gYhIEHoRPTRCw3rRPyIOhXs5FKU f8nqRdVOiYghe/6Baz37N4kaniU 2020-04-20 00:06:37 176.158.155.120 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13 +p reject 1-65535 +r ieditedtheconfig gZGXVVQ/5y26Ra9OsK/7/OGPbVI DVCi1MmUxEo5yKEEAINjj6PqQ+U 2020-04-19 19:41:11 132.216.54.2 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2350 +p reject 1-65535 +r Unnamed gaF5PUM49s1EjoZNcJD26RQk5ec vZGLpANYAibfA2vWHacLfmZlGEk 2020-04-20 12:00:06 83.220.174.80 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=76 +p reject 1-65535 +r evudalhessempos gaHXd8Aj67He6ef6hzVim6j3SXw +cyPWpudTHqyOAO/hlWxVDbaMUY 2020-04-19 23:39:09 185.225.69.91 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15100 +p reject 1-65535 +r chutney gaWXZicolNJ/6DdcT4OmukU2ce8 QLIKR7w8kE4GfrMF0XPq3wslcwo 2020-04-20 03:19:03 37.252.190.176 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r espinoza gaWwLCy+IqhHD79u7u5X1UZKr5g 1W9LD4C19mKrK36djzHt2hpQX9g 2020-04-20 07:44:30 62.113.209.110 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2480 +p reject 1-65535 +r Unnamed ga2cInb9cff2s1ijHp4qqd71/Bk upitvU4FmtWqXmww0ipQgV3MccI 2020-04-20 12:11:15 81.205.147.109 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1250 +p reject 1-65535 +r bing gbI0hcixONJyeR2vC6+o0VYV0eM uC4qISosSyk69PGujn0Yql7w4zU 2020-04-19 20:32:52 142.93.210.1 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=318 +p reject 1-65535 +r hviv104 gbddU0+Rv7fFerZ9oQvO9iJYKug E6w12eMvzY+EtUKvMEDAr3MZ65Q 2020-04-20 07:10:47 192.42.116.16 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=58000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r InMemoryOfJohnKerr gcVdQDqCv258P729QdECtwiJANk ExV+BFm3XbXM7nFnuEClpB8sKt8 2020-04-20 09:57:28 162.255.84.248 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9660 +p reject 1-65535 +r GoElephantGoGoGo gdi9rrhuFqrsLrSjlaeR5Dpzw1E eVcCJXoXAQdSbsKR6x31o6h40t4 2020-04-20 09:43:41 31.208.8.132 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=120 +p reject 1-65535 +r snap277 gdxu/D9G7DdDacWc6N4TtSIGRtY ydy6XGaJAjK8+4O41gr3OMR46dE 2020-04-20 11:03:02 85.225.75.230 35385 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2640 +p reject 1-65535 +r Stinkyfeet geD2L/Joepah6cTJHg8GdidjONs KPsv5wU7kY01od2G875tCFKrUH4 2020-04-20 10:49:30 104.244.72.99 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8500 +p reject 21-25,119,135-139,445,465,563,4661-4666,6346-6429,6660-6667,6697,6699,6881-6999 +r rosskemp geGHJTl9Yg2lSKu+JNnNJj3vL9w Z8g8ineUJNaW1IXYnloOSU8P+w4 2020-04-20 04:43:29 176.9.119.40 9002 8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=91500 +p reject 1-65535 +r acab161 gefVrqR9ohAwEYKXR13FmgHCkeE ESrQb74p736rZDWStAK/7TyHWF0 2020-04-20 06:23:50 176.123.6.10 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p accept 80,443 +r CalyxInstitute17 ge37yPb1x88K3V+OCLyPq6BAicY 0kSidcm0p2msJwjDgjphTcP+i0Q 2020-04-20 03:43:46 185.220.103.5 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17200 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r frantz gfWeiTbQshBRguS4IArAfZJ0lh8 vmcvj846emafLpslDd2sFoQ5fJs 2020-04-20 12:26:56 37.220.36.240 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p accept 43,220,389,636,706,749,853,873,902-904,981,989-990,994-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r mirinska gjGDzrdUzejnajci14PKAx5+Fgo 849DiiWuuKSpdN+p4nYUTBWJ8/s 2020-04-20 00:24:54 95.141.35.15 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14600 +p accept 1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,50002,64738 +r DefiantDaveRelay01 gjcB1cTF1yw/9TMRPyWhki3tYwM 4vqMNHSD0pUcSwHZ1ybs9cLAVA4 2020-04-19 21:21:19 174.141.200.41 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r noonesland2 gjdcKxrx09O4vOib+uzWLEs6dXc eZzOe9oiq/1Zhk6EUDjAwx3hx+w 2020-04-20 07:34:55 91.65.86.238 9002 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r RasticTor gjnG/c/by5QfMWDoGmowcqN3uyw LPXHQF73AoGpdMGli5Jq7zEXsO4 2020-04-20 02:38:27 85.92.42.43 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=126 +p reject 1-65535 +r snowfall gjqoHid/NmUFVFUiztwvUpzk3D8 YJFLRDpuwpO/l7epIMfookDeXn0 2020-04-19 21:28:57 192.160.102.164 9001 80 +a [2620:132:300c:c01d::4]:9002 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r maddyTor gkBWeeHyriWPuo3UW7KlJzXu7ZE 9hsRRgzjNpSdv/kAWaiXbXl0I4I 2020-04-20 08:15:29 173.212.194.102 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3800 +p reject 1-65535 +r smell gkjkvB5vzpq9fnxJ21CnMOGTPs0 qVSxTfL96BRox+xTHqVzjR80V+4 2020-04-20 01:24:05 199.19.224.84 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Unnamed glrV0zsqXEG8ZHBH1rY6xBxMUCE IlCXv5yx/7U1GaxiixwMA7D13Ic 2020-04-19 21:02:20 78.94.253.253 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=219 +p reject 1-65535 +r schlafschaf gnXOIMU9eexRyocpLn/FjyOPEAw Rrb6fISa3LxowzsyMCuDYuLH65E 2020-04-20 02:56:58 130.180.63.150 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1450 +p reject 1-65535 +r ZapekVixen gnnkR5+uteUy2uU/MXYKoalEcEQ b34kJPGqaVKbXQaJvXavSe5WF+8 2020-04-19 19:08:24 37.187.117.123 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21 +p reject 1-65535 +r noisygerman goESuA0oqSMRqMbHzPNpsxbEB0Q vFtHnFNpCqGnueXIC91Qe44inSM 2020-04-20 10:46:51 95.217.97.138 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11300 +p reject 1-65535 +r snap277 goQUHoQrfMdZeox/Vl6jIC26kZk 3Hn39UwbQANvcjYzvE2Iy7AIFq8 2020-04-20 06:32:03 122.175.75.130 46285 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=337 +p reject 1-65535 +r Unnamed gonVlwcACYbs09iEPdyxy+zzUps aeH3ep7l81ggmM6KnannhqhGcs8 2020-04-19 23:06:53 77.110.173.117 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=430 +p reject 1-65535 +r Unnamed gpaeq3yU121ixOSPNHGgjXGIlpI RTZxru4gYfH9M11ISX+uHfHL96I 2020-04-20 12:14:38 134.3.131.126 9001 0 +a [2a02:8071:3ec2:b00:ba27:ebff:fe64:6704]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=260 +p reject 1-65535 +r snap277 gp4L1eRrOH5uDvDG7sd2oz5Yfbw UrxiIHHgmGW84rR+AglWidi+WeU 2020-04-20 02:28:29 47.156.21.67 45161 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9 +p reject 1-65535 +r AbseitsTOR gp5L2YA50j6Cb+uCLzWpO1TFFi4 B96agWMBr08MQoGQREU28icJtBE 2020-04-20 04:07:43 86.103.8.161 9001 9030 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=25 +p reject 1-65535 +r snap277 gqQKLOS3h8cbKSvTjNAjjobbMHc RSHWHWjI7uVxiHq9mzVyut9kvsk 2020-04-20 04:24:07 5.167.67.108 41277 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1470 +p reject 1-65535 +r Unnamed grMtoVpf5/0bFG5A3D2ymTmVCDc OCuCeb3trK2lT+H5lQev0rgTIlI 2020-04-20 04:55:44 163.172.42.4 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24600 +p reject 1-65535 +r skydiver grlGY/FBl4+yJSoWan/P8Lo6FwE ZKxhMhIR2gf+DYRiPGlvH05oNiY 2020-04-19 20:37:56 93.104.209.61 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17300 +p reject 1-65535 +r busyspinRelay gsvh5wvJOahk6fue+Mea7viBgo4 dnEzU0ZynE60mpat3ig05+JH+4c 2020-04-19 19:27:27 173.192.213.234 443 0 +s Fast Running Stable Valid +v Tor 0.2.9.15 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=11800 +p reject 1-65535 +r hacktheplanet gtOfy8Rq6QSxysBafrTEyPq//eA MocFKf3rY52kLb/108qqLTBAiFU 2020-04-20 05:29:45 87.71.139.47 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1610 +p reject 1-65535 +r eunyeunrouting gtVEpyoQfkGSo8odZJppbrH9AqU QYzhh6gyyDIQVTLWLlWXtwGlbiA 2020-04-19 21:51:33 85.10.200.109 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=90400 +p reject 1-65535 +r Ichotolot63 gtqWeKC65gCHqmij4dbmosQkbW0 1QejYA+QV+9npkgvvrrXJ4TrVvQ 2020-04-20 04:33:09 91.143.80.147 995 9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12700 +p reject 1-65535 +r EVANGELIYA gudRSXwMuSS1b0EuhpKnPjBR29M OX9reppCaDj1AuI39bxtY5vqz3g 2020-04-20 09:07:45 87.121.52.47 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5010 +p reject 1-65535 +r solnettor gumI2t+DBR7OadZK/EdmJ4jYqh8 oXIwFHFGdFzJgWbvEV9RYNUrkiw 2020-04-20 10:30:24 134.3.19.128 9020 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1980 +p reject 1-65535 +r tarf1 gu2a7JQYTsbdKZpc2zN4sEuxdIk iJy8H8dksXVBeQcxPvYl3gRnLmk 2020-04-20 09:15:18 176.9.156.202 9001 9030 +a [2a01:4f8:160:42d3::2]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=139000 +p reject 1-65535 +r rwa9xgn gu7cMeLnhlnt0azro9wPHZi9Kss PfIcc49DicK7KAAqp7Q0ZmmoF8E 2020-04-19 23:43:47 45.79.192.87 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2670 +p reject 1-65535 +r citizen17 gvORKSFfocTmUGOwYMY373vbmfo BqVNqvCkLvVVyMZc5xaflaKuEIk 2020-04-20 04:52:48 83.97.20.101 9001 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=390 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r TUSIEK gzgbn3LXU/P1elOA9sbS6wekg38 AtygGrAdfo2QiBnogtk+Fkg80xw 2020-04-20 02:00:40 45.137.155.56 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2640 +p reject 1-65535 +r malekalcom g0yR3usv5P785VqZw3iWj7ZZEVw 6fU8dOIEk8/I6/I7TG2Z2QHmNcs 2020-04-19 19:34:55 37.187.12.100 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p accept 6660-6667 +r Unnamed g1i92pyaaAtOOigJ5cJPWzYk1cI qKfq0Rm4g42z55MXXeq+yk1FSiE 2020-04-20 05:11:08 51.91.73.194 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68100 +p reject 1-65535 +r UristMcDerpsNode g12IrpkMo6M6SfgA9krOWA9MIf4 jgjkaO/IqJwjum13DwMLrkzJSY4 2020-04-19 22:22:28 144.217.92.215 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10500 +p reject 1-65535 +r Unnamed g1/+ZC76O7eTZmPSNloV0xn7YiY IAFw/8OZY29IWKUq5n1FzW5W2c0 2020-04-20 00:40:28 109.87.25.148 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5800 +p reject 1-65535 +r nidermegator g2RgxyFXeHOtH/irAAESqTYOs6A 5POB5Hyfgr37X6D4XeDRlOoLrP0 2020-04-20 08:41:21 51.158.170.79 1277 0 +a [2001:bc8:1820:507::1]:1277 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19600 +p reject 1-65535 +r McCormickRecipes g3D8TBkNACD6WU2CMt/jS1swrwU YcJU9Osqtq6g9OxkrpagtgeKM00 2020-04-20 11:18:09 18.27.197.252 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47000 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r Brexit g31epRPff92ja+VpxkYVHNpLmTU du/6U0DEqkelU3fNSWsyPTytH4I 2020-04-20 05:07:13 31.13.188.43 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34000 +p reject 1-65535 +r aldabrachelys g4dJ4AZbeQhtErXB14abme7+HbA hckODsnZzGtMSatC4cqlRIKT8tg 2020-04-19 22:50:55 141.20.33.69 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2580 +p reject 1-65535 +r Unnamed g5TzhIbp1ezCN+2EPk5aD5Tsg7c /HEQ6hu/SWgzvh7nFs1X0yoKsCk 2020-04-20 11:51:42 104.210.15.27 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3800 +p reject 1-65535 +r smaug g7SOaMMcE6oS4qn5wcvh2bP04Do u6uuX5DAaDO2IeyRuwhVfioF4Y4 2020-04-20 11:05:22 130.180.51.242 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=380 +p reject 1-65535 +r Champions g7XblApxm2f1v2Fv7snY1Pdk0as WrIwGnN1JkFVL5hEky7fxj4dv6s 2020-04-20 08:02:25 68.14.177.196 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1320 +p reject 1-65535 +r tor4ever6 g7kcL9LtUunWh/MvaOLlQwU9YmY IJIrFMrZGf1TTwgtaKlS6gCjSFU 2020-04-20 03:32:03 45.62.230.82 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1270 +p reject 1-65535 +r snap277 g8zVb3ULpcoE1mK7XkeaG/bPRe0 ZiBizqIEiLMh1fU0pBDIouFF/uo 2020-04-20 09:13:12 94.46.224.140 35703 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=61 +p reject 1-65535 +r PIAnycexit g9D8i2eRBW+u0B/ScXppnT2Xzr8 GubWXXGWNDXhtrtzzK67dTK0Gx0 2020-04-20 07:16:29 209.95.51.11 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r justinian g9v9A7naR2e/WzIIGKqAMYKdkXc IyAIjCb9/DZ6VPvi5+ZPHTatiuM 2020-04-20 04:47:30 104.236.151.160 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=140 +p reject 1-65535 +r snap277 g+3aZO531eMoWNITcZixwCLGGB8 NPQpM2eZ1ylXsQPNaCm2YF7r2ak 2020-04-20 00:24:25 82.225.92.178 41901 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r zhuknode45 g/dbxXiTI8qftVgTp6zWEpHjESM PDQS+p8PR0dTDLIEFX4OSCudpE4 2020-04-20 10:50:28 77.232.149.26 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=760 +p reject 1-65535 +r ParceNode hAAeijdqOwtkXub4B9ByzI1j6gk pKx/9YxO+yyyraf07dhsC59V/1Y 2020-04-20 00:01:09 185.82.126.190 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7900 +p reject 1-65535 +r 8rijgto8 hATouKq5ggj677Fye2NxM62cb68 mQwGVPHHD2PdGT65uDWTjP0zB4w 2020-04-20 03:21:52 66.206.0.82 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=54000 +p reject 1-65535 +r digitalResistanceRu hB3h4GW8qMHr3EpxQGRvR6Yle9g EJWPYBzjigdf0DMwqRU2Jvo6R3c 2020-04-20 04:55:42 195.201.113.193 9001 9030 +a [2a01:4f8:1c0c:7b3b::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r befree hCTy7aufm9FtieHqVktpkj2VGSE c1Lh5wKKXRMjiX/TgxkL4vY8AW0 2020-04-20 00:34:09 108.14.82.24 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r TheNewOil hClOcKX9Y94GfljNBHL69G48JZ8 z9livFA6sRX46VRsnUTAG+CLEZM 2020-04-20 08:38:52 136.49.189.109 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3750 +p reject 1-65535 +r Precious hCsfbEueQfyQWd9nXF31vanw/HM 7E0XzZILMYpyiaHIV90Y7roMKvQ 2020-04-20 10:32:31 95.215.45.188 443 80 +a [2a02:7aa0:1619::ed92:293d]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26900 +p reject 1-65535 +r DidItLateButNow42 hDxPd02iZT2tuluEejPMZGmV9qE +Dp9bFnIo3L4pKhv+YMIVIyxpVE 2020-04-20 00:08:01 62.72.82.222 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1770 +p reject 1-65535 +r Smeerboel hErpytBDJelV4r4VIVY7ef5wlLc bcyObfk+yTIHrLloe41mX2euPJA 2020-04-20 05:32:50 192.87.28.82 9001 9030 +a [2001:678:230:3028:192:87:28:82]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38300 +p reject 1-65535 +r cloudy hFghzY494CPANIO460Kg9aVYLdo kWvCT7EQHl4OR1rV5yuI4z0leRg 2020-04-20 06:17:02 167.71.141.243 443 9030 +a [2a03:b0c0:1:e0::472:a001]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1560 +p reject 1-65535 +r CanineGift hF6d8dM9s2Yvdp6Gg5DCWMTm67k kOOh1gk32H3KpPAQzJNXJDaRUag 2020-04-20 07:52:18 172.86.144.59 443 80 +a [2001:19f0:1604:3ede::3:59]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2630 +p reject 1-65535 +r xinchaovit hGQGJSIaTpYwmv4IELOGRrxg9Fg qPyeHZrCcaDctY6Ky2Rgg3fSWqQ 2020-04-20 03:03:48 125.212.241.131 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1 +p accept 20-23,43,53,79-81,88,194,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ULayerDoe hGXr4BVdSQfEH7C3YhbH9n/bUps 1KCxGfBWSFqgu1zx3bzanXU1DUk 2020-04-19 21:17:30 152.89.244.134 443 80 +a [2a01:367:c1f2::647]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r dc6jgk5b hGs+qvDAf/cvx5rrsR+jrcWPJA8 3Jf69dta2AiTRt84CDmta0QVv7g 2020-04-20 05:45:04 62.141.48.177 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3740 +p reject 1-65535 +r tor26 hHsfhQNE14dkkaVIkvkEk05OuF0 WfxAs/No9ZPCa0nbdHTCBapfPFE 2020-04-19 21:08:14 86.59.21.38 443 80 +a [2001:858:2:2:aabb:0:563b:1526]:443 +s Authority Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r greppo hIUbYXNBqBFjx0vzrY/3AOOVohs 1mtvzurnTOxuU5ENakhL0YiTy1E 2020-04-20 04:05:50 217.133.59.137 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=60 +p reject 1-65535 +r Mellisa hIsaBQ3DX8iY6z+lYtgmcDlE/Fs L9nbDb4OjAGZ1tOSZAkfwSCPlo0 2020-04-20 06:14:17 185.174.100.47 18854 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2750 +p reject 1-65535 +r Unnamed hKdXnjhkCAY+q8Lb2uEnjg3V9qM Fd/EKQBqJm67EIktGwv0ENL6IXE 2020-04-20 00:53:42 178.62.49.147 44807 0 +a [2a03:b0c0:1:d0::102:1]:1100 +s Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r RandomRelay hKjkHQOGWCInL2R9N4r/Sscxh/I 6w/obMX7wV+sTsavdBVGrx0bVjg 2020-04-19 21:01:38 46.182.18.245 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r TorNull hKv2OB/Q+WuIJ2TxdrhZgOvDH+E +oG/hHPDs1T4Z6sowt1W5m3dZa4 2020-04-20 04:12:03 138.197.168.41 20 21 +a [2604:a880:cad:d0::5e2d:d001]:20 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1770 +p reject 1-65535 +r Grexit hK0dshU9lT5n9tiMP7QJnfyMj5o xcuJIwIJgWn9lNymcI5majc2+ho 2020-04-20 04:44:07 185.4.132.183 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16500 +p accept 80,443,554,873,1194,1723,1755,3690,5228,8082,8232-8233,8332-8333,11371,19294,50002 +r CriticDelighted hK+uGSRFQaQE92O6Di8MrYo/rPA 9lX/g5v7rt1Azi/GMCYY/l0EAIA 2020-04-19 22:28:50 47.56.212.27 22528 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=345 +p reject 1-65535 +r bitch hLqi8sO4tJx3FTBmM09dCK02T1Q BPgWdR5QR9zU7CJdO/4jh/nuHxc 2020-04-20 03:25:23 5.39.217.214 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1000 +p reject 1-65535 +r snap277 hLxjx5Rypg1Ns3kuai70/GBgdpQ RNkHeRm5a1THEU80q3UH99MtNu0 2020-04-20 11:11:11 190.182.210.117 32773 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=60 +p reject 1-65535 +r nalca hMAHJ2fuVZtU+sjr5WybgOt3Qbo jEsAOoYxd51cekVnMHY5+oFP+Ao 2020-04-20 01:35:41 51.254.48.93 9001 9030 +s Exit Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6660-6667,6699,6881-6999 +r Neryl hMF/TsV6F9DEoTuZgFp9oyWsEP8 mD66gh2r4Eui3FVnB/pnny22bqw 2020-04-19 22:16:34 178.64.55.45 22711 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1290 +p reject 1-65535 +r Pistis hMsHgsjKgacmPuhvMh7f7MYRNpo gNC3Aujy/ktA/Zk2bdEbkrFpBvk 2020-04-20 08:45:13 51.254.136.6 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19600 +p reject 1-65535 +r Unnamed hNFkqQbNFlx39qScl+L0yhfDqz8 e8AL7WojcOR8W2jTWPN35Y162Gw 2020-04-20 11:18:21 94.27.133.198 60395 61288 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8190 +p reject 1-65535 +r CalyxInstitute03 hNNhtzaozR6IGND8GGiS6Rq3aIE Loe90mbWbi90Nmr9H0W7en1sdMA 2020-04-20 00:38:47 162.247.74.213 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41100 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r kleptoman hNfqQEaCbjErMvgipZJlESGJDq4 41u5FpTYELevQtQa3tQc9jsVS9o 2020-04-19 21:17:33 193.0.213.42 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2230 +p reject 1-65535 +r EnimEtMollitia hN95jFHONnQ1lVYUsx5DKJ4T334 2FQ2PwWvU7O4BEIXrugB2Hb5bd0 2020-04-20 02:21:05 89.65.45.215 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=564 +p reject 1-65535 +r Taeuschland hP8FmDx1N+i89v3PbRaIxGtoRHE JfiAdZqJ+ljUzl/BJFEtRn8WesA 2020-04-19 22:16:27 95.90.110.98 9292 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=775 +p reject 1-65535 +r bartleby02 hQQefF3wQ7A/LBlCGZjxdRwALkk 3dZ6orTqFh5qeadDigpc2NnBYFY 2020-04-20 10:08:04 93.176.184.141 19001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8380 +p reject 1-65535 +r Unnamed hQsMDfwF7kK7Fy3bLzFtdy5clyo WqTP5sMzSnDHpIOukkA8EZsQMys 2020-04-20 11:43:48 185.67.161.99 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r justtesting hRPFCO3eD0hbL5WlV72tc8flkP0 kM7uSZGe1DCtQMAWGFHQvExqv24 2020-04-19 20:21:32 109.238.92.84 9001 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=4 +p reject 1-65535 +r snap277 hRfPcxjRVyl237qcha4xtN6CVDw Xr6HyKmO8Wq9lHSqE31hkgDK3IA 2020-04-20 04:33:50 220.253.12.223 41289 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=35 +p reject 1-65535 +r xanaduregio hTALJqjtTRRb0t9awZl4+APtA4A N1kXDyCPxyyH6+fqA50ZEf9sFp0 2020-04-19 22:59:20 23.129.64.191 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9010 +p accept 1-65535 +r Unnamed hTrFGNCF+xRXD0axJi6ZA0nBjWk HGvyeu0J2dz2kFYeq7wgtltolTk 2020-04-19 20:48:17 173.249.32.194 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17900 +p reject 1-65535 +r torseedslu hT0xKkCXhFNZsuOJIL1spHI9OPU QjV/3AFAFrfcaXUfJQ3SgEmRRlE 2020-04-20 06:36:51 104.244.74.78 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4530 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,18080-18081,19294,19638,50002,64738 +r TorRelayOSTF hT3beLFD1nTKw5nh039Yc0MfS+c f2xRXihoPtP+hx8gquo1ZOVsso8 2020-04-20 09:30:36 90.153.87.71 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=413 +p reject 1-65535 +r KnightKnight hVI5DUPQ/uZ321TGUBGBQpOSAiA j56YWuhVUKK0UFxgCSgrVLsu8So 2020-04-19 19:33:29 2.25.225.42 19001 19030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4 +p reject 1-65535 +r Logforme hVvC2r4kyGHNiH25sulQQktJ/DQ ryEPCnx4FW3uw6rOMHTQ84KVsg4 2020-04-19 22:24:34 85.228.136.92 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59300 +p reject 1-65535 +r Norway01 hWH6fYRrVuD4LLwMeYUy2+nH+DQ m+ppht5bUDLBbIsIuoHIFHPSkiQ 2020-04-19 19:42:38 82.164.239.130 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3340 +p reject 1-65535 +r Hasle hW2rL9ye7Yiie+ImX6a9VInvF44 48GUkqX2DojeWWg3Q52950HoUd0 2020-04-20 06:06:32 185.109.64.191 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r BobsHouseRO05 hXTU929E69KidNqUcyvVeRwIZ1s 6AF6l4FPdgnAViOA3PJXEz8S6ec 2020-04-19 19:12:10 45.14.148.97 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10300 +p reject 22,25,109-110,119,143,465,563,587,2710,6881-6889,6969-6970,55000 +r TubularRelayPiersGB hYvsedc1XsBjHpjUfPFLV2v9bQ8 GGSJsDsKk7cQBtZhu4Y+gRiAKYQ 2020-04-20 07:31:21 82.4.8.138 443 81 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=1600 +p reject 1-65535 +r ip7 haLbFI8VEQpvcJr1bqAvNsuzmws BpyRYV1hsNNt76fe/dVHg8iWK+o 2020-04-20 01:21:43 193.218.118.30 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8090 +p reject 25,111,119,135-139,445,563 +r niftycongogerbil haOsBB4/zXlq9dZTlT1eJ6VuNxk WTJwO11TIBBBcxlHRoZWVOLhyww 2020-04-19 23:32:16 51.38.164.157 80 443 +a [2001:41d0:8:d077:0:1:305b:fdd2]:80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=63000 +p reject 1-65535 +r wr3ck3d0ni0n01 haiFQz5QsYdPEc7JvphFHiRmCXY +WjfcenuRoM1QPg7J5ElEEaPYgc 2020-04-20 00:51:33 178.254.7.88 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r torproxy05 hcjYncMD3Y8NVmZ3/Ki6aliirK0 9vrcoOEpSIEaOX2n0FjNF1cjeLI 2020-04-20 05:23:04 193.169.145.66 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13500 +p accept 20-21,43,53,80,443,873,989-990,992,1194,1293,4321,5222-5223,5228,11371,64738 +r mailboxorg hdQIgUixppVMm//8oBDoXgqoj/A Y/0e2Fu9JrA/wnHMBC1zMg7TTyY 2020-04-20 03:55:20 80.241.60.207 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=290 +p accept 80,110,143,443,465,587,993,995,5222 +r larissa hesfcjZUlg1qjuuWF0lOIqUv0EQ cQNhhnHQ591Zd3Vq8M1qMUvq4DA 2020-04-20 11:19:00 185.236.202.140 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7100 +p reject 1-65535 +r smalltalk2 hgUVZ23x3zaxIS5zPlEpoOt1QjA DOZER9DOAfhQNiHRLmFHpyCDcSk 2020-04-19 19:11:48 82.165.68.165 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12 +p reject 1-65535 +r TugaOnionMR2 hgcyc7Pa5K6nsfj5zDcDXCdpX90 9G5riYBq8mfY8XnhVaIkHmib7y8 2020-04-20 10:01:56 95.217.129.29 9001 9030 +a [2a01:4f9:c010:68b5::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r acidp hg+81tCaCEMIj4hSe/vTjxvHDwo cRr1fjiskkAh+9mKMaaDsK1K1LQ 2020-04-19 23:03:08 46.245.187.156 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=311 +p reject 1-65535 +r itomori hhvP3RSJc5hef+l8dFXJ5KxOE74 xb2SdJLS3sXII3hg2QXd7JDHk1U 2020-04-20 05:37:46 148.251.22.104 443 80 +a [2a01:4f8:201:8367::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=87000 +p reject 1-65535 +r strutzRelay hiP34XVfLVEeVpxS70nXDVcfeiI KQg7wHRIqiIWdZkizcikWDWefco 2020-04-20 08:09:07 81.169.210.56 9001 9030 +a [2a01:238:42e7:9000:ed20:da9:58e:c194]:9006 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31800 +p reject 1-65535 +r FissionMasq03 hijSrMocm+WW3tHfnQCZu9sTUrM RS+rPpv7TypNm2Wo+XVehaTRpAo 2020-04-20 05:27:08 193.32.126.160 5753 6068 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r meinegte hit3/QtQ1+xljjeXvbk62O93g+0 uSwHaLvcySx5xcYNXf5B8qaFmZ0 2020-04-19 21:18:01 87.181.92.92 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p reject 1-65535 +r Manheim hj191l9k8Gk0qM+yKGU+OKBh/c0 fqCH2HP3GBG9azp8ZUr8GkCQE3w 2020-04-19 19:51:20 159.203.85.88 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=193 +p reject 1-65535 +r niftyentry95 hj/do8pTfOA2RrOuvT/RzGsHf74 Hg2tY5iiSejHT+h78++jk8d8edU 2020-04-20 10:51:56 185.220.101.235 10095 20095 +a [2a0b:f4c2:2::235]:10095 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16200 +p reject 1-65535 +r anonkaisx hkYiZpDB1PLdwwIfiZCaJqjDKic KCrU11ZRvRI5BV01F6mJUTerZFA 2020-04-20 06:55:48 151.80.115.180 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6770 +p reject 1-65535 +r Deviant hlYheJoULfwkSqYRabF7vBy+E1o 6NvGqzhoUULND8jATftkXhSvgy4 2020-04-20 01:15:36 77.20.194.126 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1100 +p reject 1-65535 +r Unnamed hlc1jdMHZmSlmJAozrGpL1+TwCo XgIkcjHXYuPBcJhP5z1MnKBf4fY 2020-04-20 01:46:27 94.130.69.171 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12000 +p reject 1-65535 +r privacytoolsIOalpha hmJShSdYQTb+5xNcq331ptfV/zA dwtq6bTxyPJpph2Gva0uTC1y7k0 2020-04-20 05:00:58 145.239.169.62 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8330 +p reject 1-65535 +r osipetz hmNUTSEQfE6sQ36ASYueAu7FwaI lsmQuI4m1mn56btrKtYBFMym3O8 2020-04-20 01:04:09 195.189.96.147 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=82900 +p reject 1-65535 +r snap277 hmx+51utlnJetEB7Qgt/BseH/Rc zex9gBjVv0yHakVFPDOJArEzSm0 2020-04-19 22:03:14 76.99.240.42 38995 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1170 +p reject 1-65535 +r Thales1973 hm+z4u6DqvKaMJ1iVCcExmVrFrs eXV8mwGx0Ar9v0qSb1vlFmnn6Zk 2020-04-20 10:08:57 136.53.97.175 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=420 +p reject 1-65535 +r frickySpeed hnZj0Yj9pY7rgoUOb0xPgtK2Z70 qNh95GFF3WW0RKAb9qyWd2SUhNk 2020-04-20 06:02:33 185.205.210.245 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=610 +p accept 53,80,443,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r roTor hnmCrc++VewcAKWzTImR/4dgWQY JJHZ9bdV7Hcaw1pLMcWmFyHLHp4 2020-04-20 02:07:53 82.254.147.227 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=70 +p reject 1-65535 +r trans hnnLr9P0R/npzQWlcBUBJIwkqk8 APdbV6QmuIyN9DnhIC3bDbpxaMc 2020-04-20 09:19:06 144.91.106.72 9001 0 +s Fast Running Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31000 +p reject 1-65535 +r bitmessage hnrffU6FWfNPs5IOJWsuyFjRG+k sF/mupy95gxTd6kcrG/crqcOl9M 2020-04-20 00:13:41 146.228.112.252 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=426 +p reject 1-65535 +r patatilla hoOZOwibUIyDrBFTeK76IqKXM+Q N5EqlaiS6Al1WLRVR2MBm/QE5mU 2020-04-20 11:31:12 79.148.210.184 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r dc6jgk4 hoolPDMPQPvkNdkyCEk5f4WCPoY 7WoZ7QbLpRRyB2JMYD7kBu3/rYU 2020-04-20 05:59:02 195.234.152.86 443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=370 +p reject 1-65535 +r snap277 hpB9Na4RR6HpYQKTcdGiOCOFmlQ C1/6O4Frcu192kbFNJSMUHy5kXM 2020-04-20 05:59:44 85.72.105.25 33681 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r torrorist hpk3FBXcBSpgvKOq1o5V2bdZyuA PVWB4K5gOK3Cu2m2x3Pg4FX7go0 2020-04-19 19:11:54 193.138.118.3 50001 50030 +a [2a02:2928:a::3]:50001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=380 +p reject 1-65535 +r RentonTor hpmbveV3CDvKb+TuIim8Ox1YvQc 19e5UVDCqqh2FwR4EyOtfa44AWs 2020-04-20 02:35:12 94.114.155.242 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=480 +p reject 1-65535 +r hjkoiuyt hp4EZ6qHSRm8p/VphMdCLvsy9qY d1lvgCxlEaMQrOjRlfifEleCNn8 2020-04-20 04:24:57 93.104.208.119 143 20 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=732 +p reject 1-65535 +r electricdreams3 hr8ytgbxMxqk3SCV1UmDiqFDVUU 1b3cA6dciWkVJADJk6R0EmVTffY 2020-04-20 11:36:33 80.211.24.208 443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=740 +p reject 1-65535 +r TykRelay05 hsKBrRNQWCONejN9VGyQK+hQXd4 kfe0HSP9Ho3GqwHN1tKfVIwGiZI 2020-04-20 10:09:15 185.96.88.29 443 80 +a [2a00:4020::185:96:88:29]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47400 +p reject 1-65535 +r Unnamed hsf4rQNkiM0nwjNYxFyltb3Zclg 83t0Y1my/n08v+N9tOTRvhp5Yl4 2020-04-19 21:04:15 87.121.98.65 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5710 +p reject 1-65535 +r RyderIII hs3Q2Sq5clOEFqOC2ZZmc2zd8UE ZlZLS3VlsDEkaFcCodTfDtvuvCA 2020-04-20 01:45:49 88.196.252.84 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14600 +p reject 1-65535 +r mnesys1 htkk7eFJi04d0I0iYPPp/kVAEuE V9yeyxgXm0/2vQWi/X5CTSz76jY 2020-04-20 08:43:00 193.30.123.113 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20900 +p reject 1-65535 +r uovobw hvKCjLSwh1UVYH9OIJeVFUK3E+8 kD7y4XbQikvxNGWAozcInZFLsP4 2020-04-20 12:06:22 188.40.49.86 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=915 +p reject 1-65535 +r Tor4tuequeeg hvoCPGdqU2N6OPzHihDXO0p5gDs 5P5jh2Xsw0gQIWltQJdhsakjLrs 2020-04-20 00:19:50 139.99.194.157 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=37 +p reject 1-65535 +r Potatoe hvunU8jSVlPghrmP/4qghPhi22c nHCsKP8xDZYLfbUyexFnLPauJzk 2020-04-20 01:30:11 139.162.232.28 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=789 +p reject 1-65535 +r brokolimc2 hwHnCsTAyeH+R+qFP8mX0pvl1lw AJcFHQ+VunVpIeAPcyeuby48ips 2020-04-19 23:38:53 95.217.0.139 9001 0 +a [2a01:4f9:c010:4eca::1]:9001 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13500 +p reject 1-65535 +r garin hw2RSKJfhME49y3GR6vDkO00ODs TfHpacUiF/4NqscqHpBsXzGyZxo 2020-04-19 19:40:14 45.123.118.101 443 80 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6100 +p reject 1-65535 +r griffin hw6X5YRtgwjqRppbtaUNKDhQPb4 mE06rCOUNhESZdP7sbZSfDi/nAI 2020-04-19 18:53:24 184.145.159.237 27015 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13400 +p reject 1-65535 +r snap277 hw+U/g4oclNONj5+lNCbFVhsq8Q QXk9Uq1LxE3HrCqP8I7HMrgSgGI 2020-04-20 11:50:47 89.115.43.188 46273 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=539 +p reject 1-65535 +r tulsi hxV30FK9QaWuZ81jsMHcCHX2Od0 cZioGzz0dDYL06HQtowfcxHv3ZY 2020-04-19 21:18:55 178.128.239.129 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=522 +p reject 1-65535 +r TykRelay03 hysYdhlTJUkU93xxhG6KJiPFJZE C8KA4jYTTV3YvklVXjdvlo0ra6E 2020-04-20 02:37:47 89.233.43.74 443 80 +a [2a01:3a0:1:1900:89:233:43:74]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p reject 1-65535 +r FissionMasq06 hzV/zCvywh8GlxQ4G8psPn78vV0 8bfDHTz9aQNkVxTmWudq1wi9TjY 2020-04-20 09:27:02 185.213.155.172 10750 20753 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Tor0x800 hzcwfehMJiHmOZ6ZEjlnqVkCl/I ild4KtiTCs6ICfowDEf0bC2hPmI 2020-04-20 06:38:37 95.168.216.152 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24500 +p reject 1-65535 +r Unnamed hzgytKdHDtI7AL8RoUaW3VW75+k UbV/PiVuIROW2jLSqRih64FnzCE 2020-04-20 11:51:44 198.98.61.103 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6770 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r glenda0 h0zn5zKjYoow7ku3E/pF+L4/MsM l55mhezgzRj3rdbu+VX5jdTkZN8 2020-04-20 09:33:42 88.198.101.33 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 FlowCtrl=1 +w Bandwidth=54 +p reject 1-65535 +r Pacbert h0z2PJmotGqlQ0JUWDsKgIbNW5U jrv2o+AwRnu80/MN2jCgqReeCMA 2020-04-20 03:06:03 93.210.7.164 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2780 +p reject 1-65535 +r Spigen h02EOCyJLz9hzJ4Qa/CIQ94Lhlo 5mbGPsDxOjdo19Zrew9A+kKlz7U 2020-04-20 11:29:27 192.42.113.102 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=110000 +p reject 1-65535 +r Marsu h1CpRt1askrnGkCxunZyA08kZj8 VyF5sw014cw7BF9OXDpqjlX8yO4 2020-04-20 10:59:49 173.212.199.160 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8300 +p reject 1-65535 +r Babylonian h190o9wUc3vsoG+LUAAiFU0aKdE xwVKcxtFxExTGWp5Ak+WzN4QdFI 2020-04-19 21:27:03 78.82.251.153 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37000 +p reject 1-65535 +r rainbowland h2x85Dd0NmJQ0+do5pDaudS11aM tNkYHPiCKfZh+BFt/gf/OUxonLM 2020-04-20 02:01:07 37.218.242.26 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r Unnamed h4Z2ctcM/ap6IlQyaGG3bGMskmk lziof/avEvj/UTtINoBGBrnc/Cg 2020-04-19 19:54:50 68.149.43.226 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18 +p reject 1-65535 +r TrinityDDh39 h5Oa3t64kQpDCXCOr9s5SpgzUxA Ds83+6sjnwMnhlxGKLGrYJpM4mA 2020-04-19 22:06:10 79.254.19.190 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=722 +p reject 1-65535 +r CourtesyOfBigCorp h5UL4OapspRMdKbFytSGEDhKezo 2PWcsLJ0y0CvyMMv+s+ncGIR+wA 2020-04-19 23:35:31 132.145.48.73 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=49 +p reject 1-65535 +r UnicornRelay h5h8i4WutzqGamesaWEUz+J+fnc A9CPg9uclS6kzP9/sn9Bp8kyAKU 2020-04-20 02:25:36 84.138.55.15 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3000 +p reject 1-65535 +r cp1 h6LqvqsNfk6wAqQtJgAPXLjVuTc q+soh7njacUVpKZRRLvpkKOX+uQ 2020-04-20 12:34:33 54.37.200.157 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6920 +p reject 1-65535 +r Unnamed h6S3qFRCnCuBeW+qAaAbx8Eh8SE s/3JdgGiC2XOGeaV6tH9z8padUQ 2020-04-20 12:25:35 198.98.54.61 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5450 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r PythonRep h6nT3nQgw4aExAKjI7XwpCD/3YI Fm4SYCtrPkoVNdBM2Owzc7shiTM 2020-04-20 01:56:03 51.83.217.201 443 0 +a [2001:41d0:602:e33:d6ba:abb1:755:1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5630 +p reject 1-65535 +r BarryBen h6ob5KOVKd2GGUc437WdxpjzE2s 4Ikh2h+pMZkx4e/Cl8pl2oEfAJ4 2020-04-20 00:53:43 52.205.15.239 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r f89g65f21 h7NVfz55IhfivE6ZI+rKSuxbqcM 6mTSrqvc3mavYATeNuHMqCPjmYg 2020-04-20 07:51:04 82.131.65.94 9001 0 +a [2001:470:28:872::44]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=880 +p reject 1-65535 +r FreeSpeech61001 h7uVlc3GxFPp6iNcadESQhotDpQ 0e5iShJRCwWbRZxooVAUlATZ8ak 2020-04-20 05:09:58 87.177.73.175 61001 61011 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=508 +p accept 22,563,636,873,989-990,993,995,1194,5222-5223,8332-8333,11371,50002 +r Unnamed h8CN39MsYvPFbTcfl3TSe/27gHs ZeZ6vtQWhnaw4rbNfSWnHub7leA 2020-04-20 11:40:53 23.81.66.90 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33100 +p reject 1-65535 +r mbdy345 h9JintZk72nrVCCU88yXPT4KZTA CtsEed6ZUfe5hgvznrctogS72Lc 2020-04-19 22:15:46 216.126.228.62 53001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=75 +p reject 1-65535 +r Hack2G2 h9KO4MmTslDvk9vk0ssOMCRNdXw znHyDncd+AaPAa+jb6ftVOgIIj0 2020-04-20 09:13:49 91.121.82.132 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p reject 1-65535 +r niftyphoberomys h9c0cf3GS9nO34RDXSDKTrXDb+g jDBQBYVKZGwmyIF1/f7CJ4uZ1Nw 2020-04-19 22:16:32 137.74.19.201 20 21 +a [2001:41d0:203:1c74::911:c78a]:20 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=67000 +p reject 1-65535 +r FreeSnowden h+o3zC8VcOtQDEamkeUFpwMmvTY XunKJN9+XH+xbVCxlRRuGtF4nEE 2020-04-19 20:04:22 139.162.19.233 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=328 +p reject 1-65535 +r wakka h+qGIKE2jxnEOgNxFfFUYclIezE jpzqYqjbC6qFl/slsRlAl1pPu58 2020-04-19 21:25:23 194.88.105.97 443 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5 +p reject 1-65535 +r wheel h+qLQhNtH5AUvjd7K5hUWdGebnA OuRjqjZZlBG253SxdNuxvIlr0+c 2020-04-19 19:46:18 50.7.117.115 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15000 +p reject 1-65535 +r TarpNL h/BZYVT+Mb7vAz74oMBUyDJ5+l8 jcNXWgqKzju4LLaYi0GxqSqkQp8 2020-04-20 03:39:32 188.166.8.152 9001 9030 +a [2a03:b0c0:2:d0::4cd:8001]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=574 +p reject 1-65535 +r Unnamed iAxaMKrgA0Og/t2alyyuFrAmWK8 zx8/hoY+Gah1VQULLQEADoyH3Sk 2020-04-20 11:10:19 51.83.171.238 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9300 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 iBR9wTSJ1I1aVuN3UE4Cp2Y/F0k fjMSbg+xz5fJRDjFwF25CtTQhow 2020-04-20 09:56:59 83.134.227.221 38321 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=416 +p reject 1-65535 +r relay2 iCSfGHNzedrIcYXl7HVibrH0FOs Yws4Sb7dTMQjbkce8S9xRQ5mC7Q 2020-04-20 00:43:34 23.157.160.195 9050 9051 +a [2602:fe2e:2:2:18:11ff:febd:583d]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10200 +p reject 1-65535 +r sexytiem iCaYssocPMizR1FHi/uQzoTHLzY DWsFPOvI3W1KkpPOf7DFdlXo+rY 2020-04-20 03:42:29 95.216.107.148 19731 39030 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11 +p accept 80,443 +r DROPINJEEP iDRonxYiRcXiLdY/Wmuzq2b54fo qO4D1B/Wyx1sDBJBed27KLskifM 2020-04-20 05:49:14 31.220.2.132 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Anbarocrator iDi56PcOELWJVCfTcKZbVVTD8l0 3QgZ7K7zLLDea4tWbgzyg60V2eY 2020-04-20 08:23:19 78.36.32.17 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3710 +p reject 1-65535 +r niftyguard49 iDno++KCGbhTku6lpNvEHTFfS4M qv0HRiPA7cAOHZCpXuvQKEJQrGc 2020-04-19 22:16:22 185.220.101.168 1168 2168 +a [2a0b:f4c2:1::168]:1168 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p reject 25 +r 0c364ea2bbd1 iFdtbS6zWPPGW/vZAmwLvqJrV/Y QWxr7Nq1qv5zxgXEr1uEaZWrtCE 2020-04-20 08:16:11 51.81.253.207 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18500 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Ui iFnminyVvVq0A/FtrZJoHhhNNxA lJ4BSdgU1Q5L+B89SMXrJU0LTxQ 2020-04-20 10:26:16 195.154.226.135 80 443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=30500 +p reject 1-65535 +r 42e7b73f33ff22cfc9c iFz7aSHm53FrtkeDNI3bBuF+W1o IVDvGQYLRLz2Tae7uAnmmJ4NRwM 2020-04-20 10:33:11 51.38.98.5 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r function2 iHKFeuraiPXeAlw62mTCJFdtkPE uFuOt+BnDpBzhLaPfgj2aKeqsYE 2020-04-20 01:41:10 87.239.204.111 12001 12002 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=79 +p reject 1-65535 +r autsch iHRhoz/ysCt27RKQX9lb8NhhZjg 4EJZfyS3RdYrZ5vBUwVzFAMbf94 2020-04-20 04:28:07 87.193.208.14 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1850 +p reject 1-65535 +r PowerRelay iHSAUoQ8yToCvh2em1s1irOhBKo gxUfYfd+ub9MqbW90rcBgT0quu0 2020-04-20 01:23:49 178.254.40.158 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=63400 +p reject 1-65535 +r TruthSeeker iHVK+baoIGFOFP6PH+pCMXnoCX4 AcnjW4Z5r44EEkvMy3zDmp5hEKQ 2020-04-20 10:58:15 8.42.76.68 9443 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=310 +p reject 1-65535 +r niftykostchtchie iHyrUBqdtoosRO35i/ULAwTu2LY MvM4vPVJ5rZoRCSU3cQNl65CBOE 2020-04-20 08:55:15 185.220.100.249 9100 9101 +a [2a0b:f4c0:16c:6::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40300 +p reject 25 +r Karadoc iH4rc+2hCcCa3r1rHniP32IGRrc ISg4sSU2RD/Yk76YU4KMLBNC4bM 2020-04-20 04:52:47 137.74.169.241 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21600 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r KchRelay01 iITrqEAdBvAUOZ9IWiyqDP+oUw0 0B9Vk9JlOqK0PDa5aA3Bbmt7ERI 2020-04-20 02:23:32 185.193.125.140 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r Unnamed iIXqb3SmlIJbE7inCA9s8WTfdPs +htBvpJn38zJncj7eMkuh6PfaLY 2020-04-19 23:48:56 144.217.95.12 9001 9030 +a [2607:5300:201:3000::49be]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12600 +p reject 1-65535 +r eclipse10 iIyRECM0f1DL4lc4yJPjV8LJK6I +fntfK1/iPSZnKGLpYF4m//pzb8 2020-04-20 10:37:53 51.83.217.207 9001 0 +a [2001:41d0:602:e33:eea2:156a:3eef:1]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4630 +p reject 1-65535 +r king iI4+ZJZi2xh+jTFW7Xjxp0++WYk p/5FPyFieEPqkUFlBgPMljVN5JM 2020-04-20 05:28:54 51.89.213.94 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16800 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r wyxtpthllRelay iJeN4HEWp6xEMV0kLhZ/YM+JKPk 2E6G12czvKj08bOm8ncpJzRCkEw 2020-04-20 09:34:48 87.239.87.142 43617 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6200 +p reject 1-65535 +r snap277 iJ4nOF48FROh3Pv0gok9FXw0vJU NuoHiYHUrkFcs3cyD80MLQc1f3c 2020-04-19 19:39:21 60.153.229.69 41963 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=269 +p reject 1-65535 +r Koshaq iKGJYK93Nf1EiTdKxBH7v+l0OiA e5V40pmkxkfjF2M4MlZbmm9Qhhw 2020-04-20 09:20:42 77.37.218.221 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5100 +p reject 1-65535 +r snap277 iKdv4czAO1DR5vJd5NjCb9yJ8X0 spMOGjmXAozxnKs756rrvlm7vWM 2020-04-20 10:56:17 181.84.151.108 37295 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=141 +p reject 1-65535 +r niftytamiasaristus iK47wIg5bx0/zE8vWIwNyDdZnSA UTLPhaXcS5i2HbMVkSLYEwm0LC0 2020-04-19 20:27:10 185.220.101.33 10033 20033 +a [2a0b:f4c2::33]:10033 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34500 +p reject 22,25 +r RasBifrost iMYVrF+Vkb/UjbV4slK4mnL1w6s EcjWvSku5Rxa1MATThifc6vVcRo 2020-04-20 02:08:00 84.170.26.131 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=580 +p reject 1-65535 +r cryzrelay02 iM+NQtSbfI6dA6vl2uevJemQIAg 9Wae3ZIrhHhhOQMNZCSmhZHCwww 2020-04-20 07:39:39 82.149.227.125 9001 8443 +a [2a01:440:108:11:82:149:227:125]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r DiraE2yhvB iNXwvYf5vBqW/L/c7bHA5rqx0U4 8zUNRIA7TEUHHAW8xouvPsPOyV4 2020-04-20 07:00:59 98.128.239.73 1025 1026 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5800 +p reject 1-65535 +r Privacyignr iOCKMrZ1pyVtsaGLyAAe8mvy2YE zk62mZr5yd+HtsY3kvJW9mxKpUs 2020-04-19 20:38:00 174.19.106.27 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=226 +p reject 1-65535 +r goesta iOLSWmbtYwMPJYGfStt9GvDlvXc U6WKGeolc6KXof4CjIVKff60bSA 2020-04-19 22:08:21 31.184.198.152 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6650 +p reject 1-65535 +r Unnamed iOnZO11v5LFQv3IdjjbbHC/5Lyk TJTNFMZKkvVNyvVy6M7etseiMUw 2020-04-19 20:46:21 80.211.172.119 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=290 +p reject 1-65535 +r smell iO9IdWoki6vrXJnrkZN+x01KdV4 VWHEQBiTxGZ81eKd83XNUtH08y0 2020-04-20 08:18:18 209.141.52.203 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r snap277 iPEwIfVF8lANrjBh1QA0jDEGHs0 wf0RooNyPvJrPd18avlxfwFoZGI 2020-04-20 11:22:54 71.199.212.141 43529 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=231 +p reject 1-65535 +r sprockets iPc73b6HgOLsfSjS9DH1fsj9m1s bKOCFLvJdawUlABzV9ZYYtU7gkE 2020-04-20 10:29:49 137.26.220.250 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=820 +p reject 1-65535 +r raspitor iP19WBCJPnLnNU0O7cp6fkeQx2g V6kfAvwao5XJnNxQTDKSyWBkq44 2020-04-19 21:57:48 83.163.255.139 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=491 +p reject 1-65535 +r AnonBrasil00 iQCTsOAQKSbsteifAyvc+bJ4GQE 8jVr7/JuokZZ/ZK5iU9dLFud46o 2020-04-20 06:14:01 191.235.95.166 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=380 +p reject 1-65535 +r ilovecreampies iQSA4U5jTItEZ8R141Wm+/PZnNU LFH3EvPa3GXwkIHExvqDtpPlFkk 2020-04-20 05:10:13 79.172.193.32 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39100 +p accept 53,80,110,143 +r outbreak iQUwxbUQpQb1zyBu/sFZX5bnJ6U H4m4BQkLTHjv0ZZgNdWijC3EAao 2020-04-19 22:22:56 51.15.230.39 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15100 +p reject 1-65535 +r TheWindyOnion iQlN+kFYx6FYPsOjMs3Lx0oozA4 8/SQ39zFW76YhqywM6nLSPNEaVo 2020-04-20 11:31:49 167.88.7.134 443 80 +a [2602:ffc8:1:18::1337]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42000 +p reject 22,25,119,135-139,445,465,563,587 +r frolix8 iQ8yuNz8Bw5Y9dUK6Owr3gEBNGk xbJzksXE//pAGEMxkUOJF8xTBpo 2020-04-19 20:56:18 153.120.42.137 110 143 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=260 +p reject 1-65535 +r yomi iSqCe/Z9snDjA2d6M/5XcGnd5Vg ICByk92dN3q4qh1ePzorLmMvJ2I 2020-04-20 09:37:46 104.244.74.97 443 80 +a [2605:6400:30:f8b5:620c:dc25:c624:aafd]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14500 +p accept 43,53,80,443,554,1194,1293,1723,1935,3690,4321,5222-5223,8080,8233,8333,9333,9418,11371,18080,50001-50002 +r BlackBoxx iTn+32+3RP2Oaf9s5HMxjyG33a8 iPO0ikUZqvbRYdcYYCaR6+/qdvc 2020-04-20 08:21:48 118.127.108.136 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=80 +p reject 1-65535 +r Venom96669 iTuuQ+rBUHxfvQRsMlND1Y/ARYg NqrfL0o9EX8Yq8jnJKzLtf+KwlU 2020-04-19 22:07:03 62.173.139.157 5091 5092 +a [2001:470:6e:80d::2]:5091 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5160 +p reject 1-65535 +r GreenHostVDSL iVHwDk8b8g7kg+MLzz+N5+IppG4 UfmqUAuoAFT25iXFv8yudWS3H4M 2020-04-20 12:13:55 79.229.223.254 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1400 +p reject 1-65535 +r a0cator iVxDP8GPomow7pjlBAHieCxAFZM 47bKlBTtiaMIHQV4k3lwQDlLh6g 2020-04-20 07:04:41 174.89.48.229 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1100 +p reject 1-65535 +r blackmamba iWNkt5lvXfug4V0aLgbQuYtVXdY LQk9Q1I/o5MNMgfNFHTh1Xk6QOo 2020-04-20 12:05:39 195.135.194.134 443 80 +a [2001:678:7dc:134::dead:beef]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=7740 +p reject 1-65535 +r Fuller iWfXtzN33bB2LLdHs/iJd787PTM GjBCmStMkLmmJcgApXbB4MyUoT8 2020-04-19 22:36:34 41.77.136.114 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=140 +p accept 23,43,53,80-81,88,143,194,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,991-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap278 iW/SmUxIM67DfL1D3IXEQVcxm/Q z7irxLY2uny7TBfr6a0SMUg9yxI 2020-04-20 06:29:56 90.21.229.206 39077 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r heims iXpn281+nVw7X9GTSUM+ImOgHQg OgA0S5VyTDcoCzKWt8pxCYwFLeM 2020-04-20 04:47:51 78.130.128.106 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1100 +p accept 20-23,43,53,79,81,88,110,143,194,220,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r TorMonkeyRelay iXqO3yC/EnN/2CduwJGemfBGMEU qA3nFSxXxYmBLyr1rnoiSLkUG9o 2020-04-19 21:23:47 188.173.170.16 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2390 +p reject 1-65535 +r lavillederobots iX671bUyVVng42UHkvaM4GjaaeU rblOmmJ7h3Scmokd9G6P7O6FdgA 2020-04-19 21:30:15 41.215.241.146 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=223 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r DangerZone iYqpoX7LsF/qT+dBi9HGT0XZphQ k4qRBO73ufNU8jzKdJMf2oA5BvU 2020-04-20 04:25:12 172.104.138.137 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14000 +p reject 1-65535 +r wsantos iZCuqRmsvBbmnVvGFqKfj4Kl4no +fg5k5Xxbw9zb8PO/xEz0G7B47c 2020-04-20 10:42:54 62.210.149.16 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=82600 +p reject 1-65535 +r Unnamed iZIzigPfksUxi5kkOee/lZyW1vY oFhAOcn8rWSlrC+4Kbi/01SgwIc 2020-04-20 11:38:12 51.79.53.134 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 25 +r OldMug iZfkX9h0NA05PYcY6S9D4UsqP/4 lUvwHpatbMl06HjyL7uyTMMbhdI 2020-04-20 08:18:35 212.111.41.143 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=480 +p reject 1-65535 +r piratecantina ia5flsuXkZ7xOxcuDk4stQzDPxo itlIE98eWQE80CenrW7R9PCIo4Y 2020-04-20 09:31:02 195.144.21.182 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3920 +p reject 1-65535 +r Unnamed ibLjiNEU36PoLOg+FJaJLcnxVH0 DS/fpN4EV4UTxC6BFeDXcjuqDfM 2020-04-19 20:09:38 173.88.171.180 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=437 +p reject 1-65535 +r king ieV8bMNm2vBIVISX2smFFAsGXA0 sFeebI0AzmsVh/12FHgdP1S4Gi4 2020-04-20 08:22:17 51.89.200.125 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20500 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r tormb6 iem1tcquTjiAFGyK/kdm8Vpx7lU +M0O0Fk1xlq2B2sh8QnhErQOy08 2020-04-19 21:48:07 3.134.247.200 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=734 +p reject 1-65535 +r UDunGoofed ifviGmgBKSz96ON9NggUYWIpxWE xu6HlrgLwUWOruSwO6K8p6W2xoQ 2020-04-20 10:01:36 167.172.238.42 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=224 +p reject 1-65535 +r VisitFrance if1PsqX9c7UPLl2FxHB4g/jNUTA ILjhK2AW42lHUxtqi5L3g4vetso 2020-04-20 01:29:42 51.159.59.174 8081 28192 +a [2001:bc8:1200:8:208:a2ff:fe0c:73c4]:7712 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r ddetor3 if9KCBjYvp+LcTONlqa4VPd/n+w yJ7wwbPUiyVGebGUcL1h64YSf2E 2020-04-20 01:27:36 5.9.18.2 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1500 +p reject 1-65535 +r FreeAssange igDOlji9tGhrkfHwsinbP4ybhBU iqN69e60X49JsixHZxYqwyV2tzY 2020-04-19 23:17:39 82.251.167.192 443 53 +a [2a01:e35:2fba:7c00::33]:443 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48000 +p reject 1-65535 +r delpin ighmqsqN4pJvQEm9fwoQGRj6Y8g E7nY9qDr5eOAcdPTCyOBCuJ5J4Q 2020-04-19 22:16:04 81.191.94.162 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1770 +p reject 1-65535 +r kyu ihZ5cbrmktscyruSY1FprnnJl1M BkI2IexwvXg6ALBpjIJDbMBgG/I 2020-04-20 00:09:44 188.240.210.20 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=580 +p accept 110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r idideditheconfig iizPmjVO+JwIywri3X9+hBit9xM WiU9V/af+77ONYNAf4jX72t5oys 2020-04-20 10:37:08 139.178.49.166 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5620 +p reject 1-65535 +r weizenbaum2 ii1xy8oz8To+qWFN4orj9mnYSYc aIi0mEuqwoUctBPdNcDf+E2312U 2020-04-20 05:15:58 62.102.148.68 53 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53300 +p reject 25 +r snap277 ijRhtiGuMgF/M7wZ8h9xD59ULrU DN4sduRvUYfAPsxlk5IXkw6I0Bw 2020-04-20 12:28:06 86.254.115.164 45881 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=235 +p reject 1-65535 +r zwiebelkuchen01 ikyPxtYzZeBOy0sY72GppSk26K4 /lmtcoLKIPztoOhpjwnyNJxmvZ8 2020-04-20 11:30:46 193.80.234.214 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3 +p reject 1-65535 +r Michelangelo ik19NftNNhPfDSZMrxbPDaJwZ2M r2LhQP8n0ztT2C20c94e2jFfBrE 2020-04-20 12:33:19 200.122.181.2 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=89 +p reject 1-65535 +r king ilR/LzbkQFJYbIhWBI9ybORPa/c hODOd0n8DS6RmJQacWfgH59dA/Q 2020-04-20 08:40:44 51.75.175.28 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=23300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r treesofmossspa ilfaL/tbpJwEHt4aCV4z6G6nVsw Ll2s09lCXsajHdSY2YBvp+Kotzk 2020-04-20 04:39:38 46.227.68.106 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p accept 3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8232-8233,8332-8333,8443,8888,9418,9999-10000 +r prudelta il58LQmDWXS01YJSutUf2K1U+c4 62xQzo5HpFsh6zw9ajF12oKx/8s 2020-04-20 12:20:45 85.214.160.49 9001 9030 +a [2a01:238:42a9:c100:44f0:bb64:a1fd:835e]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15100 +p reject 1-65535 +r WonderLights in7SoVvlWFUt9ayVwtvcDeBiGvY SKFu81wHKb2qWzEqvk6uB0O49tA 2020-04-20 08:00:44 193.118.34.130 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed iptb1bNWoB26tnbj1BKLjb470f0 WAldlMRnwWoK2uR5+RgramcjEKo 2020-04-20 09:18:39 102.37.15.222 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=354 +p reject 1-65535 +r UDEtor irxNX2GCx+ebCH0e2eXPZSyD5Sw spp8W+TAhTxDVv4qvXcfAtATeME 2020-04-19 19:28:25 132.252.186.185 443 80 +a [2001:638:501:4185:250:56ff:fe85:bc64]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=70400 +p reject 1-65535 +r 3bb3b705758b isNwpOw4oTnUDCdiscTXVxchISs rJNYn1xiP6Z/XZ4S9wP4utG/niY 2020-04-20 08:07:55 51.81.254.15 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r KleinesZwiebelchen isWX34BuxpZOa6BHyP2/R/fV01s ADLx+JuXphS34I101YCUR+gFKus 2020-04-20 09:53:04 95.216.190.7 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1820 +p reject 1-65535 +r netShelter03 ivxvx8mH5M6UvQHK5/upMzOQeHk 26U+0edIweY7lxUFNAu+qb5gu8w 2020-04-19 19:20:22 185.121.69.37 9001 80 +a [2001:678:a00::17]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37600 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,25565-25580,27000-27040,50002,64738 +r CheenaTorRelay1 iv/q4qkX01xOmDlfXzvcOlVHJjI GsKzH3exyFKmb7E2coHo/tzWoCw 2020-04-20 05:49:14 178.17.174.188 9001 9030 +a [2a00:1dc0:caff:4c::38e7]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2420 +p reject 1-65535 +r anongoth iwKUNEAa/ci5eTpJAF4rw692wCw vOJM77nExAcuY3moX1RE3dpSras 2020-04-20 00:44:21 46.248.164.24 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2720 +p reject 1-65535 +r Unnamed iw2NNeyb6QZ14dBU3X9S9VXIAIU H6F/zIZNsAB92QLWrwO7ua3oXrc 2020-04-19 23:15:01 163.172.42.52 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22900 +p reject 1-65535 +r soberness ixzHbW0TcKZyY2KNTLwBtikD0L8 OJA1emfbJGrAqne0mbVLL3Vo9OQ 2020-04-20 00:41:48 86.105.5.133 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13100 +p reject 1-65535 +r snap277 iysRLm1L9yk00wnvjzo/hC8bDQ0 UreTIVqbJ6M+L38N+TaRaTnE4uA 2020-04-20 11:10:16 77.38.17.190 41851 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=79 +p reject 1-65535 +r Unnamed iy6yu1OdC4enukvhZ3plAaBLiJs sE+j68CqK04/e7x+FN+tYUFucm4 2020-04-20 02:07:46 109.201.142.53 48794 0 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32 +p reject 1-65535 +r sonnetor izSlPBGkX4UaZ/OPHPgFZk4EobY UK5jbmo75+/EIUnmFrMh4hoTGpw 2020-04-20 11:55:48 155.4.73.125 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=713 +p reject 1-65535 +r nick0815 izhDZ+5if6Y97x06GEwOOdK2bpo 9TfyMRybpYdC/WCjzAkxdggc+6o 2020-04-20 11:00:09 79.235.126.112 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3000 +p reject 1-65535 +r bektarGenesis iz1N7azUpqQ3LQpLapLmtKyPqJQ UHp3qCWKcy0LUjaIfO9Vwepg1D4 2020-04-20 03:38:23 81.170.244.50 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3400 +p reject 1-65535 +r mobileitdept iz2M89cQCkAv9EFSUuJJ1sUe/O8 MKD3jpNnmxyFwELdnGNlD0HjEU0 2020-04-20 01:56:25 45.76.114.160 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=150 +p reject 1-65535 +r Freiheit i0lvPvO/XMMqTCDs2+wqBufqQ1c QMsb883/6qLrla8WugZQXjSXwT4 2020-04-20 07:59:06 217.79.178.53 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47400 +p accept 53,80,443 +r Feidhlim3 i1oZsVltrUyJ4CW+LLo0JK6UNpM +CCkUbdY6Xck++lsTqwz8Yo59w8 2020-04-19 23:33:01 178.27.106.21 9029 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5080 +p reject 1-65535 +r hina210143 i1tJZPyLzyxhWePI+O7A7bT+h8M rOeP+lELRkit/ve+Hiw262mNbW4 2020-04-19 21:39:52 3.113.210.143 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=363 +p reject 1-65535 +r F4AxFree4AllxTOR i2T1k8rC7QXA+nA671D/cZJbVpw CTpPHzsJAuhgPkL+2pc1tSVgTy8 2020-04-19 23:46:26 193.30.123.176 9001 9030 +a [2a03:4000:2a:3fd:ea7:dead:beef:ca1f]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56000 +p reject 1-65535 +r Unnamed i2euEDNbnUTTFQm5qUq+jtdp8Xo RrE676IS2t5eXLFGAsFXXoD/YII 2020-04-20 03:00:01 94.242.57.164 9001 0 +a [2a00:1838:20:1::cf70:bd57]:9001 +s Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5920 +p reject 1-65535 +r snap277 i2i2de3UDaN9JCf5JuuizOEfeLo cmBBpsVL+2ENemOfm0GZW8WEusU 2020-04-20 09:11:36 109.28.32.147 37089 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p reject 1-65535 +r laurita i2sQoK7YlAjlCdRCLskmyJx5M9A Hfi2m09dHah48iLJm/s0ovABuyY 2020-04-20 05:06:19 95.211.205.138 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23700 +p reject 1-65535 +r UndesiredSand i3NAEpbiUEbzdOtuDOJwLe0EtWE DLGCUvx8mBF+iSvIDS7SDmBnaWE 2020-04-20 08:33:20 144.139.62.165 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=169 +p reject 1-65535 +r axiomaticlinux i3xk7J2CCcFCUws0iAULhdVdadY G8qhR2Xirn32VCh+zICg7lO+d/Y 2020-04-20 08:57:33 208.113.200.103 443 0 +a [2607:f298:5:101d:f816:3eff:fe83:5cb1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10300 +p reject 1-65535 +r Quintex35 i4AWm+9xRQ/EBpoZCFNSO3rqReE /C46AdfSeXFwJ4qnRs7pSgtENS4 2020-04-19 22:39:48 199.249.230.84 443 80 +a [2620:7:6001::ffff:c759:e654]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15800 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r bobtail i4ieBMYOMNURATGJ08KtzlIuHzw jXtsBbBu+FF9/bJJTKBZ0iSVPRU 2020-04-19 23:41:07 190.2.133.227 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20800 +p reject 1-65535 +r snap277 i4zlZ1Tg1wsHtZNQpB/8yTgcrog I95UnU8e9wnqUbCCvcdppLypveI 2020-04-19 22:54:08 144.202.30.46 40371 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4380 +p reject 1-65535 +r LordNikon i5ty2WE+G2dKF9qmoR/jNsNCcZE LjD2Bqa5fkG0EZiIVmQTLC4Xx54 2020-04-20 01:59:14 23.129.64.216 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8510 +p accept 1-65535 +r FrenchFries i6Hm2KoI9CW4Hc9AMQq9v6VLCV8 CaNEn5Cm2MvCAziJsSqfP3FfMHc 2020-04-19 23:05:00 136.61.223.102 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2040 +p reject 1-65535 +r Kackfass i6X0vSREn51ZG7vKVhQuAH1kIzs 4CypygfEnmPxzeeKHjHJjDK43EQ 2020-04-20 01:31:28 82.207.213.189 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22 +p reject 1-65535 +r MidgarSector7 i6/6ol+jemkoaeUi9eTICzev7ZA R1C3ZYPuWCXwtz5O6+/jrBvBGfg 2020-04-20 07:21:15 45.76.177.51 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=709 +p reject 1-65535 +r notatorserver i7Fx2C3ewsx1HFtjulQ5+0SKJLI pft4KUbHEYWOHuC7o0/sqebvQyI 2020-04-20 10:19:11 185.107.81.194 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r Unnamed i756kNwDqVRnOpn/tteTCK1PZDw wD3Q7PsGcLQl0ZC6lga6hGMjNGs 2020-04-20 06:38:15 95.211.186.80 20188 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=74 +p reject 1-65535 +r torrelay0x7io i8O7+QEQFQD1j+udpAG2cl+3iqY 2exCQychzEuJvi+50e4fmMswIxk 2020-04-20 08:51:35 54.38.239.109 9922 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14500 +p reject 1-65535 +r Sao i8VU9/kxaxLewXGBX8tFKeigHUk BRoqQfXsHkDvccnOLZ1waw9sTr8 2020-04-19 22:06:22 92.211.41.119 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5190 +p reject 1-65535 +r snap277 i8bTiMJ2j2u5n7FcEupEAdeKxnU nFfGIsZ44XGdJUcB+g1a7sIMV5Q 2020-04-20 04:12:58 67.165.133.17 44401 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1200 +p reject 1-65535 +r snap277 i9+h2o0i9jm+NpsVDh6qZQn2j2U bwEdaPFkLa47od8L/sXWD4mtTy4 2020-04-20 12:14:50 190.131.169.94 40747 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=360 +p reject 1-65535 +r niftyentry80 i+WLp6KNxrTyEc6O6GeDuFEzSI0 Xz+lK/F9JugacufJub0ckRjuGHY 2020-04-20 10:51:28 185.220.101.220 10080 20080 +a [2a0b:f4c2:2::220]:10080 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11200 +p reject 1-65535 +r cookie i+ec4yYcAnzpT4TWy+RfA76bi1k nu7MYSMSKj/UJFoDsd6ZI9a1XHo 2020-04-20 05:01:42 5.9.37.214 4443 8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=77100 +p reject 1-65535 +r TulipBaroo2 i+zY/4uMmj28SlRbqGwWiXOTl6g e2I90iLpi9Ix4FN2UhFBIq79kEc 2020-04-20 10:41:53 198.98.50.112 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r GrmmlLitavis jAD6c2mnowj2oTdgDw+geZDZ1FE NRZ/GWlpodeGmzormtvgSLO6CyQ 2020-04-20 01:56:07 163.172.194.53 9001 9030 +a [2001:bc8:225f:142:6c69:7461:7669:73]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33300 +p reject 1-65535 +r DigiGesTor5e4 jCW6E01Xm4qvQg4BIV6yzwaq6Qc MFGWVPLPL8u5ifJcTUo2g+BrrGQ 2020-04-20 06:43:25 195.176.3.24 8443 8080 +a [2001:620:20d0::24]:8443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28500 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r ssrv jCoQ0ZMX+297tClUprX+YkSImvU 7V2W4ZO9sMrJt6fkDEuAXK+P0eQ 2020-04-19 23:58:44 83.32.47.118 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26 +p reject 1-65535 +r HappyNode11 jDWxXB8Ti95NUKl1Ep5Hc7RKUD0 sLQnXf3fEPKxYP9NiFlUjfAy3ok 2020-04-20 09:35:18 45.79.138.8 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2900 +p reject 1-65535 +r sqrrm jDrSwqr397fpK4HxPBqSZ7OUFto n1oCXFdTI+Xhl8UoDsvGwk81MyM 2020-04-20 05:54:51 185.25.50.199 9100 9101 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p reject 1-65535 +r houmgabot jD5gWOdnyxH5zSBf3w4pBsg7qSM +IvcljUiLjmslQ+Qpfs2xWMIjFk 2020-04-20 02:07:31 82.253.194.252 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=360 +p reject 1-65535 +r ALBANIX jEL8GHblHVyN5jcse3rVlflebcA ppKbWdpBHQijsUMczzOBn8uZT3E 2020-04-20 08:28:03 68.203.87.86 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=490 +p reject 1-65535 +r Unnamed jEPgJsPG8eIXxRvh1H7Rv2g/MSI OLeWH1jNjtQfg927Z2P3qlNHFnU 2020-04-19 19:40:46 111.90.140.143 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=585 +p reject 1-65535 +r AnonJapan00 jE2VvOZMbZ2nX3KOog3C2LQfU/o aRPPoNLsedGeb5lHGkrRsGJAMbc 2020-04-20 05:39:02 40.115.158.160 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=209 +p reject 1-65535 +r covex2020 jE7PyEiviH2phkH9ZJCH2GUWEZU fzoiJBZFHqv2OcPzLAVoSDzkwo0 2020-04-20 05:49:15 192.144.37.127 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=661 +p reject 1-65535 +r Waldmeister2 jFsxbtcwGEhHZcPglE5FCNyuCUQ lUZhXRe43TlG7z9RgbwY1tKd0Ag 2020-04-20 02:57:54 145.239.7.169 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53000 +p reject 1-65535 +r davy jGEiE8S1wVT6kIR/NvvzbbeKsaw nNxDOv1l68sxRKeV6dyzujnpG5A 2020-04-20 06:56:32 185.225.69.90 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17300 +p reject 1-65535 +r Unnamed jHMOrxSQOAO6EFUgK+ZcVBBeXE8 Af4J/NMM8esnDBv6f3Rd42jrNH4 2020-04-20 00:10:12 172.104.131.38 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=708 +p reject 1-65535 +r LetBitsBeFree jIWNVYMQ1NXqs96vM87jVqygGBA LWm6PyfHhltZu/mNNAacKp5jPNY 2020-04-20 02:41:20 68.69.166.145 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p reject 1-65535 +r vaseduva jJT6tzPI8ebBgolG23dpndmsY9c 6RXl7XKn65bVbJ1qaxqKRNgkpxk 2020-04-20 00:39:00 185.156.173.148 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6510 +p reject 1-65535 +r KienjochDE1 jJcEqAaORs2RKH3jwzLv4uIcaFo +leLdEjdaYk0wj5/XaupM5aQ/oA 2020-04-20 06:18:52 81.169.167.88 443 9030 +a [2a01:238:42c8:8600:b5ed:da10:386:9f16]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11500 +p reject 1-65535 +r rynsin jJkHiPgrOgTNgZNulvJBxrtXyq8 IlRC37ZRjJ2KN88kWGmmJKL7xdw 2020-04-20 04:46:32 45.79.144.112 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=365 +p reject 1-65535 +r niftyguard51 jJ33/ixsjiUwSNB+sfOYaEHPJAc 65xv7NsBVRuxK7Xs1673pzc88bA 2020-04-19 22:16:24 185.220.101.170 1170 2170 +a [2a0b:f4c2:1::170]:1170 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29300 +p reject 25 +r FlashSalmon jJ5CdzmcYSwgMs08mMBS8NbqSWE w1KL0VDr14VuyXe9xQmni+smoBs 2020-04-20 08:51:03 185.244.39.91 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3750 +p reject 1-65535 +r Auroch jKFuh4KT0R8OCAPl/An5OlxmaIk MHIGUtJUaQWFBs2f2rG8aINSeKY 2020-04-20 10:57:55 178.17.174.198 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3400 +p accept 43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8082,8087-8088,8232-8233,8332-8333,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r king jKKS/1crm5nRlvVgXqAo90/etSE Kp6U3x8D8BAK6HD/wnO3LWp9wjg 2020-04-20 05:40:59 51.89.200.109 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17100 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r niftyentry99 jKc28zKTfk+g9fSEiLgj8xiDEjw LuvG1j+p3cILXZRmzJiQZ7K3BnY 2020-04-20 10:53:04 185.220.101.239 10099 20099 +a [2a0b:f4c2:2::239]:10099 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15900 +p reject 1-65535 +r BeastieJoy64 jKpHC5BXWHQiA+PrRZQXGfyp/uw QaS8QK1qcDRJlm24HXaOb+xJ/W4 2020-04-20 10:16:48 188.138.102.98 443 465 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p reject 1-65535 +r VergeDealer jLU3FI1mPbXuRmOkYhjG72vIAVk /zQAvecX/Wsvki/FMede4ptWQYY 2020-04-19 20:57:00 165.22.212.101 9001 0 +a [2400:6180:100:d0::80e:7001]:9001 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=810 +p reject 1-65535 +r Kepler62e jLpHCIdFhcRdORcnhV5iOEiwq2U /gIAHsVqAi8wq4PM/FbCw6I0wlc 2020-04-19 21:00:04 86.29.208.115 5724 47125 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=42 +p reject 1-65535 +r philzdifference jM5XSQ+XUhAPmxfiGSotrl0GHgY qyNRIhIfK1vgGdzeJ2KpyGhl/hA 2020-04-20 05:27:58 188.226.107.203 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1490 +p reject 1-65535 +r MarkTwain jM7TkdLhtu0eeHafvc+3DlyRhJ0 px6oWyuzsiwKoNtEh8dvQvwK1Yw 2020-04-19 13:53:28 141.14.220.177 443 80 +s Fast Guard Running Stable StaleDesc V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5150 +p reject 1-65535 +r Hydra13 jN8vOoq9g0z58+j8IC32RiW/tEM bN1bJKfTGKPWWoJ3+Thac4oHkQ0 2020-04-20 07:03:55 51.15.99.182 9001 9030 +a [2001:bc8:1824:103f::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11700 +p reject 1-65535 +r ParadiseTorRelay4 jOsevQm9voMOJXxnVKiJzWhpsD8 sqSqGMwVK2BYRr53oCazWSY6w3Q 2020-04-20 01:47:32 193.182.111.133 80 110 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6770 +p reject 1-65535 +r lg2l jO/ZGSZZ1Gs5OMpMjzRZ35o6PRA QUQbJ1J3XCErQkGQxVQCqAHTI8s 2020-04-20 10:20:46 80.238.124.3 4431 0 +s Running Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r Nusswurst jPAj192IxxQ1UulMaSuQNA/c/NQ rPG3BQfBI01zRmB2TrTQwJBqKGs 2020-04-19 21:40:02 212.227.8.137 9001 0 +s Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=34 +p reject 1-65535 +r zucchini jPmH/0P7fz2apMTz2W/98keppsI 3tpr2r6yOr9hfGnD18sWJbzP33I 2020-04-20 02:20:11 109.70.100.6 443 80 +a [2a03:e600:100::6]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=79200 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r crypt0Dude jQaX1i6ZcJAbTsZNUR3fOZzRnbk HgkCZaBSXuFT64b9Cjf9rUscft0 2020-04-19 18:55:04 78.47.125.48 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r AccessNow009 jQk8nCtCvCJKUxmmYKbPXt7+g58 tLZDST3+jgBRbNs5KSUcSprHrNE 2020-04-20 10:33:10 176.10.99.209 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31400 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r Raptor jRCF6BjQRz7Gk+OwkR/xh0Hx8t8 Yaj+tGTozVlsI3/z/3zr/oKky6w 2020-04-20 00:02:52 91.203.145.116 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2870 +p accept 20-21,23,43,53,79-81,88,194,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed jSDg08ep1yNTNOHCzKa6omw/Rck 4hdaI3egzKFABXqCj6bXvIGj+tA 2020-04-20 04:41:20 51.75.52.118 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=61100 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r ECHELON jSMrcfzDVTfPUVJVdRyXKX1RwdQ RzwoHRxjlkE+71V5sD+x4RXkCO8 2020-04-20 04:46:30 138.59.19.17 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p reject 1-65535 +r bsg jT1gI8Adc9WnrWReIJN3vFrMa4I HoldYviLJye1/81zo7z2T8M2OnU 2020-04-20 09:10:25 178.78.201.192 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1170 +p reject 1-65535 +r psYchotic jUGZTR0Y6UQDw/Z9BpnkydIkjUo i+YHQMcPL5DQkY+KjRaZlwp4kqo 2020-04-20 09:12:06 5.9.42.230 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r YetAnotherTorNode jUV7OIfvsXorqOoBVZ4WzudOJIk hfnrHehJACbPxxgtFtXGCgtrs5k 2020-04-20 12:04:25 217.91.68.107 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=560 +p reject 1-65535 +r MyHeroEdSnowden jUXm923zKobvMlae36FbanOaWiw tFbfm2fvV4GTdfo1me6XA+5SsK8 2020-04-20 10:20:51 163.172.159.135 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=20000 +p reject 1-65535 +r rortor3 jWLD3Cqt5DMkMppfX/2XcQI03Qs 6qRfXjH69gNejfS3LhpFfgH7o+I 2020-04-20 12:31:58 172.104.49.140 9001 9030 +a [2400:8901::f03c:91ff:fea3:eda]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=438 +p reject 1-65535 +r fucksociety jXP8/zHfNEqsMvMytXWIcyhjuFU avBpj1woR+qcDLpwW0GJpfhTzR8 2020-04-19 20:12:09 185.172.115.137 443 0 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=494 +p reject 1-65535 +r thanatosDE jXn3Pc2R/E9QF0IvrHAHTW243YE HXo2DxZwd64MLE9WP7XkbUgsozE 2020-04-20 09:56:28 5.189.169.190 8080 8030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4400 +p reject 1-65535 +r IISPRO jXoSznLd2aH8axi8NwTBNv0URMA gif4JLQYASlyG+MVzupHHpmHq/4 2020-04-20 06:37:32 151.52.195.3 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1530 +p reject 1-65535 +r snap277 jYaJV4Y3n5tOYgg9hrzbduhtSRs vMuWYDM/LjTv9jjIILjiXklg0WY 2020-04-20 10:31:20 78.251.150.4 39853 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r BOOM jY4JCDL8r+oIO6FQ2m0VTjZaWQw ZpCe37KAvwLgtIH5Nml8IiPWoRo 2020-04-20 07:11:00 51.38.51.194 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p reject 1-65535 +r NowyTorSerwer jZEhJvpAvWfufVdZvRlFlFCuvqE FtkxoyOhkra+3lVp5EYCraTol3c 2020-04-19 21:51:02 46.41.148.75 9001 9016 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2950 +p reject 1-65535 +r rtkNetService jZMkjXe7FSw9FPbWNBZklu7gR2c mzHgz0Uznkw84gsRmzOWG/wRjKg 2020-04-20 09:40:05 84.53.225.118 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p reject 25,119 +r BarryJames jZqcIWk23hb+bKejPXtSDXO3zAs aAtnq8HiLg1EQIHfGY2afriT5MM 2020-04-19 23:44:06 52.8.68.153 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7910 +p reject 1-65535 +r vianullorumunorumq jZ9KN13op9yXTAn/3XG1zXqdh40 Pfs8skQk3FItRo0Di8hZg86JjO8 2020-04-19 22:45:12 130.255.78.2 443 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3240 +p reject 1-65535 +r BeGood jZ/LMIgDHFIZjn0jRLlULj0bCBA xwMWllKRmY0wAWEmSzj6K+aGP0I 2020-04-20 03:24:32 31.193.139.14 8080 9031 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=447 +p reject 1-65535 +r flymylittlepretties jaI1xG1a/EEFj6No9c+MTsdTmx8 gZZdzW+iDfKIve7NRpyyB12c11A 2020-04-20 01:41:39 83.165.35.13 20576 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r TheAvenger jaqAA4dsifLkwqr3cLdy4JsdnzY 9xVaRmtrT7WbnWaRX85vZc1I2+c 2020-04-20 08:07:54 185.248.160.21 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3720 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r J0nxy javwQokkNcm9La6sZ29ru1AY/xg 8kkKJNc8SLupHuYz6VFGnOI3LmQ 2020-04-20 02:34:12 88.153.243.58 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1730 +p reject 1-65535 +r TVISION01 ja8sr0v7DdVrUZVaF1man7DpM9M ZKgIkQVq03TTc+xyK8NO1BzEal8 2020-04-20 12:10:53 82.94.132.34 443 80 +a [2001:981:5b21:c::34]:443 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r TorExit2XYZ jbT34jDBre91IZIc/3PY5UzN04Y Kd98ja3AFaAdAoBXDrwCuXjz/Gg 2020-04-20 02:37:31 62.141.54.199 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9950 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ContinuumRelay jb742CRDd3AmG0x0U/KBXbf8kWU FhrVQdeHeURWUhY2n3sV3GgNi4g 2020-04-20 09:46:53 71.126.130.144 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8270 +p reject 1-65535 +r alnutt jcgyq9ycl7i3H3SrBB08s/qVeKo iBjBGnLRbnMENI9q9ossV5NXW8Q 2020-04-19 19:45:19 95.153.31.8 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r torpidsDEnetcup2 jctSZyL74rP0wM6dAgsFiRcPi9o bD44MzQCNIChEooy5tPysFeamSQ 2020-04-19 23:03:24 193.30.123.70 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49400 +p reject 1-65535 +r powertoyou jdCVZFfPdaSeefjkNOLciYGC3nk qVlg97rDxSX96D1FV1Qe4HEZpGo 2020-04-19 21:20:12 83.57.222.112 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5800 +p reject 1-65535 +r AngelWater jeEhGQHDM3m7nFfie+02j/bUUSc J0+lordVAwfTTfHXTNiHPBWxPmA 2020-04-20 05:28:35 85.214.117.185 9001 9030 +a [2a01:238:43e7:7500:6d2c:778b:1ff:f2eb]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2300 +p reject 1-65535 +r 543da97e8ec8 jetJYn6ANKmL6iQmU0yROvYCKTM Ca2tkA/OuHYsq48dAEW0aNa7Lm8 2020-04-20 08:21:45 51.81.253.201 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11500 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r PfpNetworks jfIu6q4kg1eD4FgfssfP/oClwHA P62PDZ5vnb/gst2j1OmVPV3sngo 2020-04-19 23:18:41 93.180.178.216 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2800 +p reject 1-65535 +r smell jgKPBCKhCVOZTFHTxfqO3sGPaTE G7F9SjIeS9VjoG7tLZR/l3uO7k8 2020-04-20 01:14:15 209.141.54.27 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3800 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r H3Nr7C4uLT jgUG5/05ufPJB7/H6o7WW9VaBto okEaUbH1mhQ+r0EPmr5bWq+LBZ8 2020-04-20 02:11:29 24.157.140.26 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=680 +p reject 1-65535 +r 80b74d070419 jhRNkFXO8TVc0iKrlMS/UzHNd18 3aEVCVlKy05R3HuWy8xs5Wzewgs 2020-04-20 07:18:26 51.81.254.25 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16600 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 jhhXYtEZxUrCNxu2ox+WDCte7VQ riqkryfJLEaa5ol7uK5TRut4Rkk 2020-04-20 06:37:35 83.237.22.140 34701 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1940 +p reject 1-65535 +r Inferno jjOksZhQBOX7pfi/Ya46I6K/eOg 6CYbYnzqDlMPwQCihfL6ISxype4 2020-04-20 03:54:24 104.223.94.66 22528 44929 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=414 +p reject 1-65535 +r F3Netze jjixHoSTNtYqtiZPuumwPHDweGM 7QQpg+EbSItfDNbvi8/PXxjQ7i4 2020-04-20 07:05:14 185.220.100.240 9100 9101 +a [2a0b:f4c0:16c:13::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=81000 +p reject 25 +r don jjmIFHKUbVu+QXZUcNnjCZoOtMc qQgXuMaYzpIgIUpn+GDE/lewgz4 2020-04-20 09:36:23 51.68.185.141 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r 1d1dnt3d1th3c0nf1g jj08W2So2tkVJofJPNzh2YzF4yU 0nz8+rHYnl3r22g4Z46cci45fLI 2020-04-19 20:00:41 82.161.210.87 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=274 +p accept 53,554,873,1194,1755,3690,9418,11371,23456,33033 +r colinsullivandotme jlHiueybSJJWg8FocMcnimb+H30 5UvBVj0sJx4FbyDxPmjvhE64Fyo 2020-04-20 04:41:48 174.138.59.100 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11 +p reject 1-65535 +r kingyetwewillsee7 jl6pCijoiNMG+kO5IQoelGe6OuA lg2uIqXBQzoQPdBbMU0ApoLPruc 2020-04-19 18:59:06 178.62.24.212 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=141 +p reject 1-65535 +r DuesseldorfTor02 jl9O5F4GMaYOWcqkLhRk/XEgRZ0 To/Z7Hxk4M7bXb+Zk0YVX5s5FGg 2020-04-20 04:19:49 146.0.40.73 443 0 +a [2001:4ba0:cafe:ecf::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=43000 +p reject 1-65535 +r AlGrothendieck jm7aeNjjq6iNh3w+N9bU8JOMe58 rSisi/AstEtqLLnGCLyUyFaNp7o 2020-04-20 01:45:08 80.67.172.162 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23200 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r JimmyBulanik jnbx9uhJnM6XXEUVYFhqX4vwv9s M1f5S6XNhuT0xEVk6boWrU9LJno 2020-04-20 07:18:07 185.86.150.58 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18200 +p reject 1-65535 +r snap277 jnsaracWV8XcNlVaGNHxxVGppy8 Py4MVwjEzcx/urJiWXidyQNH3sM 2020-04-20 06:32:36 90.216.121.218 40297 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r dipulseIT2 jo6dP9HyWBTNtXp9uqKQEU6t574 ZHSudLjb1/LaQHaK7XitcvQFNZ8 2020-04-19 19:00:41 62.210.207.144 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6200 +p reject 1-65535 +r NietAanraken jpgxVkcOkebvQQzYC7QRD3EmALI B4kTx7D1qHtA7UsPziB+m6OtV3Y 2020-04-20 05:39:59 176.9.92.138 9001 9030 +a [2a01:4f8:151:3388::2]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4070 +p reject 1-65535 +r way2Sanjose jpwRJR+ozlBuDJInUlLS/bQ06vQ V18kkiwhvri/lvEGN2LZyl1YARY 2020-04-20 05:38:15 61.92.22.235 443 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=471 +p reject 1-65535 +r noname jqWPKNymD1bG8hMb3+m/X68iM84 goplvCIzSemXt8JPgpiQwJVDkr4 2020-04-19 21:03:23 195.67.191.210 9100 9101 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r Enos jrci+hrp3eGRS8If6iKBnU3pnbQ 0XUSoWuqU7T7doEmMEKhVKHxzTU 2020-04-20 02:35:30 195.189.96.148 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=65700 +p reject 1-65535 +r kansaiNURO jsUDyaEycbkTTsiJn1Z5oxjayP0 jT/eTTjhUrGMZDtoq0d2GDsiROo 2020-04-20 11:49:44 92.202.22.130 9001 0 +a [240d:1e:11c:8000::5]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=806 +p reject 1-65535 +r PolishWingedHussars jsf+fyoRiet5oHwC+z8f1XEy5C0 GupJWfnoJVd/q4gBfjmN5ArwzrA 2020-04-19 21:23:07 85.89.172.150 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1430 +p reject 1-65535 +r niftyjerboa juBTRTLqMapRcrGJL1Oy8lx26wI RyEza7gGZIToOQIfbIM9QFJszt0 2020-04-19 19:25:27 185.220.101.25 10025 20025 +a [2a0b:f4c2::5]:10005 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35300 +p reject 22,25 +r Thalassa juKOrwh0r5sD6715tetQWeJUc1U zWtJTT3E6M7SO3qFMc+VYpHaQjQ 2020-04-20 11:56:44 198.16.70.10 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=50000 +p reject 1-65535 +r TorOrDie4privacyNET juRHF/pVcFwSCG8+zR+NnIZ2/QU QlaJfH13eTfEqnB5gRC+3O860/Q 2020-04-19 19:51:45 217.79.181.23 9001 9030 +a [2001:4ba0:ffff:15::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32600 +p reject 1-65535 +r astronomy juyzK0IwgwGiVlLdxfij1AGrwhM occ4TNx399pzpP7L92aKmaOgDvk 2020-04-19 21:00:07 142.93.114.226 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3800 +p reject 1-65535 +r nels94 jvBSAzMJ2FTWIGpMMPF60nyHiT4 ZsmwHZ9WkNTJfJpUNp8i8vZLoZQ 2020-04-19 21:00:07 91.155.242.145 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=79 +p reject 1-65535 +r TormyyrFI jvdI/M8aniuWUdxqvZIfjusk+nM DgNvW8W0/5DwnpEuQqBdr/2pJ2A 2020-04-19 21:19:13 91.221.66.21 444 8000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13100 +p reject 1-65535 +r 22c7676e678bb03519 jvd/0AkbQiGrWcYmMMXVT2bkx84 6VJ+hWcTqzHx1AA4P0bXOrPkgoU 2020-04-20 07:35:54 190.216.2.136 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r amartysen jvh2bhZFpBoq4VZetnOklXyNWtI uZJfoUcBqE6oiMoEB03UBysvsLo 2020-04-19 19:06:07 77.247.181.163 22 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44000 +p reject 25 +r scenics1 jwL+XiM3MKarTJguGKITbmYqC1k y/3HH68VHcN6fdGLeScI3zEbrlg 2020-04-20 07:20:28 85.228.26.215 7070 7030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p reject 1-65535 +r snap277 jwRigXoOLNPdlW6fkmvw0rCzrUU vBD3TbVN2Sczj8vjsFcXwvoCw/w 2020-04-20 11:19:23 109.136.209.83 37699 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=865 +p reject 1-65535 +r whitsun jw9J8jQcf3BtW0dYFdvT5XYTNLM WonpUd/PhJR/uJKBAyt8Nk/TdnA 2020-04-20 07:57:05 91.219.29.188 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56 +p reject 1-65535 +r pointderupture jxYinVQld03KVm13N1lheBU9uDg U7j2hXlhcmTNNhru8zTKfU4WsX8 2020-04-19 20:37:50 195.80.151.30 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r bee1 jyCNGsWPvYl1zOTL70DGgCIBpRw f6wHON2ilL7HYHBWuVd092znLTk 2020-04-20 06:49:47 62.219.3.47 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=4280 +p reject 119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r danby jyKv3QaqQjit2TqOpvvCu5xlJxE VpqgTAhMnjr829M5SRu0rMoying 2020-04-20 02:16:49 93.115.84.143 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27200 +p reject 1-65535 +r BitchCoinRulz j1jY3GqWr+YmL77/h0H9QmLrrLQ q5j9ycwFf7lhoxd9jEjXWiJSdjk 2020-04-20 05:05:16 93.132.67.84 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2030 +p reject 1-65535 +r Martell j1rLQLQmKARebYykyxA82usRKj4 ACWr3fs/R5nIvQdJtnoohIuVrU4 2020-04-20 00:46:24 3.121.167.65 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=63400 +p reject 1-65535 +r Unnamed j2GYN1vY4zlSFDkfHO8G9fwO7mQ 22LTrGrWM/MtkmatEAw7jv4dXB8 2020-04-20 09:49:29 188.40.166.146 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=62900 +p reject 1-65535 +r king j2VKgxZicsoF0AdrF3g8wd5dDFM 4Tt6WTQZzms/5PCQxHRkERv5HWE 2020-04-20 07:09:55 51.89.147.68 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 j2z0hZTFeX4tnPrcvEbYubqi3SY pfvmEbkufnSqxVks0xqTXFUig1s 2020-04-20 06:50:08 92.158.2.251 46369 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5320 +p reject 1-65535 +r ChanaTorRelay j24hv614gSPjwEzpWzVszyovupk wva11LCtG63w3YMx59UNzS/uPTY 2020-04-20 09:44:56 27.145.235.28 9001 8081 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22 +p reject 1-65535 +r orwell3 j34SDB1Dcf6hnjwVjBgNfeTuUFw yhpNh5Q4xldq8vuut+KW+oYTSK4 2020-04-20 04:17:57 91.204.6.195 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7330 +p reject 1-65535 +r duke j4kHhXX+5XZ1qSLp4IiRj2OsdQw tiWMtDijX+WGiKf4TNE/HzvICoE 2020-04-20 03:31:28 158.58.173.78 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12500 +p reject 1-65535 +r fiedlerRelay09 j4kzmcjKKEWD46UmprTl/XVEnoc GNjkZrYVVy4bTbX9EZhmYlgZ6EE 2020-04-20 10:07:55 46.232.251.29 9001 0 +a [2a03:4000:2b:610::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7700 +p reject 1-65535 +r smell j4ld1x1vh5D1YbAEQi6PMTtuaHY 4dv4Sebnxg8exZ0Iy7MrahS1lT0 2020-04-19 22:23:22 45.9.148.221 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6930 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r nibiru j4vLBFFo1Z0NdEOpH9yiLAEh+vY Fknuu4B/r+mTQFZwPQIHOk90Sic 2020-04-20 07:12:15 37.247.49.139 9000 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=713 +p reject 1-65535 +r snap277 j4zim7Ri95EC7QXgrf4pTCpT3S8 7injiIUn/t47aP82wAto2TA/m7M 2020-04-20 09:16:18 46.149.86.127 37785 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2020 +p reject 1-65535 +r Doedel22 j6N7kzlwFbK8WlJckISFJgvp9CI myJmTvHuWyPbUbKqYG8VFukzE8w 2020-04-20 00:06:47 81.7.11.96 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11300 +p reject 1-65535 +r NeelTorRelayA j6v00mbflSFvbGRsbW1GEdPc9IQ mFc8GVzlHQbr631N8ZhIaCGkxi8 2020-04-20 11:02:27 174.127.242.253 143 110 +a [2001:470:b:1e8:af1:eaff:fe86:ad09]:143 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r snap277 j7rntFsL5ZSp4kUeC2rwPPXkT4w 8+a0GYHunt/XCaZX1XkclDhJbtw 2020-04-20 01:20:23 88.26.122.2 42463 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4840 +p reject 1-65535 +r SharingIsCaring j8I/QStZy0uyaSB7EQFh+G5yPRk tVZ7VDjV43bisZLzx63+V7zQGkM 2020-04-20 10:54:28 23.92.138.206 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=323 +p reject 1-65535 +r TOR2DFN02a j9O69eFOvhEk1iU9WYgq/hwrm44 9qSEIqH33jnGyR7RkMnBciVxfS4 2020-04-20 09:39:13 217.182.196.65 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56000 +p reject 1-65535 +r UAyyyy j96udZqQxkiGO+2F0HET0/oqpv8 xyofDhXkIhZaNXL5jKoW3bkvM2w 2020-04-19 18:54:35 193.218.118.131 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=271 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed j+/80tv6CHnKJflgBIxV6IbOJSU CXUq5pu+IVJBf9aoktwK6XA2M2A 2020-04-20 11:31:46 205.185.113.211 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4060 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r rortor1 j/JNxh6jNcr91Wmak3rZbVlOWQQ 5oNfY0QyNZPMeLGHIi0dCI3sdws 2020-04-20 12:38:36 97.107.132.24 9001 9030 +a [2600:3c03::f03c:91ff:fe93:f4e0]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3200 +p reject 1-65535 +r niftyentry74 j/KJapS8ql8KfFpWrWWGSSzUSK8 JACbbEF/oip3TC2+jEN94OWYtSg 2020-04-20 10:51:18 185.220.101.214 10074 20074 +a [2a0b:f4c2:2::214]:10074 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r leghorn j/Lnt79MEh0fSdZgaYfFgC3blXc vhCcAPE82zw8hhz5XoxwjJiSY8o 2020-04-19 23:06:40 192.165.67.254 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=556 +p reject 1-65535 +r TheLichNode j/PK9gaz1tSBlGqzpZ3O8VmcW8s FoOt3kSpeom3g0+y6lewAdJfOVo 2020-04-20 04:37:11 45.79.138.171 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 +p reject 1-65535 +r h4x0rs j/ro5nS7q71twDss+lOJdhIBSYc jUPLZ/iZIg4aybP3gg3CgBdk8XM 2020-04-19 19:28:28 144.76.143.137 443 80 +a [2a01:4f8:161:92a7:b03e::17]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7900 +p reject 1-65535 +r SilloCybin kAUmHBp2gWvpgMT4J5ImPb98wPs AiLSEVfrxsy6CVBrqWFtjD97MdM 2020-04-20 10:25:19 94.238.113.19 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2600 +p reject 1-65535 +r myNiceRelay kAd39uEwcyjVw5gmNWkl/eyweQs sFCEp/ubYkLTUwBR6gAWLIM4Ak8 2020-04-19 21:50:01 62.171.180.6 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=37300 +p reject 1-65535 +r SillyRelay kBWS++KiM19dw6VDRgC5pPnZxo4 +p832uHX7BGaEhRV6WdS9rWwjrM 2020-04-20 01:36:15 147.92.88.67 9001 9030 +a [2604:21c0:100:1::cafe]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5860 +p reject 1-65535 +r freep3p3 kBy6b/O5BhjT/+/wQDU8Jn9pDfg kVD5WnbAuhiiHDeAK33TT16NRMw 2020-04-20 11:35:24 94.23.222.72 8080 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33600 +p reject 1-65535 +r niftywabbit12 kC4hvAWnseyM6F14xHw9jq1e/m8 9zSGQigW9FeA+sabjF+NOdW4MPE 2020-04-20 10:53:38 185.220.101.242 10242 20242 +a [2a0b:f4c2:2::242]:10242 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45100 +p reject 25 +r engee kDBEsYXSkzF6DLTn63/4mLB248s iCscVgfFbFIBi7NM2FiZsLRdlDQ 2020-04-19 22:19:52 116.203.22.86 9001 9030 +a [2a01:4f8:1c0c:5812::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p reject 1-65535 +r torelka kDoqeZHIOOcP9aWGzTh3SbNYlmk hEWDoCm53dFzsULDUUtNXFPlQZI 2020-04-19 20:54:01 51.15.219.22 9111 0 +a [2001:bc8:4400:2c00::1a:40b]:9111 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29300 +p reject 1-65535 +r nottryingtobelame kDymfQ3rdM+7AUMoQKJsuMbBj98 Bxz1trn1qe0FZa0rKQNFF9+PMRs 2020-04-20 01:08:55 24.154.185.56 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3110 +p reject 1-65535 +r tschunkdidmedoit kFR+f7MbaUpCaMWrAqCGZwPE/4M hhJMhmtKSs4lOjwWVE+PDAQ71dc 2020-04-19 19:14:55 152.66.35.72 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p accept 53,80,443 +r LeoR kF63emOFfm788E1zSlR7CZXYXDs T0nk+z1dTgxAOtyPJNNi4VrHTTE 2020-04-19 19:45:47 3.225.115.238 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20800 +p reject 1-65535 +r AlphaRelay kGMwEqGnUtjQL+yDdKS/mJQaGQA znsXq3t07clMWUNfZ4Yj2cyX4xA 2020-04-20 10:43:12 116.203.40.245 9001 9030 +a [2a01:4f8:c2c:1192::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22600 +p reject 1-65535 +r mj3 kGPH7Eoyc0RtwF6TEKXFsvQjVpY jX26Kyws3jtOyEYPOeRKALhNVX4 2020-04-19 21:26:36 93.115.86.8 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24900 +p reject 1-65535 +r Unnamed kGkzownxXXzzeRJweKZ5Hfmwx2M v3MrkjnAUc1iKKSD2H4PBQp2MyE 2020-04-20 04:31:55 91.121.82.25 443 80 +a [2001:41d0:1:8719::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8330 +p reject 1-65535 +r thanosdidnowrong kGpC3YgKLL7dUvPyj+n5Qqhl9xU aL97JM7QvuJaWsrml17Z2Io7MGA 2020-04-19 22:57:14 173.255.250.219 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=4000 +p reject 1-65535 +r niftyquokka kG3LOQ8rqYeuJY10XmC6qrrTHeg T8lTqOVt910tmFZYkJi5KVNExro 2020-04-19 20:26:53 185.220.101.18 10018 20018 +a [2a0b:f4c2::18]:10018 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=52000 +p reject 22,25 +r zzzapz kIQj/oxyIrKslQwDRHDSEn3oeG8 iwDbndy1y3wTteRAtZzLQlQQYvQ 2020-04-20 00:01:04 77.164.90.95 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=117 +p reject 1-65535 +r LittleTorRelay kI1QsXyBrXlKP7EkNzxtRYQ3xn8 xCzZZAHyqrSHJ9OPjloBjUWABiA 2020-04-20 08:15:44 130.255.78.232 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27 +p reject 1-65535 +r deadbeefbbq kKQOr2CQvSYCN73+k5Gi7/NehzM QTKxUx2w/oH67ziQCNxVSFR0y1w 2020-04-19 19:28:20 199.195.144.111 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16500 +p reject 1-65535 +r rofltor09 kKXRNVxLWEDpUOth5nOGOmrjrKE T+wwS5sfGUgoTGwKDtXdHNgPLt4 2020-04-20 06:18:48 54.37.139.118 9001 9030 +a [2001:41d0:601:1100::1b8]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15100 +p reject 1-65535 +r LeaveMeAlone kKuNVCisKWarbUm5Nn7VcB1vtNg ygU0EreWeYe2LQ27Z3cTHkMV8iE 2020-04-20 08:12:51 82.169.77.109 9001 9030 +a [2001:470:7c21:28:a074:d1ff:fe26:62d4]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=765 +p reject 1-65535 +r Unnamed kL0GE3pb43pyvWeTzfBXaRtxjo0 Js8zFfnwTyDPlLAu5NDWkDoyoEI 2020-04-20 11:55:37 205.185.119.126 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1850 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r KhorntestFGUP kL1eOlLuOYfBm43IxA+Oi/qdnhk f+1XOlL6qdX0aK+0uYB4XbnhpME 2020-04-20 02:21:13 188.254.32.237 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5600 +p reject 1-65535 +r MegaRobotMecha kMG8EN8IGgHVDjgtcnGVXgH89sk CSIqszx9OJMydy0j0p1OLZTDNKQ 2020-04-20 02:53:19 45.79.92.94 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1100 +p reject 1-65535 +r coTor kMHo3dM+retnraiMDhNpj/h4rlE J1B3Q8x6sfQa6PQHvq0u8NcML44 2020-04-19 19:28:30 95.179.247.88 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=610 +p reject 1-65535 +r iamd3vilrelay kMcXKzXRGNM30QZfuDMG6BffrXM GJ2GUxPhHXWfIppv28nuKTDXg0w 2020-04-20 09:19:07 51.158.108.61 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19800 +p reject 1-65535 +r Legolas kMvD8/E9Xg1b/zsRN6SsZNOJzwk uaI50vcCl2iwQe8o/3jHNX2R7vQ 2020-04-20 08:37:15 37.187.1.29 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3100 +p reject 1-65535 +r marylou2 kP2DDDV6UQmrPFBSh3E/GsgRF0w hJLgIoqxag7BHHaLGQquyHNGkyY 2020-04-19 22:54:29 89.234.157.254 9001 9030 +a [2001:67c:2608::1]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r tor0kryptonit kQQbNKC5F1lHWyzsCrMGP/I8dY0 qkFXcdBvUAhEnZSr2vu5w2PShqo 2020-04-20 07:34:07 188.114.140.245 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33000 +p reject 1-65535 +r dipulseIT1 kQhCICVyu7iQaSlxYUdYrZ8/69c 4AWxLA70LJ799vlBxeefyhLEKC8 2020-04-19 18:59:45 62.210.207.144 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r windeck kRjXt3Cq35id2cJtbUUSfvDzsto vS/0IH7YzP++JMlgPvTA1W9QrRY 2020-04-20 07:46:54 185.72.244.24 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8050 +p accept 20-23,43,53,79-81,88,110,143,194,220,443,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r siotor1 kSBW6uhBDBdorS78AHzl0iYlvCM jVWkdDyfyBR/lVt8RSxmISMpb9U 2020-04-20 07:39:17 51.158.70.1 443 80 +a [2001:bc8:4400:2b00::1e:c11]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21600 +p reject 1-65535 +r landev kSWPDtsf+Sz3bm3Di/6YBVp02/g 2Mb9Vlrtl+Az/3IMeS/GfWXi29w 2020-04-20 10:07:28 178.82.215.219 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7370 +p reject 1-65535 +r TorroncinoDE kScJx/VgzD6f6WBLWNWYsb+u2Mc ZZ/wYsB0fT72ptWkbPKuWSY7LOA 2020-04-19 20:10:48 62.171.185.179 443 80 +a [2a02:c207:2036:9748::1]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p reject 1-65535 +r 0x3d009 kSp8V+BWBq9gLsY9HQa71ceq5RY nwZTQCinw0zrRKs9aQPnLyQQ0hk 2020-04-20 02:23:16 188.165.220.34 8001 8030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r trex kSt1lzRqdKRK1LYGjGRXcrdY3Lc wsPyWzp1mXfmJHC8zhRsPwwn6As 2020-04-20 11:42:46 46.4.124.165 9001 0 +a [2a01:4f8:140:71f5::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=39400 +p reject 1-65535 +r Unnamed kTjd8/IR0g/2Ea/wmbZwcEWcbUU 9zkqc1h5qo7HBlV7RdRVT3YmpiE 2020-04-20 03:08:26 18.176.51.176 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=994 +p reject 1-65535 +r dakkartor kTkx7F8fnMuWTX6sGt2YaWhEpSo RSPXgJ4ZCwnk7XC8aSdgvfnjAYA 2020-04-19 18:57:53 5.79.85.53 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14 +p reject 1-65535 +r F00F00 kVF/IZ92SOS4u/PBYsd93FUxVhI 7aKoZ6GFPSYCSFMdH7TE+zvvFh8 2020-04-20 06:32:54 46.4.88.92 9002 9100 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=98500 +p reject 1-65535 +r cyberspace1 kVXb8RyiRpCKVBDtp5/PAdpEkBs zDM/bszWeMrzeuslTvc/+Rhd/64 2020-04-20 00:24:26 94.114.86.53 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=141 +p reject 1-65535 +r elektrobier1 kXEQHnCa3liB9eLKEQDUBEtEJj4 v2NLFOYPOd23hak/2iJlykumAfY 2020-04-20 10:27:13 95.211.138.51 9001 0 +s Fast Running Stable Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11300 +p reject 1-65535 +r EyRonsRelay kXma0JcBj9X4O3C5eAaPuD9yk08 YyjsQBs2uiwXdqtgXy8ezuJ6nGI 2020-04-20 03:14:04 178.254.6.4 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39900 +p reject 1-65535 +r timcinel kYJJVt+kMMBxv2uUtiPfEJMdHUA IA/JMteXCcAERhY/J2YQHYI0sbg 2020-04-20 12:17:53 37.187.105.104 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7100 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r eficommander kZWCfqT9z7fQBB0sn75Vr1sfOj8 A7gtcR5QizBRakoaezz0sRvSDrY 2020-04-20 04:14:27 73.202.4.42 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=220 +p reject 1-65535 +r NikitaEclair kZaAt5GYrk2AoGmZqT68kJrU3dw 2ZFNrYyiCbnyigTsafkYe87xYOg 2020-04-20 12:49:36 144.76.24.130 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=4220 +p reject 1-65535 +r Unnamed ka3N/KgwobutOhA3eyXWlakr8lE idOsQmnrlcnaRkZHGQxtvYH2t1I 2020-04-19 20:31:48 145.239.158.234 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=710 +p reject 1-65535 +r 324partyvan kboZP7Ni+3tmeaeoOjBQ88RKVGg U+7aNE6mUcL9H6r4XP/LmrXtUPg 2020-04-20 08:46:41 45.35.192.34 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13800 +p reject 1-65535 +r valkosipuli kcaudKNSCuiQ8FHpkvXH9tOR5h8 fNWBDfO4Wdinuj9SBWpxsTPZauM 2020-04-20 01:51:14 95.217.23.60 9001 9030 +a [2a01:4f9:c010:6734::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p reject 1-65535 +r IWorshipHisShadow keQBXh+C2vASHWImflSh9mGrbcc Mvqc7ZZE6glxLoPTVjeSt8/UGC4 2020-04-20 04:26:07 173.255.245.116 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=800 +p reject 1-65535 +r Fission06 kefKa40KrXfHz7j+olv09G2hBCo qz24Wd59ZXSjxYSwNVTRyo7Ayr0 2020-04-20 11:25:19 37.59.76.253 443 80 +a [2001:470:c91a::5]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p reject 1-65535 +r bamse kfdCLrxw9HkyOEQUliu2SIvbKwo U4evuNPK2pX7g3LR4VDRtvyV7z4 2020-04-20 04:45:27 95.216.220.19 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=9600 +p reject 1-65535 +r TorchFlak kfuuipLzvfv4bYhgzH/xibag0WU DyQPnLVQwRXprc4/gOWa4lwwjaI 2020-04-20 11:01:54 83.139.143.131 9010 9040 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2190 +p reject 1-65535 +r bgsv khc8nxCBl0YDB5adNTMz2s6bnwk lZQ2bHL0MenQUpZYunYGxGlguYM 2020-04-20 02:11:37 62.141.39.8 9001 9030 +a [2001:4ba0:cafe:5e4::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48100 +p reject 1-65535 +r thardes2 kiBdbRG3GAzZHHiYl7VdC2LSLDo h1MBXTYbJukmrr4AOI+LlpabAMI 2020-04-20 02:20:13 77.190.119.198 9001 9030 +s Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=63 +p reject 1-65535 +r mediterranean83 kix4DWoylEiQqcK9sogDfrLwY5I uoH16Aqp9RjleVv6cp2VEdUKKuE 2020-04-20 02:22:50 46.101.192.230 443 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2500 +p reject 1-65535 +r mayonez kkKbtLb+GxZq4DR9A7PcOs9Xi8w UzfZ40fGWM89ZAEUhHA1PjE1uPU 2020-04-19 21:12:57 95.216.181.15 9001 9050 +a [2a01:4f9:c010:622c::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=34100 +p reject 1-65535 +r NSDFreedom kkskr6fwddBZ6O6yhMxACzPT0DY lGm95BFVYZzYa95BBkD+yrg60q0 2020-04-20 10:08:18 96.253.78.108 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8160 +p reject 1-65535 +r snap277 kk6sunUvVOqzFXKg9onhL4qQ60Q g34I1mXdl3EuEPl+Rq2VfQQj4+E 2020-04-20 09:09:47 83.192.237.17 44383 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2 +p reject 1-65535 +r king klkb/tFGrQ3tZdQm52ZasftDppk eDfcEd/Z6KzlngWHY/CwSoe+8mk 2020-04-20 04:48:28 51.68.201.118 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14200 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r nothaas kl+Cz60N24ORYfq55zVed0xzA3g oq82Jwmm3iLsSPV5LAkRjCPV69I 2020-04-20 02:32:32 91.219.29.238 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=161 +p reject 1-65535 +r 0x3d008 kmlVJ3x722zR4VYakYR8vNWweeU zB5j9DrnP4tTrNOe09d9nb9aqYU 2020-04-20 02:22:33 188.165.220.34 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29000 +p reject 1-65535 +r angeltest9 koi3W1/4hh7/Mqa+iCXMOKT5+MI eLMdVVJ+JRJJgN2gu+kFjq1W0XU 2020-04-19 21:29:49 92.38.163.21 443 9030 +a [2a03:90c0:83:2908::101]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48600 +p reject 1-65535 +r BexleyRecipes koxHCeZjsP8VL9Hxy91qr6O1SNk /yVu+rowHDp3LDvhyl4mpmNmf40 2020-04-20 07:25:08 18.27.197.252 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44000 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r desnaturado ko+hxoBIRWmRcHETl1cB/XXLMRs PQv6dDTzV0YXUjnA6zdFatX/G20 2020-04-20 07:33:00 45.232.132.193 20044 20045 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8 +p reject 1-65535 +r Fission11 kpu4SmgZjONeLygogShAr1wsvEo OAiWX0gk2AvOpLQn3x1YUMb6ksA 2020-04-20 02:25:18 54.38.219.250 443 80 +a [2001:470:73f7::6]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33200 +p reject 1-65535 +r Ichotolot65 kpvzfGV9T2nHYyTl/qdgpiSDgTs 4pDklFOpbvdbZtozd3+Ith/z8HM 2020-04-20 04:39:15 91.143.87.51 1080 9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14600 +p reject 1-65535 +r mpan11 kqEluatJGvwITkJXtVLQ+1YJDLM brOyEMJs+l9P25cCANqopX2Tvhw 2020-04-19 20:05:24 89.74.84.213 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r niftypedetes kqYIXquq3ZKLb46HFUChpBy8CLo 13+PcwXYxofeGQQYeFzNr+oxoWg 2020-04-20 03:25:42 185.220.101.13 10013 20013 +a [2a0b:f4c2::13]:10013 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40700 +p reject 22,25 +r Unnamed kqxDgalhK5WjrugwjfKUugkEfsE P5dRXofa8J2oIb6tTYDdMlkJcLk 2020-04-19 21:46:01 185.51.134.186 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6830 +p reject 1-65535 +r Fivedollahboomboom kq/6Pg8aI2wXW8Zkros1btptDI0 7dTwnQHKJvVzLfy2YjhUQaDCPyM 2020-04-20 10:49:17 162.216.242.122 31337 29030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2370 +p reject 1-65535 +r ecrehd2 krqm9B/SjCLxgrRGflQzxLU4nFE F33TnZPSnMGuSce7a9rHuD3ITfE 2020-04-20 12:29:41 217.230.99.52 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1340 +p reject 1-65535 +r Unnamed krutywaX9esXksYH7i3BwpGpitw U1+a+YOUne8pQxI0IwKea3A5FKg 2020-04-20 08:43:24 78.31.64.201 443 9030 +a [2001:4ba0:cafe:477::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49000 +p reject 1-65535 +r Unnamed ksP6vD1aNchZeCAPc8CQsJVADPc y3vYdWDpwbIDpR6tpXBOtbR1CrA 2020-04-20 10:31:22 107.189.11.233 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40900 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r angrydance ktGTpVnQt8pVU5KPB5wSvPw3Hbg NUgXGp8iwiZHZIJTgQ9tCXhWEks 2020-04-20 10:05:24 45.91.93.231 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p reject 1-65535 +r Unnamed kt7dc3aA6o+brSl5efSBeNvdON0 XEhdmpgyZk4MsunNHuOcZ18vgyk 2020-04-20 02:47:23 95.216.0.158 38574 49735 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=96 +p reject 1-65535 +r bel kuWnNQNfSAEgdojk9zDCWnpQh/Y hfa7EzTdpmsmOd+DWr3klihbGLc 2020-04-20 07:36:05 142.196.194.103 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=963 +p reject 1-65535 +r mamba kugHrF4jzNn+Yj6k3AILFieg0Js sOAMFzXRbeUM+HtqQnedeEDlXVk 2020-04-20 08:43:38 45.95.235.197 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8900 +p reject 1-65535 +r rouleau kugrbXHIBzx0i6dOgYxHi0tceTs cOINDTtszxnhU0k3piWlcYFoXlE 2020-04-20 00:08:41 103.28.53.138 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=80 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Aleantlar kvEGSsGiode0qXUGSEt3mAFviLY vm+ue0ezWPHHjUCVYjPs0eeEzVA 2020-04-19 23:18:21 185.244.192.119 9002 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1860 +p reject 1-65535 +r sipe kwVRoJFk6rGuqoTzKrPyIN6VI8I FJNC8ZRbexRtVyBOXg1WTyWZb7Y 2020-04-20 12:20:23 188.213.134.60 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=139 +p reject 1-65535 +r Quintex50 kxS9lQO5AUJhplwiHXflc4nbzME IAn6z1o/YlvKeLQt+Nwzp9xv2no 2020-04-19 18:54:36 199.249.230.73 443 80 +a [2620:7:6001::ffff:c759:e649]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15800 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r TheLeonardNimoy kxx2LfpxzgUXasHzQC2GayoMke4 fkicFE23hOB1pkEu2aYkPebyIq0 2020-04-20 08:23:06 198.74.61.51 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=14 +p reject 1-65535 +r bauruine65 kx99exAsh9ArCQ0DBnrrHePQLJQ KmeN+yxI6JSK8gonxBN61WKN6rc 2020-04-20 01:56:35 158.58.170.183 4443 5580 +a [2a02:29e0:2:5::7]:4443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12700 +p reject 1-65535 +r fdpstueckscheisse kyHQTpU8oJS2Nk+jSVraUrHbSp8 fTf9y62oZbu0I8x58/JieQtx51k 2020-04-20 10:18:26 140.238.228.95 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1230 +p reject 1-65535 +r snap277 kygB1iKyRSMwHy2kLSB8VIWvem4 JFnq9NUcPCLI9JICdTR7L4Okoas 2020-04-20 12:34:22 37.6.77.0 44731 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=92 +p reject 1-65535 +r dust2dust k0jpJ84ofzWuBvH3TGe01rx2aQE IlXlyTkJ7g1fBaMDms1sHxgiJh8 2020-04-19 19:40:53 158.69.207.137 8081 0 +s Fast Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=14800 +p reject 1-65535 +r snap277 k1jmeyTcoN3uF+77yljGiayH7Mk 0HFLKUWX09fcEixjtqnSjPEkPTM 2020-04-19 19:44:14 155.133.57.209 33037 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1240 +p reject 1-65535 +r hiddenPUMA k24VcDNlFnwHDeORdx+btgIARGA 4HTD35DFacYOR759SJjw1yiWJ2o 2020-04-20 10:13:17 213.170.216.111 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=723 +p reject 1-65535 +r FFtor k3KqhebELzNMuR+f6bWbURjFZig ULgB85kBNxKzB0Yb3k7svLDzlQw 2020-04-20 09:36:43 87.231.29.62 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=813 +p reject 1-65535 +r Fission02 k38gHSeXMUlT8mjSUvXJjT+p9x4 Re7Mr8d3wcM+tM5sMhq0sSSYBfQ 2020-04-20 12:25:48 149.56.94.217 443 80 +a [2001:470:b14a::5]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11300 +p reject 1-65535 +r Unnamed k4eigJGnksTgG6RQsKQXLc999rA l3EDnOm14D0cFcHRDY0pZ/c3fyI 2020-04-20 01:03:39 213.179.54.190 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23500 +p accept 80,443 +r BravoRelay k4jSJI20jLrCPtEyZHtwG52be6c x/Rq9GTe7NDF1/ahwCrCmaNuwHA 2020-04-20 03:40:37 49.12.3.171 9001 9030 +a [2a01:4f8:c17:52c7::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24700 +p reject 1-65535 +r ididntedittheconfig k4wnL0C1e3DLvXmlWViMy9cPPDs 7Bx4ineUi3w6FTZew6BMaj5NL1g 2020-04-20 11:39:07 100.15.139.123 443 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1240 +p reject 1-65535 +r snap277 k45TXFpxchWapYTNlOXOKi5Vnvw NoezaQps1tdPnNNxDz/yNZNEJvk 2020-04-20 09:26:21 62.194.68.33 42267 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=311 +p reject 1-65535 +r pricklyshirt k495Kvl9/IFUzaw09kbY9H1wQ+s A1UeK5qHDhSCgGOBv5RbSjcxd3A 2020-04-19 22:33:51 167.172.111.100 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=1720 +p reject 1-65535 +r F3Netze k5Em6k0lyyEqeXRsEzGU+KJMQ1s qH6BCNiIZSenBG0SEilkYfrrkYg 2020-04-20 06:34:09 185.220.100.253 9100 9101 +a [2a0b:f4c0:16c:3::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=85000 +p reject 25 +r snap277 k5L4aIT7fLdJmWBN7NpgCrTqMS0 IQswkcGEBZpICLwitVxuvIQtXbA 2020-04-20 09:19:07 94.34.129.103 33095 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2220 +p reject 1-65535 +r Unnamed k5UpJqXyWS5+jB3Uee1hWIgErAQ tmh53AayXMVYcAFEc4BTt6RswSI 2020-04-20 10:30:01 91.219.236.53 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r SixRelay22 k70CCb8i5Vih6L592q0kfPt2jVA dj6gTxHqZl6LB8/81pdVWO0e8RQ 2020-04-20 06:47:54 5.51.254.248 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5030 +p reject 1-65535 +r tpzzs k8HhTNYAz1GxF95zZ0HnQAoGmvw KFn0vO4HViv3GcJUsSJ0FOKF4sM 2020-04-20 00:48:49 188.134.83.100 9001 9030 +a [2001:470:28:3d3:b62e:99ff:fe5f:334a]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9510 +p reject 1-65535 +r bosabosa1 k8vB5BREBqtnYeAxT0uzU/g4zQo WxhgolEe/lsP1SPdHY5b4QYBUZg 2020-04-20 02:41:27 45.79.73.22 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r hougeMiddleRelay k+TGa3Y/GduaFM0AgICLfSk7VbY Ixe6PWZ3U9sGbNHgrBY/kKJfs50 2020-04-20 12:31:42 51.83.217.199 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16800 +p reject 1-65535 +r Lotor k/Ta9PDeXmhnziCg+cfAWYNNrK4 I16/k/6XA0cwARpmbU2e4wUbeFE 2020-04-20 11:34:37 94.16.115.123 9001 9030 +a [2a03:4000:28:5cd::c001:d00d]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28600 +p reject 1-65535 +r 3728effcaf4e lAG7YIgPgE10h2a1TYlB2JtolzA gc8OFvffhD1D7YzAgvix+/bru74 2020-04-20 08:11:02 51.81.254.1 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8760 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r kogis lBmFzeLcnWf+wHA6j/0GHjtLqKk TlJxLCAEhDsrNoqJw8MNRGiAP78 2020-04-20 09:32:36 188.165.236.18 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=5100 +p reject 1-65535 +r Unnamed lB3dDUxJw8OXhyJ1Un3EsZIHG2k Yz+qXYlGnbX/eYxZVyEOH4CQhHk 2020-04-20 09:07:55 212.237.96.162 9091 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2280 +p reject 1-65535 +r TorOrDie4privacyNET lCOnK7yLXGrJ3p9Xc16ysI5BVug G3dK+3yZZCfadjuneTXG+YM/Evw 2020-04-20 00:44:51 37.157.254.37 9002 9031 +a [2001:4ba0:ffff:11a::3]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34000 +p reject 1-65535 +r AutomaticArrestLine lCUWTkfnuPKqZpRPvcOM+vs+C3w pUX3zSy9EdYjCiMsEOYmmrl7EkU 2020-04-20 00:31:15 23.129.64.195 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6650 +p accept 1-65535 +r paranoidAndroid lCX66iyEShIFNMXW3KUIyR0x0y8 jb3FdwjMq/Mow6u+hlfy5uqg5tg 2020-04-20 05:47:25 100.18.29.69 42901 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=268 +p reject 1-65535 +r byrdeman lDGMwimaOCbYGJnrI8JaK31rH/4 BvklmaGIMae7RYXx4emSkYzYlDg 2020-04-20 10:56:25 213.227.133.129 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=42300 +p reject 1-65535 +r rs1 lDSUs4z3T73THSbZLWbVNYJFTis Djp5SPc2AlfHRPsiajhUmj7TdY0 2020-04-20 05:25:56 37.35.107.238 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7 +p reject 1-65535 +r harmony lEbuKDQqi0UCtNok2hiFG8nlFuA LLhJKE+/PboOfO+dIKe2p6k40wI 2020-04-20 05:51:20 185.100.87.243 9000 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed lE8fn3nUPp5In0Pz/grKLBK61DA WrkU645GAvxs9Avv8cqKql8dzuE 2020-04-20 06:44:59 185.38.149.27 60376 44183 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=110 +p reject 1-65535 +r F3Netze lFT4LUfroMsMKkv+eWYYHb8QgUc 4+4HubKYi3/72Xd1MYLiF/MqsmI 2020-04-20 07:02:56 185.220.100.242 9100 9101 +a [2a0b:f4c0:16c:15::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68000 +p reject 25 +r Totonicapanp5 lFa7s/uSPdHN7FyLRdlhW8k33EI NSUD+6j5uztpyu5v+/w3Y7WS/fM 2020-04-20 01:18:34 163.172.14.221 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=37000 +p reject 1-65535 +r snap277 lFiN7bujGkAOk2ukLgiSBnkxoh8 D/Z9fnEqQrTEBpuMvuMTk2p28tI 2020-04-19 22:35:29 181.114.149.190 45403 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=28 +p reject 1-65535 +r Unnamed lFqi9sLsZEtTPQSMeeA1ps8JLE8 Imkdsj970oViVNn3eA5owK9zAKQ 2020-04-20 05:49:07 51.255.39.110 9001 0 +a [2001:41d0:302:2100::78f3]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18500 +p reject 1-65535 +r Aframberi lG37RhaGcIJewacl0XjUvgh79uE JxlPTna4QeRMfTtNpIrN1gxLGlU 2020-04-20 10:37:17 157.97.23.177 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3600 +p reject 1-65535 +r privacypro2 lHjMRqxi6WoAMfgy9UjDoVOhoco o0SXo5D5cDL9vi5oETxvGNb9/c0 2020-04-19 23:48:45 172.104.136.137 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=990 +p reject 1-65535 +r SPFCFutebol lH//RWz8713KsJQi4ZRajSGu7GI mjpyYAGTdU+x4udH067pp7sEREs 2020-04-20 03:35:47 81.17.60.24 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1170 +p reject 1-65535 +r PrivacyNow05 lIkPN84M1dAgdzynoOOXqlkuWvM mT0zhB5sBt9ZwktcUQ09w0hqsiU 2020-04-19 20:18:44 88.99.189.40 9001 9030 +a [2a01:4f8:c0c:6075::1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=25000 +p reject 1-65535 +r tor4ever12 lI2rhzWWIcuN99NopMRsf5BayEs OXWjmjAm64ZDYxCHk0ejICoTjtg 2020-04-20 12:32:17 45.62.228.131 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2880 +p reject 1-65535 +r koubtor lJKqKir3c+48lcbswlJtgi6/Tjc W9FH/+hbWdTnItGLRN4eUMOIGr0 2020-04-20 02:03:53 86.239.217.252 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=145 +p reject 1-65535 +r myfirsttorrelay lJLMBGoLsBY4wjMgc6oGALPzElI QSZeMv5bwyg5QUtWzRj53mmzIJc 2020-04-20 05:23:33 86.80.224.202 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10300 +p reject 1-65535 +r effilochures lJVFlgZVwXom9lJfZ8VUIzz+Fj8 7KKtfjNyLPWIPiYNg37Jk4mhUd0 2020-04-19 19:06:52 172.105.116.230 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=340 +p reject 1-65535 +r torrelay lLcQxBuej7WS0JFucbWon/SZWZY zqn8kPwNlHIlUaDlW3YHHhktRIE 2020-04-20 03:25:37 138.201.35.6 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=150 +p reject 1-65535 +r BostonUCompSci lMS3uMUMhqkraiAQdTnuJnjPmig 0IVIsYm5wpLmlyzbLTfsujTNEHc 2020-04-20 12:34:04 204.8.156.142 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=4930 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r snap277 lMaAOyKL0VheKHHfAbYq3uxshxc ymc4DRHDm9exxPw+h1r57Qw55BU 2020-04-20 11:59:35 62.99.32.125 37743 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3900 +p reject 1-65535 +r snap277 lOnDDDwW/q6dx1NA8Ztc0f9BYkk rCn6TuINxaV4KTnThjAMNgJKRNk 2020-04-20 08:18:33 5.58.235.157 38913 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1020 +p reject 1-65535 +r unix4lyfe lOw0uHGTZQS+cGcbRHYLyZJC4fM yAyTerA8HsVftqiQSZB2b4ZZiSQ 2020-04-20 01:23:00 71.19.155.121 9001 9030 +a [2605:2700:0:17:a800:ff:fe3e:bcf8]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r RealityLeighWinner lPFtor3boJKVT/jsKfkjSmmUlAM gE1I90IMJoj5Ptr1Mn+SrnA6lcI 2020-04-20 02:54:51 77.162.229.73 443 80 +a [2a02:a446:5ef1:20:d072:53ff:fef4:ea59]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13300 +p reject 1-65535 +r FreeZion lPNnoTApbJ65K+MuJarrfyJ94NY bQcOeUBWQx09WihcRCg61mtb+sY 2020-04-19 23:55:31 87.15.107.71 9443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1130 +p reject 1-65535 +r FakeVolleyball lQE09KujKR7uTnovJlRttwcHdqQ kfGW5ZoIh//RXl2xWHizHGK5XkI 2020-04-19 23:12:00 195.123.212.228 9001 9030 +a [2a02:27ac::245]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7500 +p reject 1-65535 +r snap278 lQFSe77eHPN6MOr+xDNcyLZAjeg 5VGHsLv1jZNPWRJVczz4WlAV3hw 2020-04-20 11:34:01 197.204.199.160 45647 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3 +p reject 1-65535 +r angeltest5test lRMHunTkSpycIIsvE0zaJAmUQHU LGmJfS5AOZiDs5MeUaqd/BHGBNY 2020-04-19 19:29:29 51.38.147.96 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2460 +p reject 1-65535 +r snap277 lRkhYqyopnE0+wh8AWTr3dNM6xg fOWGoRzIudZt8hAjSFLUavC5ZVg 2020-04-20 05:58:08 86.242.101.169 44809 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p reject 1-65535 +r Unnamed lRkt8BpvNYq9qROFjUkowAiOT1s I/OG4xhWPY/EtNxtWqoG7R6Gf4s 2020-04-20 01:27:34 151.24.223.92 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2370 +p reject 1-65535 +r ragelafu lTZUe1+Xz4dowGehfE0B8agmpm0 FjMNxWFw+1+CO1HfvqtQOXBxg4s 2020-04-20 00:00:00 173.212.218.165 9931 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3910 +p reject 1-65535 +r chopin lT23CfKi3syNdWBmH5NOZEEURPc q8pDgfQSO4OUbV1+1hEETyuMd3A 2020-04-20 12:07:37 93.115.96.15 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r Unnamed lUsiHP3D9WoV/jwp+F1f40uxRLI 9fFgqOJeczzHD/ZlCj4rLr6F1gE 2020-04-19 22:45:23 50.116.47.139 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=823 +p reject 1-65535 +r MrRobotLives lUsq6o/c8N9wGi7JKFZAuSlUbfc nSkEDF+quZtyvoRyBmxxycQySsc 2020-04-19 21:05:46 68.196.184.151 8443 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1030 +p reject 1-65535 +r FiveBoxingWizards lVT8DPmlIAVC4zdciuTpOcRZQig q4EBsCueVZRR5QAQgsLrhWZEy8U 2020-04-19 20:14:08 83.58.209.215 80 81 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3300 +p reject 1-65535 +r jaine lVbCxiypqaKWwEm6e9wQq9P/AXA K7DKbZ05EQG1mjqvD+yYTDUllbE 2020-04-20 12:28:28 5.249.145.164 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1390 +p reject 1-65535 +r Tor4oomehief lWoDt18Y5OepVClGlOwQAeXFgmo neonEBLP+CQcza8PDy8MsG8GJzo 2020-04-20 10:31:15 51.68.77.241 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=17500 +p reject 1-65535 +r Unnamed lWxNk8jYpokLUr92N0qKBTIjmgk BfSuowf9PSrTyTa5WOKznQVBtyM 2020-04-20 12:27:59 92.118.47.206 43471 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=8130 +p reject 1-65535 +r BlueMonkey lWzVM7fDMcZ10wpQkAoul3fUJ4I FXhIKhqECWaqC7/bRd5fZhhU6Ac 2020-04-20 11:36:52 13.211.32.165 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=122 +p reject 1-65535 +r niftytamiasatsali lXNU1yBCcZwxCpB/v+QqMjLHh1c Q7vEXvjOIvxwHiYdQO7TEiJKHKM 2020-04-19 21:26:13 185.220.101.26 10026 20026 +a [2a0b:f4c2::26]:10026 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34200 +p reject 22,25 +r snap277 lYWL7oeKDMM3xgIA+YuHdc2ac/U UvutLKPB1wID3cN9pCRSLzk73VA 2020-04-20 06:39:21 151.66.15.240 41891 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=611 +p reject 1-65535 +r f095 lYnaTIFhD575RMmpNFYH+JtvNoA hLlAQMp6LYsR2hx4ajed/KUQTg8 2020-04-20 10:08:36 176.119.158.31 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1830 +p reject 1-65535 +r FiveBillionEyes lZcuzQbZyupl2KfFzSYDnmOyKsQ DlqLKJqTG/QGn1RqjvoUqnzVlTA 2020-04-20 11:30:02 203.206.5.96 2501 2502 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=290 +p reject 1-65535 +r snap277 laG4KqX+sIqn7zmq3hoQNEpgofo l4WLEEfD0cl+PgWJxAOmg8BV6mo 2020-04-20 09:11:01 62.57.144.115 43951 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1300 +p reject 1-65535 +r Unnamed laMPWOPeO+ddXLr3Qmu/V4byweM G79fluiV2HVUrMDeoT07k9WMfuY 2020-04-20 12:21:47 47.49.35.242 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=227 +p reject 1-65535 +r kriefukegtai laXdSJLol3kHDeb9z10YYTkGGf4 dkDTZHXzDdR7r+Kn2/jna/fBga8 2020-04-20 00:40:12 82.221.131.102 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7720 +p accept 20-23,43,53,79,88,194,389,443,464,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r niftyentry92 lbkFLuzbS4M/Ewq9Vk5yBkO6eVI IiGC2Pqh62uZEGTSOLFGIjNMGak 2020-04-20 10:52:51 185.220.101.232 10092 20092 +a [2a0b:f4c2:2::232]:10092 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21700 +p reject 1-65535 +r DontTrustVerify lbzNAxDOgp4xRYrxVCmEfn9dJNI r3NaSKc1/+7xgbhtP8hH3EtxZmE 2020-04-20 05:14:11 5.181.50.172 80 3000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9200 +p reject 1-65535 +r Menggengges lcFqWzM6kGz5yGzeuLYuuKSC/lw StSzSelHcyWtG2Xoo1MD/tOYPQc 2020-04-19 22:06:08 77.57.197.124 12007 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=830 +p reject 1-65535 +r KuroNeko lcTvN4cGmjoaO1/UBXo0ypfBccM WJJuTAVpjWCaPL5k8cAXpLGT9mc 2020-04-20 05:55:48 64.237.51.46 443 80 +a [2001:19f0:200:3006::10]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=1380 +p reject 1-65535 +r FelixIO lcbF9lv8fAbd12UBXmF4U7qZPJQ ICk0U45pV2eaz+i8POno9ZBNjS8 2020-04-20 06:56:36 87.118.92.43 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20700 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,543-544,554,636,706,749,873,902-904,981,989-990,992-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r angeltest27 lci5QY508/+A5cPTr38DFW/7v74 RLlNjSp455nGHnTUq/1qIISRLrQ 2020-04-19 19:06:18 185.173.177.153 443 9030 +a [2a0b:6900:0:1::1d7]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6370 +p reject 1-65535 +r Unnamed lc/ZDfF3IiJljVzyi2G5dZ1dHWg SwqPO7EpTFvtzG2JIK3KUiiG+ec 2020-04-19 23:31:38 85.228.42.16 9001 9031 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=18600 +p reject 1-65535 +r boomshop1 ldCzRezIT9K/J6M7J2XfXgd6zb0 c2DPmj/rmZMMNFCbOunh4tVIoN4 2020-04-20 03:47:17 176.9.50.240 9901 0 +s Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r torzone ldeKBGpNMhThxbQhTi0Qn89Cvd8 whE4KFKTN6hOSHqif7aWV/+d2Zk 2020-04-19 19:56:29 81.167.185.151 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8500 +p reject 1-65535 +r pikachu le+soY40wmDd90lZa5d0AllOZzk y3FrlL0p0kctd4fln7edqGZRXmA 2020-04-20 06:46:17 178.17.170.149 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1510 +p accept 20,43,53,79,81,88,110,143,194,220,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r jl2238 lfPqXSrK6KWo7HJ1+awZWpNUYCk vANN8vJWoqcLbAmbH82VlPt4m6g 2020-04-20 01:26:13 92.200.190.134 9001 9030 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=79 +p reject 1-65535 +r flowjob01 lfp1hxfRhcvB1e6ZKq4IStBBkn0 fJeaptlZD6+aCNNY2koQdrkNa8Q 2020-04-20 02:03:48 195.128.103.192 9001 9030 +a [2a03:4000:35:4b8:b82c:86ff:fe72:8091]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=51000 +p reject 1-65535 +r FabulousMonkey lfzXGXSYX4y1RoIePcTYNHlPd/k pp8PIF/6HkjoF1utvnNSkAOpYqs 2020-04-20 01:23:11 142.167.34.174 26303 9032 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9770 +p reject 1-65535 +r Unnamed lgYjpFy0/QUq7s7eiSsX8xdh9Pw xObMhYNY6yWMyIPCXZdPyduaZic 2020-04-19 23:40:07 80.250.235.81 9002 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1000 +p reject 1-65535 +r upsuperRelay2 lgcGmHFNwHris3eGRiW372TjO/U SMJdzy5IBJ1LtKqJBgXu09GKEdU 2020-04-20 03:30:10 212.24.100.138 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11800 +p reject 1-65535 +r snap278 lghQeq+r9N47Z6RmIlQXkNK50Yc SSNXP1O3jvpvVq9vLzUFIxCbLYA 2020-04-20 12:38:54 84.71.48.228 35949 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=759 +p reject 1-65535 +r Unnamed lhMaA1LYEoMRG2O9xCcMIo+QzF8 GGrH5z6x+Z++eAE9zr387OrDSgU 2020-04-19 20:13:41 91.121.50.14 51605 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r castellum liEfV/oKOZ7EjRlyuj+O5uTWl4w CseZMiO7eD8jPmXnRGyQocClFwo 2020-04-20 07:58:18 185.163.46.138 9054 9030 +a [2001:67c:2db8:301:138:0:108:1]:9054 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=694 +p reject 1-65535 +r Assange015lt lidZIRBdwtQbea11gEowFzi1Hkc Yyct1Tf/XqsyyQa46JL3xjEV5+Q 2020-04-20 12:25:24 213.252.245.202 9001 9011 +a [2a04:2180:0:1::e308:9180]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p reject 1-65535 +r niftyguard71 ljTp9T60aCiufgaDn+5ZWVAoax0 QFHD620J+MuCDlcsApp4sPUlQJo 2020-04-19 22:16:43 185.220.101.190 1190 2190 +a [2a0b:f4c2:1::190]:1190 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r w1d3p33p0 ljh5u0JNmmN6YxBdXCaiRTwsInI aa40vKL5HW+vCPbx+i4pDirhrkU 2020-04-20 02:40:50 178.63.87.165 8443 9090 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46500 +p reject 1-65535 +r inktankmedia ljjYpG2Munn4Ei134Djtmev9rq0 DTbAp8gKMmi4EdTQM1OMYNteQjc 2020-04-20 05:02:52 213.243.138.19 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5820 +p reject 1-65535 +r sichermannac lkQAvXL4Xk7zVB3YV46RMepijdg G93qogsgmkLvqCW250p/7rWayjU 2020-04-19 21:10:41 94.134.36.91 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=956 +p reject 1-65535 +r MHcXthX9Eb34WYyEN7H lktOinUmOml2lUHydkVj2r3ZldI rfls9kRXNw28yqNIy7eu8d4DMLk 2020-04-20 07:26:20 68.67.32.31 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29100 +p reject 1-65535 +r erdapfel lmGslXF3mIhPPjcn02DdmNZnJ8w aFmHrEIF19q725K2bC6+//YPYQE 2020-04-20 02:17:19 109.70.100.5 443 80 +a [2a03:e600:100::5]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=85000 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r niftywabbit16 lmSn77QF9VXzwAefp2GLLubObSo JWpAmDYnJVFIU4YDMMplxrT7v1w 2020-04-19 22:15:38 185.220.101.156 13156 14156 +a [2a0b:f4c2:1::156]:10156 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33000 +p accept 80,443 +r Toray lmUkkar+mxiWPAglmhqPqbIt70E KOvXvRVyZTA4oxCr4kLaUZtnURU 2020-04-19 20:01:20 94.224.67.24 9001 9030 +a [2a02:181f:0:4063:c084:b25d:dd16:26cf]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=237 +p reject 1-65535 +r c13chom lnh7EuPDnUt90Htai9GmhDVh8xY h2aahlJcDTY2ZU9YNGYE8DAIV4A 2020-04-20 00:26:09 84.10.80.222 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3970 +p reject 1-65535 +r laeviculus loTE1scRMe7vLlwjw+ojSmhM1QE NN0gjNA54YTRRyJ0SfWlg3f6XYA 2020-04-19 19:43:27 51.15.77.244 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24700 +p reject 1-65535 +r moria1 lpXfw1/+uGEym58asExGOXAgzjE cswPbp4f0UF4IuzMAHCPtgA8VTU 2020-04-20 02:44:04 128.31.0.34 9101 9131 +s Authority Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r puls3r3lay lqCY24yHcTgPP0f7BO3su5HMYtQ nSIo+GuQkOFBV5mPlU8cpyhx6Is 2020-04-20 05:58:33 92.222.91.41 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3140 +p reject 1-65535 +r fiedlerRelay15 lqUWc3HXhOzpeaHkUE0lq/6FPow +6th7WdGDml165ynfUcUevPArVQ 2020-04-20 10:09:22 185.233.107.101 9001 0 +a [2a03:4000:24:82a::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5990 +p reject 1-65535 +r cx10TorServer lrNYdE4dsNbbuW0ywn+R6faVJ14 mQzTYv82O4c21KghGHtEoRZrw5Q 2020-04-20 05:57:30 185.2.31.8 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2920 +p reject 1-65535 +r dragonhoard lrcPhrRWI7TscejpU9zWGgXVuqw QxDq8+l4Hp7BLUoDxfxwERLRulM 2020-04-20 11:23:46 159.69.36.3 8080 8008 +a [2a01:4f8:1c1c:2ca4::1]:8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r TorRelay01 lsqpF/ZbzWLOzSNvZ2Ur/Xxp5S4 2VcPIfCPSRT6aHqZa9ofjNyR+qc 2020-04-20 08:27:45 104.37.193.102 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4820 +p reject 1-65535 +r niftyalloeumyarion ls/heKHRJInZ1ZoMrhf+hvWjp58 l/aklIMT8gKrwEpa2eepFoyv9oE 2020-04-20 03:25:54 54.38.145.211 80 443 +a [2001:41d0:800:656::3021:c5a0]:21002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45000 +p reject 1-65535 +r winR ltPY2MY61Y2MrqG439U5o6gPBA0 ps7KFY9LrpsyxkGMNS0o+48bwj4 2020-04-20 10:35:41 148.251.169.246 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=705 +p reject 1-65535 +r Dagonet ltTGHbWzjser49ubuHqXqFh7gIc mSJyAAZ4NfkWhpzqYsLklkofOB8 2020-04-19 20:06:44 145.239.91.37 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19700 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r thorship ltr9zpK6lOTMlfgxSuSOJypwL9w j2BvvGNS5hq8Eqkbo2/16keHL68 2020-04-19 22:22:37 91.219.237.117 443 80 +a [2001:4c48:2:8400::5bdb:ed75]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1760 +p reject 1-65535 +r Honkler ltzR0XwfD6Te0gfBSOVMClVVMHY agOYoszfHx+7pfR4lTHKUBzoltU 2020-04-20 04:43:58 108.206.76.242 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12900 +p reject 1-65535 +r karfiol luCV1c2/w5iN63COwVU0ZHJALDI pwPFulzj+YWW/m6m20ov5ScSQac 2020-04-19 19:16:23 109.70.100.11 443 80 +a [2a03:e600:100::b]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=76000 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r FreeFlow luDRnXNdRwOYROqDNyGDu2Bvh7Q nhgBuwiqJzD3bcyS1c2ZGlr1L3E 2020-04-19 22:26:54 149.56.101.31 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14500 +p reject 1-65535 +r gsuk luhslhjtMyCkfhQzYx29WWC0j2A mLWrwgo5LaXvDdyQVQCcWdGRmo0 2020-04-20 02:22:39 85.119.82.151 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=487 +p reject 1-65535 +r Torrr lupOLIfVuZcTIBzKi3Etg5/XbFk 5wdVNPktRfQe8DdUMR1sUCA+F60 2020-04-20 02:00:16 54.180.106.131 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=200 +p reject 1-65535 +r isnt lwVlkenlgXL/dsyLIYezdRZRHHY 7G37gn+JvxGNbJgtQ/tvW4llVTU 2020-04-20 10:38:23 212.109.3.253 444 9035 +a [2001:470:de5f:bebe::1]:444 +s Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r Unnamed lwzmsXkn8IOr8Vfpv6MF/TngYuU M/wK75RLWK0EXNbgBr95em+j8TU 2020-04-20 03:15:13 185.100.86.154 443 80 +a [2a06:1700:1::7]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5850 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Determinist lw8JZtqn697kTjdyBFUnpoVOmXs K8XLOrB8Hn99lk7PxmumunZeZnE 2020-04-20 11:07:20 5.188.108.82 9001 9030 +a [2a03:90c0:d5::39]:9050 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20300 +p reject 1-65535 +r NeelTorExitD lxERcoXrmifXHAOtWc5G6BbZCyQ EGfb7T1sudnMsT2KgMiR6XTmqd0 2020-04-20 00:32:39 51.89.226.199 70 23 +a [2001:41d0:801:1000::db2]:70 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17100 +p accept 53,80,443,8080 +r Roazhon lxMyHUd/MVtYGKGJuBncl7PkBF0 6qcJtTmkEQmNcZA52uLechPEx8Y 2020-04-20 10:26:59 86.215.252.212 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=64 +p reject 1-65535 +r HrmonyNutrient lxUbxuudY8JqZy2VXrbWbjzLm5w mx84LqUWVcQAAw+0h3E3fCrrGP4 2020-04-19 22:57:32 47.254.152.242 9000 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3450 +p reject 1-65535 +r csailmitnoexit lxXIG6jFsMaYiCA191xn1tZD2+M gqekyafCgQLtvQ8hDIUAGUpyx84 2020-04-20 08:03:19 128.31.0.61 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19600 +p reject 1-65535 +r eddy lzYHUmvpyP2gPruvUn1nrm/9Zd0 5bw4Wht9fQYB7nNvBElqfrsmYko 2020-04-20 02:25:16 109.201.133.100 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22100 +p reject 22,25,109-110,119,143,465,563,587,2710,6881-6889,6969-6970,55000 +r atoratvm lze+sC25/mqJ8qAiCB+33ax1Gus wVsI+HIX7yfdLW8gM6y9P39WJnU 2020-04-20 07:30:22 37.218.242.84 8443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=110 +p reject 1-65535 +r Sandtler lzj49cOGza9XB9Dc7UKPKBPKKF8 7SunqHYt5bCtsKHo4UrcBfcs3tU 2020-04-19 21:25:09 78.46.85.216 9001 9030 +a [2a01:4f8:120:1381:421:5:0:1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=74000 +p reject 1-65535 +r NikowskiThirdNode lzshn9rDCHMhLYZlaLMMRNV7MuU oq43wZufEdO1vJ9It75gfyu+1E4 2020-04-20 05:00:58 51.79.52.15 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10400 +p reject 1-65535 +r wimbakinemar l13yymKIIoBEqRYv8NOLPuFSmM0 D8pv3QQcupp0DPVlZZBPFBperY0 2020-04-20 01:02:07 151.237.185.110 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 25,119,135-139,445,1214,4661-4666,6346-6429,6699,6881-6999 +r nopejustnope l21iN0D5EO/m+X5ULozoVqgs7YU OeKRf3LXxJEUiwTLDPIHOzW0Kzs 2020-04-19 20:08:29 75.127.96.101 9991 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=335 +p reject 1-65535 +r rayonx l3Z7Q+eBGaYTtGzq+Bp4j0XMBdk Q7MW3Umv38/asnaD9vBynOLWX6M 2020-04-20 01:56:07 212.47.253.12 444 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=35800 +p reject 1-65535 +r Unnamed l4Gw7oHpWUEHOvo3VCs27XEBjUk Q8X8g+qovRuWbyb/lUNNbykRIZw 2020-04-20 02:41:14 136.37.102.111 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r Unnamed l4pBsAJBhy1Oqt6WrcG369appWE zkNpxneC1VI/MKb5Q90AQSZYPsM 2020-04-20 12:33:10 163.172.146.92 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 FlowCtrl=1 +w Bandwidth=4020 +p reject 1-65535 +r Octogon l5suZ39tlIIM2NZFYm7Xdtyxy2w ZiQj5FwtMhZuooR62Z9fF2MO4lA 2020-04-20 00:38:36 101.100.144.174 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=133 +p reject 1-65535 +r paprika l67h7vvLtv+PpIICmDDo4QqWGIM aYp7WghMMp6oPLoEZCpZgVGHCC0 2020-04-20 02:17:54 109.70.100.17 443 80 +a [2a03:e600:100::11]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=84800 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r niftyredsquirrel l9KibqXJly5m0j9GmOlNvbqPbBg j/TpS0HDVpIqH+y++sEjJBbdOc4 2020-04-19 21:25:52 185.220.101.22 10022 20022 +a [2a0b:f4c2::22]:10022 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49000 +p reject 22,25 +r cebolin01fr1a l9g6TTZUlq5HZ4P4+SeC8Z/hR8M U17bC7ASmlHT6yqZPHMb1smgeMs 2020-04-20 05:58:36 51.15.243.138 9001 9030 +a [2001:bc8:47a4:d51::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24200 +p reject 1-65535 +r insane2 l+CMFfUKc4PgyMVuN9eTE8QwPng esznULpKuj1mbAag14EnsQRypto 2020-04-19 23:56:53 185.248.160.231 9100 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5480 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r sjllndsg38 l+agCRhfzypY2IRUXk4Y/2ErewY v0c7s3wRmebsGrQlvCFLXhCWUC4 2020-04-20 06:44:43 92.244.31.28 29001 29090 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=910 +p reject 1-65535 +r myOnionBox l/wCggkSRBvC3+Os9DPkVXFLCvU orV+M5x+otlvgifGxbrhPgRo4Xw 2020-04-20 03:16:29 89.247.163.201 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=556 +p reject 1-65535 +r WINDSOR mAO1Nu0gPJqq/D5TzUk1uoX/QC8 6Z8eMnwN6q8+jqynF38upnjXM/0 2020-04-20 09:57:03 185.125.206.186 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=602 +p reject 1-65535 +r BobbaSmith mAr7SF0ExWbHTVcEyWz4DSneN5M apJGTba44Q3D0D5fNsVAtrnmnjo 2020-04-20 00:56:49 51.15.58.212 4443 111 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3290 +p reject 1-65535 +r zeus04 mAsooZsKZpSANaP+FD5c9hPIQSI XXd6uB7xPlmHDXdh55NpJtyCCGA 2020-04-19 22:16:24 81.170.142.157 4430 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=67700 +p reject 1-65535 +r Fission09 mBON/T4sjInY9asR75tr/yctg7Q sBSwkQeGZGk5wdyxUXSHqST8SGA 2020-04-19 20:25:22 54.38.219.248 443 80 +a [2001:470:73f7::4]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36000 +p reject 1-65535 +r snap277 mCJ2uIPNayKOv+GY2aXiXxlJj9Y JsVOEhqmdvVB8fqM48W/J4y74As 2020-04-20 12:27:05 83.113.86.75 39023 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17 +p reject 1-65535 +r anais mCoQNInfhBBYW4B3t/2BMhcJPrQ /ZcU7sVaEj8fmAJyNFQyE95LAEc 2020-04-19 19:22:11 185.77.129.35 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9790 +p reject 1-65535 +r snap277 mCzSWJqTWuGKWEng+b2XB4MpTo0 XicjbhN1F9xSUVO3/l1aBR7gZx0 2020-04-20 12:36:52 86.206.37.26 41101 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=425 +p reject 1-65535 +r 0xDEADBEEF mDJaXrxKvQyUwRtDwlQQK+GcWqs kjy6NA+GASjL1/S/fgpQCIZNfMQ 2020-04-20 02:26:50 93.231.88.42 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r carbons mDULFlUUUqvH80V9BgMs0w9ygM4 YtMq+fraJMBqZSXJEKrisRz0dpE 2020-04-19 19:26:12 81.170.131.138 32000 32001 +a [2001:470:27:704::2]:32000 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19900 +p reject 1-65535 +r mfbsd1 mE6dx5IrXMmV6v1Q0jOKUhNuK8E 8SdEgfCwOSWQcw1X97mxwtkW+AQ 2020-04-20 06:35:20 64.137.178.157 9001 9030 +a [2607:8880::478:9d]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6100 +p reject 1-65535 +r lowbwrelay mFtMgpPpT7bs9cPE8SbWh8ztfyc JcDF7L7gAEMMlNokHQLNKYUhqe4 2020-04-20 00:26:02 172.104.179.210 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=184 +p reject 1-65535 +r niftyspinymouse mG4p+xfIx6H+r/ID8BLVkwugeds VBIHcTg23Dz/J+SPvKqJYfFOTLU 2020-04-19 22:27:21 185.220.101.145 43333 43334 +a [2a0b:f4c2:1::145]:21360 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35000 +p reject 1-65535 +r bolard mH0HBtQgcPHiFCqfzLVrOIeAjTQ IV7ILt+OIr0l+HN/NvZofDWd2qg 2020-04-20 11:24:41 31.131.2.17 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3120 +p reject 1-65535 +r ididnteditheconfig mIPzWW9qB5VmfH4aZxNqavYxHwA acg5DeJtqWkiVJqK5DLvK6VSNnA 2020-04-20 06:00:00 176.159.193.163 443 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=350 +p reject 1-65535 +r blot mIYlv9npsjs1xZAlBAdIbyj/j/w roChOTixHwgA4zLvW57EA/VS0uE 2020-04-20 09:21:00 107.189.10.42 443 80 +a [2605:6400:30:f754::1]:443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12500 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Piratenpartei03 mIZ/UkJQWi3VgchbHOJWCQuH8Tg cLJ6B0Z7M2bvPKUibnNxj9BQ8do 2020-04-20 03:15:25 188.68.43.192 9001 9030 +a [2a03:4000:17:688:b854:7ff:fe48:bdcb]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p reject 1-65535 +r PissingAnus mI/vqpk64L67+yS9jmwnJ5jGH78 UoDlf9qfaYNexqMy5WxYK08UdKQ 2020-04-20 08:34:19 78.72.211.34 9001 9002 +a [2001:470:28:365::6]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1220 +p reject 1-65535 +r GrvityImmune mJ0dFetMKPEfxiC2Iv7SId+vK6Y qe/Qv5VrzXTq13y3lPBHxUne5yE 2020-04-20 06:21:02 47.56.94.99 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=159 +p reject 1-65535 +r Walnut mKHM9iteYb1uK+pXNWm8lx/VDqg Cq3iP0vkMDBoXUVPRQ8RQ+AH7ac 2020-04-19 22:47:22 162.200.19.50 9001 9030 +a [2600:1700:581:74d1:ae16:2dff:fe71:8368]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4160 +p reject 1-65535 +r kbtr3lv mKHQvMxdRcfgltdjTI7T/78ZCMY M9sa6SAP8j6ifbo+CMrdG7X10FU 2020-04-20 10:20:22 185.61.148.80 8443 8080 +a [2a02:7aa0:1201::ec41:fa19]:8443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12200 +p reject 1-65535 +r Puhuri mLLJjAVlLkLj/rYhhZk8jofkIXM PlnDpDnQ964Cex/b9rz4JK2w5Qw 2020-04-20 09:35:57 151.236.218.67 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=210 +p reject 1-65535 +r 0x616e6f6e mLyEb7g9HUrtT98PW4UWMmNxHZ8 LiotZzLCZm3hCc5GjN0B9ko3VdQ 2020-04-20 11:11:59 178.17.170.116 443 80 +a [2a00:1dc0:caff:b2::26ac]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8740 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r cCc mLymPdguE6Y3/40OwoE1Zj2wjKE rSahPsrT6cqwvjnZvP66i6ratZc 2020-04-19 18:52:11 54.37.207.82 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p reject 1-65535 +r fuckingexitnode mL9OSiL2L1yPFWZQCEspZFhTp7k KyACtAqfRpsP3KOHnrProQpu7s4 2020-04-20 03:40:44 95.216.34.221 9001 0 +s Exit Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6 +p accept 20-23,43,53,79-81,88,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r LoomisTorRelay mM4d6HycVSSTkq7ilsefiiMTBoo 2B2mPC4hqWRN/iGhRcZvM6YJOdg 2020-04-20 06:18:49 192.92.6.32 9001 9030 +a [2001:470:1f05:94c:20c:29ff:fe52:f53c]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=310 +p reject 1-65535 +r OsamaBinError mNv6bcf0ATVm0J493G9sr1EOf9Y kFt/KNaRNeUYBR+kndUZVETkorQ 2020-04-20 01:00:48 95.216.140.239 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=26000 +p reject 1-65535 +r VirtualMachineOrg mOZZtbcBB2vkM7RyPyChgRc5WIo bL4FMAWU+Cp7QIrqaSmnCxfniCA 2020-04-20 11:25:34 178.254.30.66 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11500 +p reject 1-65535 +r pablobm006 mOrGfqaBQDgoXxoQDXhq2KDNKl4 KGV4OxONOII+kB1WY4FddZyHBmg 2020-04-20 07:41:54 139.59.45.242 9001 9030 +a [2400:6180:100:d0::ffa:8001]:9050 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=847 +p reject 1-65535 +r agrajag mO85gfdm+fh9fDmebdD/w4Z3Ea8 Q1ydpBgqEmLV6fuKQaL8ELhY8dM 2020-04-20 07:59:06 83.255.133.164 11311 11312 +a [2001:470:deb8:a5::2]:11311 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4270 +p reject 1-65535 +r TomaszPi mPDcN0q4FWvRKgPiXevM1duFocQ PrpBfNLJQLP8EQ2pIScFXIGuNLY 2020-04-20 09:10:44 86.147.53.38 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=631 +p reject 1-65535 +r EifoenRelay mPeIIAzGQGBpWwdVXwmo/kdnmsg FJJlHJHQqE9dXmsgj0Xt9mo23ro 2020-04-20 11:43:03 185.244.192.155 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r F3Netze mPeTxzIM48FaRTU6/MFldHpANm0 o9uR0fUtWPxI0oDnjro2qu5mve0 2020-04-20 06:32:58 185.220.100.255 9000 9001 +a [2a0b:f4c0:16c:1::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=99600 +p reject 25 +r glenda2 mPt1dJMtvW/p51FpmC7fulD4YXU MMFh36wYuIABIuTPepQgmR7/iSs 2020-04-20 05:58:12 78.47.117.28 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1630 +p reject 1-65535 +r nacor mPt2fa00OLGH9byJaOyLtXiWAyo Lb7jKqoGZm0/l6KM7GcxqNRR4WY 2020-04-20 02:57:05 185.65.205.10 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1990 +p accept 43,53,79-81,88,110,143,194,220,443,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r bartleby mQt6+DMIMbsivelnFBIY6tv0vr8 CXLfvONvwLa2mwB+Dkrx4N5FcAw 2020-04-20 09:17:57 185.105.38.81 19001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2430 +p reject 1-65535 +r torjittertrapnet mQyy+Nq9h1pypaehh299T2X3bl0 1ubTVQvLwd1DIt5P1Q3cCaJj2jg 2020-04-20 00:24:48 52.63.134.148 443 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9 +p reject 1-65535 +r niftyfoxsquirrel mRDG3uqZB+56784NoHL5T4br/Ug FN/xozqVX1XXRXgY0W1DHNjLN18 2020-04-19 22:15:34 185.220.101.142 1142 2142 +a [2a0b:f4c2:1::142]:1142 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=54000 +p reject 22,25 +r BABELFISH mStnOxg7V2c2DdZut+ZGVdZz5UQ MRLSfY1EiWVt22KPYP2cgN6bkc0 2020-04-20 06:19:15 185.248.160.65 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6140 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed mTOfPmi8zBORvxTIIdgHZv4MWVY L+4wE06ilUMKVujmNHCa28TrOfU 2020-04-20 04:22:38 54.36.166.86 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=133000 +p reject 1-65535 +r Bender mTVBqrVSUN09EAVwfMnSRh2pXIo tQ7moBqVjxXw07GnUTOjQxkKU7g 2020-04-20 01:20:24 78.46.141.131 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17500 +p reject 1-65535 +r relay001 mThFo5iB5qHE3Wyac/RVQdsQkq4 Bohu2pRmEmmS4P6+UNRef4v1ZAk 2020-04-19 20:33:49 174.140.227.118 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1400 +p reject 1-65535 +r WalkAway mTjjqsZM6dVrdD7NiyyiNa+533Q ej3ND2QKbT9tjIblBz4ymRQ9wdc 2020-04-20 00:26:23 31.43.158.11 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=240 +p reject 1-65535 +r fb1610b070e9 mUlq88MlzMchelxxRJ3gZTDGiXA dFd2NulAnw+add3NMH/VJdrARSU 2020-04-20 07:30:01 51.81.253.208 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13100 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r F3Netze mXH1GjJ0dYtcWeHWWA7SwT4Ty+w pRFV0dTORCL+jGkXUpQYsDJmqYk 2020-04-20 06:35:33 185.220.100.254 9100 9101 +a [2a0b:f4c0:16c:2::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=117000 +p reject 25 +r F3Netze mXPh6XMKWP26nhEtKzNC0sDZIbU gpZZ+7K9eEMIb5nvW/ftL49iH18 2020-04-20 06:33:38 185.220.100.253 9000 9001 +a [2a0b:f4c0:16c:3::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120000 +p reject 25 +r bl1nk mXdDV+f9HxE/JCxGnR05nURKpRo 4gvgQwLhfiuqnEdSmu12swc5y3s 2020-04-20 11:58:54 195.154.240.145 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r snap277 mZ4vv1RmE8BkWEagLUKeajjlf6w YHkdIGJb1h+p6RlwqpMu2dP/x00 2020-04-20 09:27:12 90.106.210.237 37945 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4 +p reject 1-65535 +r peu max3Zn2NYGJRt0nf2kc7LHgfeNA xt87SAPp3zqE+37FPjTW1zinWEc 2020-04-20 08:17:42 81.17.17.131 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17700 +p reject 1-65535 +r isis mbLL9u/YCs0wPoCJZWZo7yNgFc0 uHMl4gBESIv8wXzo3OxEhyvFb3A 2020-04-20 00:47:21 188.40.159.122 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=314 +p reject 1-65535 +r k0nslNET1945 mbT1dX3CcYLlKC3UTcIYKpu/bpw FPMxCMXITq2RVpXt1R0vFvssAoA 2020-04-20 08:03:33 104.244.76.245 443 80 +a [2605:6400:30:fd17:5f56:ce5b:f14f:e252]:443 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18900 +p accept 1-65535 +r TheDarkLord mbZMZgxCkiDy1dbQ36rTMV1iNqQ 325NlbIK6oxcB+aeVQDIK17g1uc 2020-04-19 19:14:52 185.86.149.139 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=2120 +p accept 1-65535 +r Unnamed mbfpg8rl3/pue/EiO/3F81/bDNM 5S5t8iwpnPqphYyBedU0hE8mxpU 2020-04-20 12:00:31 167.114.92.60 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed mbwc5VYzaat/FQqdKoUfnuHovCA Mc2Io5nlwdJmu4KVg0xms8zgFPQ 2020-04-20 12:38:29 158.69.172.228 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11900 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r prayerfortibet mcWs71rI49PE3nkATzrGSbN1iRw 8lCmYp2wAgbuIqbE86uZEkaG9NU 2020-04-20 06:37:21 91.244.181.85 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3210 +p accept 20-21,23,43,53,79-81,88,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r VccineEffort mdVohf2RYPujOmRouhE0tgg33CE BsV6emHxUD3nsXO86YWF88IC0n0 2020-04-20 02:39:53 47.56.192.35 9001 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=280 +p reject 1-65535 +r arbitraryKenzie0 mdXJpacjiYbR6h13cc+BtKGSxNA Hss8G78UY/sduc0mhXxb7ZMGrlA 2020-04-20 03:21:26 95.216.14.222 443 80 +a [2a01:4f9:2a:f21::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45500 +p reject 1-65535 +r ViDiSrv meJG20gLMTowErwzYwk8wmzSCcc UBWBgbIT60XMeCzbBjS3jJ2hdkY 2020-04-20 09:12:01 173.212.254.192 31337 31336 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5400 +p reject 1-65535 +r snap277 mgN4f6heWVBYva/JEzdc1CdgGyc f7ZKY4VBFFqWtH755c0UmTkyDTY 2020-04-20 07:09:32 92.141.95.110 40351 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3480 +p reject 1-65535 +r westrum mgjjeOo/oYGDywUi12ZVUOG0K7Q vssx/VPqLnvfyhYm3UQVlUA5oT0 2020-04-20 04:36:49 46.38.51.18 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1980 +p reject 1-65535 +r lnag mgqvLkO+N0TNHWzVMshh9aVo96k vfsFz3jYz9QAPCvSZQnM/o5hkH8 2020-04-20 03:32:00 160.119.249.223 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=545 +p reject 1-65535 +r python273 mg7FNwUIivDrKUFSThforGEWxJA RTCpe2C4iRXaz1T7LvukI62ysT4 2020-04-19 20:15:42 188.166.20.124 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1400 +p reject 1-65535 +r fiedlerRelay14 mjhWX1aP5+VA2cvwxCGxRtFcrZU tGdYLHm3vLD7UJnSTbJfiSxaRN0 2020-04-20 11:06:03 185.170.113.28 9030 0 +a [2a03:4000:15:8cb::3]:9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4350 +p reject 1-65535 +r nodvrelay31 mjh2023mjBESiVNtVGZiFjKmAac ZyMPx//MNJV//bPcPyUD47bkrjg 2020-04-19 19:07:12 45.62.235.112 9001 9000 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p reject 1-65535 +r lovelyspam mkL+7LBvvhebLJ/3K4Yo3gdbVlA AdtF0xI+wJYT3OrZy6cegdixCH4 2020-04-19 22:45:30 77.70.28.38 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=806 +p reject 1-65535 +r catmeme5 mkjsiq+y6MniBAhZY4PbdPEZZ0c xoxjq8F+UhvnUp7Lub12xf9+uCU 2020-04-20 00:01:48 148.251.51.94 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=85700 +p reject 1-65535 +r GuavaSpace mlKZpruGVtmI7d27vFFzbt0+9DQ dIpi931e+G061JnHMonyd/kPueM 2020-04-20 01:05:23 86.52.108.22 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1180 +p reject 1-65535 +r Seccom01 mldUzQyYc1XrPYrUvvSiqEF0BSA Vf8hwIFMAH+nlelUEEUVxbruA+I 2020-04-20 04:03:31 217.182.94.58 443 80 +a [2001:41d0:401:2100::80e]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17500 +p reject 1-65535 +r Ichbindoof mmhOxgQ7WlxfuR9wDNMCZhcDJG4 cDOsf6yFkRzFwaySs6KcEbaVYno 2020-04-20 04:53:47 31.16.168.125 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=99 +p reject 1-65535 +r snap277 mnNH51r115T5sAkmWagktF4OCec tZU45s9AFJa4kQ6HoRxqeQYWXis 2020-04-20 10:18:11 77.0.224.227 42807 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=81 +p reject 1-65535 +r tOr mnQXukAbjH794klF4YFFoe2nMOc z+wB3gCvY/8m29XVhQzQYnuW9rg 2020-04-19 22:06:08 163.172.182.147 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29000 +p reject 1-65535 +r D3S4RS1 mnXMAFyg2S/9P5YAOyUkwgsFPig 9+/cjXH8JQYe4pH8pBNmEqwwdQA 2020-04-20 12:06:25 78.47.43.253 6080 6443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=925 +p reject 1-65535 +r hviv123 mozZzWKynbBUnioRfrLwFPWv/vE iRS02w8gcliQccWS+CGGNm8zaJI 2020-04-20 07:40:27 192.42.116.23 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20400 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r jmarshall3 mpvDRGisFnd4Lk5Wsn2UepyZHi4 0WzkOBZkJGLlCgV/3pLiGUzYwQ4 2020-04-20 12:26:55 93.92.203.113 9261 9280 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=10100 +p reject 1-65535 +r Unnamed mp1I89XFcsh955I2o/qTU+COP/I /1K8BD6lVci1IM5Xe5y3z1LNJKA 2020-04-20 11:10:24 54.36.183.48 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=680 +p reject 1-65535 +r DigiGesTor3e1 mqP/NeelSdIzfpYjM9Nm4QL+TVA UnjHAEAT0uY2uDGgO7LJ6s8vSCs 2020-04-20 07:41:56 94.230.208.147 443 80 +a [2a02:418:6017::147]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r atomcats mrk7VCIUnl3/S+ajgU4vbZZI22o GGoiR5cyhJZCZldMzcyh1ps1n7w 2020-04-20 06:10:37 51.68.204.139 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=83700 +p reject 1-65535 +r ingmar msHm1tZdgDakLz9riK3Cvr3hfxc KdF0S0nT9CVw9viE4pnR/t+7J0U 2020-04-20 07:07:28 93.95.100.202 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p reject 1-65535 +r UncleEnzo mtEvDjzIcdWayhS7QHbN2Mso3lc Z1LcBDx9WSDg0PeCWtu022791Ek 2020-04-20 12:46:21 18.18.248.40 443 80 +s BadExit Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1170 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,989-995,1293,1723,1755,1863,2102-2104,3128,3690,4321,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8008,8074,8080,8332-8333,8888,9418,11371,19294 +r Torrible mu03O9lBXoO9z8c1/KKIF4gpRZo CUqILaTI95ZlXvrule077K2uTco 2020-04-20 05:57:08 45.79.218.205 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=310 +p reject 1-65535 +r tagos mviyTRc95ogBimvdQk++kGdszMY 8hPoAqF21PQ1inSpkhSAy1YwkM4 2020-04-20 08:22:12 77.68.11.42 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=79600 +p reject 1-65535 +r MirasEtrin mwW6Nc7CfAK2BduP3Woz82cGBXE gspMX3XU7SNxCan1rw5G3VQXhuw 2020-04-20 09:23:11 93.238.251.207 9001 0 +s Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2 +p reject 1-65535 +r tor4ever11 mw7fQKAmhHKZIWPv/GrmmKOmkWY NQOm2255VTNUJdS7vrzWAKRIMLM 2020-04-19 20:28:48 45.62.228.146 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1430 +p reject 1-65535 +r TorRelay myJUK6CF+OzMi20PiJe42xxubWU TFUTwNs8eKqo66DCFh22QDk1azY 2020-04-20 07:19:01 139.162.142.120 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=952 +p reject 1-65535 +r horriblefarmhouse myJYZZlGoHhZWZ99NhEpxPkSgk8 KGgKMuVeu+PNnWSbN/hMEiaqrsM 2020-04-20 02:56:23 79.226.146.26 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=320 +p reject 1-65535 +r mullbinde8 mySyFJYxFncENi4HNWqem/wfDwU cHN8SX3mdX6I/sh13+Ow7FZ6DfM 2020-04-19 18:58:15 95.216.3.166 9001 9030 +a [2a01:4f9:2a:3d9:200::201]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12700 +p reject 1-65535 +r MIGHTYWANG myvH79ZhByr63FM76NzxwZ2MLcw yJzqFIrsOD1oUgtMVBet5BqF9FA 2020-04-20 11:57:07 188.127.69.60 443 80 +a [2a02:29d0:8008:c0de:bad:beef::]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=157000 +p reject 1-65535 +r nodvrelay17 myxC+EtOmF1N2n6vqmZrVxF8m4E r5cRmFHXDkgrOnAF62+0bKgz1WY 2020-04-19 22:57:46 104.167.114.201 9001 9000 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2300 +p reject 1-65535 +r snap277 my0/5+PkL8xU4MXajfSKLUwnhxQ +bXZZ0ntZcpvYdptu5VdD7aXf3I 2020-04-19 23:57:24 89.156.108.222 37191 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5160 +p reject 1-65535 +r TorExitFinland mzHx8cFVT5/7NFWRH4LoGO98eIM ibzqUw3K3hwq1o+tp1xIF/FTLJQ 2020-04-20 00:33:18 185.100.86.128 9001 9030 +a [2a06:1700:1::11]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8000 +p reject 22,25,135-139,445,465,563,587,1214,4661-4666,6346-6429,6699,6881-6999 +r fiedlerRelay05 mzPAQ3Bi8S3BN/dXp0X8BM6iYjE tTIuKOAiXYFeYV/4jKsfYi2mRxA 2020-04-20 10:06:38 185.162.251.28 9001 0 +a [2a03:4000:1a:800::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p reject 1-65535 +r scaletoer mz56CtmgVJhMyH58qdXBFyAtRdQ m8SG/2dhJYN5EuhEHf5hDk/pTVA 2020-04-20 00:46:44 51.15.36.183 443 80 +a [2001:bc8:1830:e12::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19000 +p reject 1-65535 +r snap277 m0Fy89VMvgFHn5C15ijT4lh8o+k 1qo4erh9/M6orN2pevM/+gh5Gvg 2020-04-20 09:22:57 188.240.195.193 41061 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1320 +p reject 1-65535 +r TorTor m0b3vaOVDLAidIfhKCR2Ql6Ha8Q DuzgngkZsJwz5VACvLDAqH78Ka8 2020-04-20 11:56:37 77.254.36.176 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1310 +p reject 1-65535 +r RunningOnFumes0 m0elt8EI8i0a/1ROcNIu2Jl7lqM CFh8JEG5WMy1BKPN6+CDegUGE2s 2020-04-20 12:48:08 185.222.202.104 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2010 +p reject 1-79,81-442,445,563,1214,4661-4666,6346-6429,6699,6881-6999,9001 +r Unnamed m1sA0SQxc7d9W3S7UBvVKTsJ3yI +fKb2f1/tZz4pcbkpWuWzv3S9vY 2020-04-20 11:17:10 80.82.70.227 9001 9030 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=302 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r fleischgewehr m17TNw4AKuuyqbJeMhPBgXzNLYg mC8exXf93cptvLNKRTZtR00HFVI 2020-04-19 23:33:50 51.15.65.243 443 444 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28000 +p reject 1-65535 +r snap277 m2FVgDSAzmEox2JW2oGqnFHwgLw AEtU8nRRXeVhNup7wIkRa24w8x8 2020-04-20 12:46:40 89.185.185.9 32957 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r srcglenn m2NSaR1nfc6VyfSLJd37er3/fgM pJc2fGSeMrTEBREXWXoYb1S9NQM 2020-04-20 10:00:32 142.93.167.85 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17600 +p reject 1-65535 +r literalchaos m3iBfLce2ncYa1QZXjS1pd0apFo mqn8OzrEOdrCTGX4bEG8CfKXfd4 2020-04-20 01:22:34 138.68.172.176 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=170 +p reject 1-65535 +r niftypygmyjerboa m4FqWz6yC45Om50fuimb0/QPAyA Eakqe5nLFo0FlaJCMAL2jGV0W2s 2020-04-19 20:26:50 185.220.101.17 10017 20017 +a [2a0b:f4c2::17]:10017 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45400 +p reject 22,25 +r UenoStation59 m40IJ1yFKmd+jGXh3adEMb5Qm0w TLGtrfbu6S8EeRTMZ3/SYt7EhhQ 2020-04-20 05:58:57 51.89.143.159 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r Pannuba m41H81HZ4MzT/UJzpn3HbKQ4Pa4 tsJZwDqjg8PIEy3FHwnPaGoQ1Wo 2020-04-20 04:38:32 87.15.57.76 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8 +p reject 1-65535 +r niftyredrockrat m5SndtosC5dL9OBqNSEz7f5iA2w D/Txf6zX5j0o7wAKtdEVVFIlgo4 2020-04-19 21:25:51 185.220.101.21 10021 20021 +a [2a0b:f4c2::21]:10021 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49700 +p reject 22,25 +r bologniaise m5+F/wmPPmOCoqkz/c8eZdLiX+c WdPv76YRH9ApeJXx4i6mAdEwssg 2020-04-20 03:51:36 89.159.5.44 1713 11010 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r Pivo m6EonNz9kHuNQKirEvNr5iDdQIU l8ztY8gJk119OrHs5dDCbw6CVdM 2020-04-19 22:49:03 207.180.216.146 9001 9030 +a [2a02:c207:3003:1052::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16100 +p reject 1-65535 +r ekumen m6hOjJAINnb4bHQnyNEFkl8TcWw 8up8cipMOEtxIdSYBgEBDslFz7A 2020-04-20 10:14:44 95.142.161.63 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5300 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r huxrelay1 m6nXqekPF59tLsrN0QrFWlBKhqY ootkOf+z3qDmGGZmcUbTCFuh4HM 2020-04-20 04:32:19 46.227.70.220 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6140 +p reject 1-65535 +r calator m6qpy6MQnCyAfy6E1cnAyMFH3OY JraYwJv7Ckeb9AgbmoBE6Qiub1g 2020-04-20 08:22:52 178.17.174.164 443 44935 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3820 +p reject 1-65535 +r Archer m7ZiSi3pX8c8zEbANKg0lBcu5NM b3E7sEURdnkxsXD2I53wfMv6D5k 2020-04-20 12:17:50 149.154.67.50 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7330 +p reject 1-65535 +r FCKNSA m8ZIsYK5Kx89/QIqAKs6ofF4B1A nE+TBHpR8SkKk9YXWTBt89xS3QA 2020-04-20 00:13:59 91.38.47.215 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=758 +p reject 1-65535 +r Lavaeolous m8new3HRcZDwGF182kLzCmF7an8 XKoKrj9duRWCP5lHU+yacrGHTZo 2020-04-20 06:42:44 37.48.120.196 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=94 +p accept 20-23,43,53,79-81,88,110,119,143,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-993,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6679,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r vega m94qiA+YXIDojzrMREboJt6setE 7r13+LHo8Kd1fR8ar+A6IOJLvpc 2020-04-20 11:32:45 185.163.117.147 9001 9030 +a [2a03:4000:3b:367::]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p reject 1-65535 +r stauraum m+GByU6zZ19pvgkZ1IzWfdbQwnc fGZk9rPbhLObMWnxmxnWhQh6Vto 2020-04-20 07:55:37 79.206.243.112 9030 9031 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2760 +p reject 1-65535 +r TheToadHole m+7R4DEBsryTk8Vg/PE6Hkbkk1I CNzCHLEzywsAls5g5J2ZkPEN2CI 2020-04-19 21:11:13 97.93.219.51 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=303 +p reject 1-65535 +r Unnamed m/Pc6qotq5GKbjzUtD3PUQx3UeY 8DCAL/AjiWElm0VqYV8jqQBw5p4 2020-04-20 11:09:52 142.44.133.95 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9700 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r LonelyNeutrino m/ShNzB3SGXvbdcQLZivGjPlTgw 3or3v5nsmoBef+1s4w7V7tiucbo 2020-04-20 03:23:49 46.4.183.104 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29 +p reject 1-65535 +r Malazan m/7b+RoNJPORhuCLwHVwa5wODjA UFjHoYNNpYZL3NJAzjYTmXPc6Ms 2020-04-19 21:45:58 46.226.109.16 443 80 +a [2001:4b98:dc2:41:216:3eff:feda:27ee]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1740 +p reject 1-65535 +r Unnamed nAca+eyaxFpQHCxezY7j5H0bz/g XVd8PoLY390a8JsDYkakedP+sRw 2020-04-19 21:14:27 157.56.164.38 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3620 +p reject 1-65535 +r JanKuciak nBVZxGrQJ57vb9GH4bJ9k5wwMIY lCd8I9OAD9gP3FhU4gCxsOjc7no 2020-04-20 07:59:31 217.79.178.53 444 81 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49900 +p accept 53,80,443 +r Piratenpartei04 nB5H/yBfNJ1p1WmuftFTZqVVSkY kFSLMLxcPmnGXSiotDt277V7604 2020-04-20 04:27:56 185.162.251.94 9001 9030 +a [2a03:4000:1a:5de:6489:b7ff:fe8f:8434]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26800 +p reject 1-65535 +r QuintexAirVPN21 nB59khFdQxOFuMrqanwV+4nOI2s TqN3XykgiQXGtEW6m0yAgnmptvA 2020-04-20 09:57:26 199.249.230.74 443 80 +a [2620:7:6001::ffff:c759:e64a]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16200 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Trimblelink nCLAFTLQMMJJ3joxVcbjorwzs2E bxbQVCyZKM44O81NT9jd5mi3784 2020-04-20 02:30:12 46.246.126.62 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=705 +p reject 1-65535 +r DeepGreenResistance nCv5seMOuxo4NvoEvu6MwZLMHls PCJwXdm+J4cEEJP62GgN5bOf9rg 2020-04-20 02:54:17 185.165.169.138 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=872 +p reject 1-65535 +r Unnamed nE2u1HWapm0Ok+snCTvSHP4sInE 53IqWQNHaPq/z4nHJdQZZYiNwdY 2020-04-20 12:06:09 130.225.254.103 443 80 +a [2001:878:346:1:1::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30100 +p reject 1-65535 +r geonpvr nE4nTzSsjRARpbHw5fMJ5iVWK1U WX1Tr4REcVLxfCkIF+2YxhiTSJg 2020-04-20 10:15:01 65.49.214.254 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2140 +p reject 1-65535 +r coffswifi4 nFr9Sark4CcrrXgMbdcc4aNgEqY MTf0pgth51QkyuzZHNmB2KXyESI 2020-04-19 20:16:46 82.223.14.245 443 80 +a [2001:ba0:1800:91::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22600 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r snap277 nGBLeELdn6fGT7c7dwX3QJ6o6yU WpeQHvwOS2732Jl+lxLnDxVSvSM 2020-04-20 11:29:27 89.113.220.45 44420 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=678 +p reject 1-65535 +r DigiGesTor5e2 nGH8CgFAHt9xxASGZeU5aOgTUfw n2PkdBkTD60gS3CYaBJkteWIS4o 2020-04-20 06:44:24 195.176.3.23 8443 8080 +a [2001:620:20d0::23]:8443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33900 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r Sriracha nGarO32d2i6oGq9RurptQzHflZI QmkU+lepf7MeEQWQE3lXhYnvGtc 2020-04-19 18:58:05 195.154.179.3 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r l4ppen nGc/e/Wm1deC05w65TL9/pqTQGk haF0od4GC1TUlda8SQDfr56H2dA 2020-04-20 12:34:55 136.243.38.51 555 666 +s Fast Running V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=296 +p reject 1-65535 +r smell nHDSCkVkdTz7vPTs8pFJ+O3CiGo WG+/XNGt7GkcQ3In32jOPTMCY2U 2020-04-20 02:02:40 54.38.213.66 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7710 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r snap277 nHHBX17ynugvKL7ZkJgUIfXKLV4 mPuum2D0lheRgBzx01vqJwjYLcw 2020-04-20 10:33:06 176.188.241.138 41473 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8 +p reject 1-65535 +r contributionSp nHv/0FOGg09mk1PPSh7PVH5q5BQ p7CqxZLKAcmcwKDiww71brVCcXc 2020-04-20 09:17:56 188.85.129.36 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=534 +p reject 1-65535 +r EmptyNickname nH9LZqTJ8SgARBawLwDBSo6J/E8 /drXPLL1Py1KnsAJkpQu4CZZQ9U 2020-04-19 22:37:51 85.204.116.147 9090 9091 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22 +p reject 1-65535 +r firstor2 nJAKf29d0DTP/RktrsnMqoE9sCI /4GcXNScXXMxAqosjmHtdlG6+cY 2020-04-20 08:59:52 86.105.212.130 443 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=39400 +p reject 1-65535 +r snap277 nJLaKXChZG8SPgiX1SHYd2P6Uzk gsG0/XrmoaYSn+JvC0ddoOGXJNI 2020-04-20 11:42:09 213.57.141.128 43655 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=341 +p reject 1-65535 +r santaclaus nJYq75eElmEsUh0JYy5Z7QVdU+0 cAgABBdLlBImzDh60rMVwJmlT7w 2020-04-20 07:01:37 178.17.170.77 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2500 +p reject 1-65535 +r ScarletNao nJflhAV4aXAwq/x3hEQuMu/Y6R0 3/sj2WWsFjLlTqty0VziLmGq+5k 2020-04-20 05:46:53 158.101.168.225 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3180 +p reject 1-65535 +r anonymous nJ7fcKpnG5sCc5Qmic5132DDPlk LnIhwrOl722pzEDDrboOF8qJyy4 2020-04-20 01:58:13 36.228.138.151 21 465 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=527 +p accept 43,53,554,853,873,993,995,1194,5190,5222-5223,5228,8443,9418,11371,19294 +r Unnamed nKSrKwQsFzrFZHnGn19Dbp8eD5Q yxyWEj2k7PYXA03nujetyKHQ1bM 2020-04-19 19:39:52 46.227.67.92 51505 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48 +p reject 1-65535 +r snap277 nKV9piA2kIqkjBUkynBCn1SJyuQ at3YDhlmgS28owyANeh3X9OzqZA 2020-04-20 09:40:47 80.221.155.55 35645 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=530 +p reject 1-65535 +r t0rn0d3 nL1j/D9C8PN3GB8db1seACi5NLY q0YrpmcGFD0fkulLHeJ2GprY7CA 2020-04-20 09:33:20 94.242.58.236 443 0 +a [2a00:1838:35:179::e836]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=25800 +p reject 1-65535 +r Hyperloop nO2aAoRlkrOxzt8NYTdgUB47KSc Qe8sDI3Rh5NUVc0DzH5gCbYNErM 2020-04-20 02:11:05 78.54.60.130 9001 0 +s Running Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=78 +p reject 1-65535 +r snap278 nQOAGWcP22fxnKoU5DZf9xjTzUQ l+g72D+s5ZAOhK/jdzGJWAa44QM 2020-04-20 07:51:58 2.3.19.50 45907 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=979 +p reject 1-65535 +r incircuitryrelay nQffpkcrgCd3mNcyNDSM7wLy59U kGoF9Vz0FM819rTvb0TZ+9CPpQk 2020-04-19 22:03:19 159.89.87.126 143 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=97 +p reject 1-65535 +r Quintex16 nSHwNMO/9OdzfQjPd13BdFcGgB8 XB1Vy+Jwh0wVNWcatD6uGQsRvsU 2020-04-20 10:52:11 199.249.230.106 443 80 +a [2620:7:6001::106]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15900 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r DedlineExperience nS18p9upQcRwxpOV8j64H7kRWtE 41RGUhD3+UVjEDAilfCqGbyn5L4 2020-04-20 10:35:15 47.56.197.246 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=110 +p reject 1-65535 +r interferometer nUYvtJm6MW5IXtgOAHOALSKD+qs jt0cp7azK9PyrQL/OIZ1xcS4LTE 2020-04-20 02:31:12 209.188.58.234 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r F3Netze nVp6gbxhlFVc51H3X7GW5KOYLMU zZUnwa8KUOn5fjLl21cQPNDkaVE 2020-04-20 07:05:15 185.220.100.243 9000 9001 +a [2a0b:f4c0:16c:16::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=82100 +p reject 25 +r AnonymIMXMPPNode nYlGiHeUT/ZWi9iZU7r74W6YkS8 a3RvUt7XZ6Uo6pBdEWG2XsjZzrQ 2020-04-20 12:38:12 185.162.251.249 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14 +p reject 1-65535 +r hop1 nZW/oT82WFbb+oZCS5PitZZKcYc YzQMtndGI4H1DmITO3L5wimyIUI 2020-04-20 10:31:16 77.250.134.50 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21 +p reject 1-65535 +r SuperNiftyH nZzp2zu9izfz62WwzpmgnmycAIo 3WsZilJOaBgEHdQAebZARwu19Bg 2020-04-20 01:47:07 49.12.39.6 19001 9030 +a [2a01:4f8:c17:89e1::1]:19001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=46600 +p reject 1-65535 +r Bifrost naUoSlECGnEeyqZ3yB5UCCIrnyo JHblMXtVnxDrt02Zq/L8b7SHEf0 2020-04-19 23:48:27 90.225.65.71 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5460 +p reject 1-65535 +r corvuscornix naZy9G0K2bpZsvpWqPND04x4v0w YJKOO14bA/JVCuwKDlAJ1/3Rj5w 2020-04-20 08:28:21 176.31.180.29 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8400 +p reject 1-65535 +r anonymous naepeJKMSLTdUOOX/i88QRDqNXY qIuWjjJTDo+ht9DfiuW4vn99pk0 2020-04-19 23:12:00 64.137.167.84 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r HungryTREX nafvnp1gcM2LcFm4qMxbQc7AJyY /h+BnJclSi4WcFfLfYlQqJCZk4I 2020-04-20 08:20:35 192.99.151.170 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5950 +p reject 1-65535 +r bachforever nbQAQCtUXcQd40LhRkT3S32k94k M9QqFbf4lIkEV2sY2RPPEj34D9c 2020-04-20 10:43:51 89.22.96.90 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p reject 1-65535 +r MaxPower nbUvGnwUrM+imjbcHEDX1kPKz1g AFrnSJnHuvugIWKQ5cWqS18ZzA8 2020-04-19 20:59:14 217.160.65.208 9001 0 +s Fast Running Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23700 +p reject 1-65535 +r StartinIT nb1U0Yle4jHQdWhjEUNaH1VoK44 JzIujHo8afPEFSSU6loWSUxmLS0 2020-04-20 00:56:49 109.156.70.9 9111 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2140 +p reject 1-65535 +r akira nciwKCqNPEUhIWfEVLUDJDvJOVc c2HmXw8iWnY3DB3Ak2pPs/xH+/4 2020-04-19 23:23:04 193.105.73.80 9001 443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5800 +p reject 1-65535 +r snap277 ndLnb0yooczdmSbkaO2oA3X3kF4 11KYfsBJQ0XePlMOKbhOzZI22n4 2020-04-20 03:01:56 73.34.28.144 45305 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=650 +p reject 1-65535 +r hviv114 ngBYMAQB9mh+rln5/oLbiSMDRME KxGx0R0K85ghjVx23dafha0ZahA 2020-04-20 11:41:13 192.42.116.14 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23500 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r TorScaleB nhJaBfx/twyUWs65wBw6GLfcQc8 8rO9M6RvQZwdqqaGEPfU6D0Fc5g 2020-04-20 09:37:44 51.15.86.162 9001 9031 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46700 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r eclipse09 nhmMxtowSB9C5KIuKeSpIsEvn5Q JalGWp5KRiyyRCUdKn9q2QOOwuw 2020-04-20 06:43:12 46.167.244.60 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1770 +p reject 1-65535 +r torpidsDEhetzner1 nh5PW1+UgS0CxNGMtAhs5xylxhQ ywVaB0LBrPwjGuXPP08X/QWiHYQ 2020-04-19 21:03:52 78.46.217.214 443 80 +a [2a01:4f8:1c17:41b4::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39100 +p reject 1-65535 +r Unnamed nigwHhDzj+JNzgkSUodSjkYT/jo ljc5dJqNsWc9GIvJ7jUvK05Gs+s 2020-04-19 19:46:28 79.220.158.217 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=74 +p reject 1-65535 +r Unnamed nimLlVuR1c4q6uvGyphYZ20JH5M FyhFSaSZAuLndx8HByJXchsLXM0 2020-04-19 23:32:50 176.67.170.192 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=710 +p reject 1-65535 +r Quintex47 ni18aYEmlASqGXC1OJFwGiBCTvg u4yEtQra02j/5q2N1QdR8NrXFx4 2020-04-19 18:52:00 199.249.230.70 443 80 +a [2620:7:6001::ffff:c759:e646]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14600 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r snap277 njCz4BGRKRmAuXyctpjSNeYS29Q 0dlH2CtfQDQU3rrc/sC6AYQjt7Y 2020-04-20 00:03:29 187.113.39.160 37913 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=226 +p reject 1-65535 +r TugaOnionMR5 njKNTWSlHfqQdMYVZxMLIujRRks 8+jAVI9PdMQjWvK14u6kmBS7axc 2020-04-20 06:57:30 62.171.172.234 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3910 +p reject 1-65535 +r MaudSuicide nkFEjODd4YbOBdLe1fNEKMmajXA I+rc6E6XFbPiyv9AeBt/VCY1p0k 2020-04-19 22:35:06 139.59.36.56 9000 9001 +a [2400:6180:100:d0::40c:e001]:9000 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=614 +p reject 1-65535 +r ieditedtheconfig nkM0U9M/hbcmqrrQQ93QDhcTKcE RsU2+2687S1Esa1wrC4FWa2otzY 2020-04-19 19:59:58 176.58.110.66 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=762 +p reject 1-65535 +r atoraphobia nkPn0id2rUU0hlyVF6W4livTm10 94mIz5kSx4CKkwx2j1GWJHu0b80 2020-04-19 23:40:01 62.151.180.62 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=15100 +p reject 1-65535 +r marla nkzGTE+Uw1nUPFugkJQyP9vv2XU B5oZApCgVildfgEhGfsaDbo/mPo 2020-04-20 06:51:58 185.117.82.68 9001 9030 +a [2001:67c:21bc:1e::f00f]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59000 +p reject 1-65535 +r hviv127 nmJODl66MVa/2piscDvP+V6aL/Y H4XJ6BC5Ke8NEi2zTdnSZ9UaYzs 2020-04-20 09:40:43 192.42.116.27 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22200 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r Reichsfunkmast nmVPkvhJCEJ6Lqv/QzSbzDKDjx0 c1Dpd5DlKTzCxhs52O3PPqvTFQA 2020-04-20 00:10:32 144.76.96.6 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=120000 +p reject 1-65535 +r nn2kRPi nmbThLfFqZWYAO9hS6oi4EvLxEU BC/CyrgnUjZ1jadGX2/xD7lS/k4 2020-04-19 23:54:07 24.210.225.85 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p reject 1-65535 +r Veil nnwsbe2jqQ7X1DUnEmq2eTb7A44 nyfRY2+9v3GpbKoBOAShkIpmWE4 2020-04-20 09:23:44 69.146.146.55 59001 59030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=790 +p reject 1-65535 +r snap277 nn9/vb67PWLyOtz0MWHF5Xv+0EQ Cujm9KVhcWfRxm7T3cUD/Pi8Ues 2020-04-20 06:28:33 79.12.25.189 42185 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r 420blaze noZvMLeRrLee0oDTGX2ZnLqFpu8 ZAdjG8B/rv8ZGSY85yLREuxNyo8 2020-04-20 02:52:51 51.158.146.218 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r BISMARCK nob0yJMaztJ4+eETPrGW/fm4L4A ghWxdnLAluKEm/1jMESGR9TYzls 2020-04-19 19:51:54 37.120.146.80 9001 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6200 +p reject 1-65535 +r nostradamus npvsQprI+5l5Ws3O4JvFYEk0jss VybJMpnLjdfm3shV18Ow85SJrjs 2020-04-20 06:23:34 51.75.143.241 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10800 +p reject 1-65535 +r vegms npwiI+oXn1K6c6JL/eLkTcpGju8 GxJEuanJNaE63ByTXzdFV+4VvB4 2020-04-20 10:18:28 92.50.105.150 9001 9030 +s BadExit Exit Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,989-995,1194,1293,1723,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3690,4321,5050,5190,5222-5223,5900,6660-6669,6679,6697,8000,8008,8074,8080,8332-8333,9418,11371,19294,64738 +r bos nqRklADH014gxzT6c3z2Fekl8eQ Spr3tJvhqM7IMThExZX/2Lkz/f8 2020-04-20 03:02:56 108.61.99.149 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=51000 +p reject 1-65535 +r lumiRelay nqZdG7YHraS5prKli6oslg34veo K1MTD45rtHi+mRsXAyl2EMNG3VU 2020-04-20 08:35:16 140.238.168.214 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9900 +p reject 1-65535 +r melquiadex nqkgwnZSXXOeWHcWkqNdb3r+Tfg 9oSHwCcQICxpMc18s1na32DiB7M 2020-04-20 02:50:06 85.60.157.242 443 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1 +p reject 1-65535 +r Digitalcourage3ip1 nq1bLT29ltvIDc5COww0XpIKdY0 XUFM4j9G9ywMyCaZrDSAqkPQ4aI 2020-04-20 13:09:58 31.185.104.19 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4600 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r Zarkon nrP9hAZeViKlfv7xTkGgG1uZoCI Z1a1YKOOh8UnZkLMQZUIQku+M1Q 2020-04-20 05:47:37 116.202.193.60 9001 9030 +a [2a01:4f8:241:1003::dead:beef]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44000 +p reject 1-65535 +r PacketPusher ns7AR7oFlsUe3QmGFsioZpehKCQ OKxgKw8OteSjKcmN3M5NWvk4ePE 2020-04-19 19:32:59 193.218.118.130 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=310 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r SpookyMulder ns/WcjDQnl6PNDG9xP2OUkKK/Ak QjwMBDt9Urd4b7LX7tr0a60qMsQ 2020-04-20 06:08:09 89.35.39.185 443 8080 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7 +p reject 1-65535 +r trainmaster nuqgLjOM31kZ+YPzJFqpWnkLm2w INEz7uSx7C3YDGs7sSiz0WUR944 2020-04-19 19:06:28 89.46.100.71 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7390 +p reject 1-65535 +r niftycastoroides nu261+41GZbfyRV46IK+9P5e2/o jgIABijYNSIqgqKns87lmQEVx7E 2020-04-19 20:28:08 185.220.101.121 40080 40443 +a [2a0b:f4c2::121]:40120 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26600 +p reject 1-65535 +r specters nvT0eEZyllAFKALWlsq3CfEWxLg om/Yibc6Gded5VO28YEofD/glho 2020-04-20 04:35:20 79.112.23.103 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=708 +p reject 1-65535 +r Unnamed nvkqEv8GpiDCOnyQP/9AfOBaxdc z/wMrMJ8uge1iDpkaDZxO++u2LQ 2020-04-20 11:50:53 199.19.225.84 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3890 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed nv2icVWD3kmmmI5i2Q20imwj6kI dD6Y0JMKTvcqsGCEgUY7Ima+uDw 2020-04-20 10:27:34 91.219.236.50 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4600 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r torreymerch nv8W6iX/J7xDij+/I8UxXldkZ68 9h0WXj8BXMj2758Bev7BlHj+HRY 2020-04-20 07:49:45 172.104.27.216 9001 9030 +a [2600:3c03::f03c:91ff:fe5f:92f8]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18600 +p reject 1-65535 +r Quintex15 nyhW9tK4mtTvbVcj+rFn21pTUZo IA40x+SHStr/XRZ6HiFvwo4w4Qo 2020-04-20 11:51:15 199.249.230.105 443 80 +a [2620:7:6001::105]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r ViaSEfWgRFE nynQ3UrrYudCva7vLf073XaVNAM cdB1zPhylXzWwmGLOnpGvhV8n9A 2020-04-20 08:55:15 185.22.174.46 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6680 +p reject 1-65535 +r melk nyziQ3oE2K9GPXcK5xbBWVqhZm0 AQcIySSW5/rBKsNOOmxKmOzNUQU 2020-04-19 22:42:19 85.204.246.199 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3990 +p reject 1-65535 +r synfin nzmjXeWRsuh2nory4LgRxHkris0 pHd5qS9Nb/hS7AOu7gtv+vU5wQQ 2020-04-20 10:43:58 45.79.109.55 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=255 +p reject 1-65535 +r QM1Relay n0STQM/nKXDMVklbAXtzyCXbtWY lLQigEk7/f2G8wKTsGcYhMXC+mE 2020-04-20 02:58:11 87.125.123.223 49001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=170 +p reject 1-65535 +r Doedel26 n1BoMQgY7XxwsLxAh6tVyxLLQ3c HmFjz0z2aUmaBWQweR+dSIvVRsQ 2020-04-19 23:52:40 81.7.19.110 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10500 +p reject 1-65535 +r lftor3 n2iMRuAEatLAJsGNk0MlInnkJTU MFJO7rg+WWNiLGtgOrpUxt8kv5s 2020-04-19 19:45:25 51.15.210.243 443 80 +a [2001:470:c85d:32:216:3eff:fe2a:244d]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7910 +p reject 1-65535 +r Unnamed n28p9wqOFDfFA6yKfkFeuSJfc0A 4yfzbO1TFvhxWX5NNFvq+TdUUZw 2020-04-19 19:36:29 167.114.92.59 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Nivrim n31uZCAYPCt2086ZYk68mKIaln4 xH075ySQZQ68mYFHyksrAz8rWQI 2020-04-20 00:00:51 46.28.110.244 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7870 +p reject 1-65535 +r MapMaker n4f46TPh62zLl5F7EQtmQfbsMgY ELgmfb1WwPg5Vpr0OlT8BAmIMXI 2020-04-20 05:31:00 104.192.102.106 31927 0 +s Fast Running Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3150 +p reject 1-65535 +r noa n5B4OmcgFdTUDyKQKWS5KtDqDBc BO5W6hQuR8B5QOBHDb1+bIWp0CQ 2020-04-20 01:53:32 149.154.154.155 9001 0 +a [2a03:f80:ed15:149:154:154:155:1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2180 +p reject 1-65535 +r DeiFlagellum n6+JFeI0LMQxWdvumDDavM1ZtLI y3DhaZBv5WVcttJlgl4IS+6Sy0E 2020-04-19 22:29:08 188.116.42.3 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1410 +p reject 1-65535 +r smell n7JTW7+s7vzIGwFcDHJ+Id6tcmA Q6juAWViYIYLTgw/7CUbZ1dyxPI 2020-04-20 01:25:44 51.178.185.239 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27200 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r devilinside n7KgeGeSnqQEZnJHrullbz33JEc Ma+c2QzEFoKKRyG6uuGTPJf+a0g 2020-04-19 20:34:27 66.175.208.248 9001 80 +a [2600:3c03::f03c:91ff:fefa:755c]:9001 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1040 +p accept 80,443 +r Skvatboy n8TULx40AEigpAl79UBsotqtCPg QeyZ1+n4OMWfMd19NozNcMOew1k 2020-04-20 06:00:43 90.184.104.85 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=77 +p reject 1-65535 +r Unnamed n/ofU+QmhRw8XTa+u82DXK7QUsc DdmGONqUUJDWXJwOYCKx/FKkjrw 2020-04-20 12:34:54 167.114.92.54 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r d0m n/wP9JJquOprkuJBll0WX7AdNrE OfrMiXrrnsdCP5bqxoQtzwmEz3Q 2020-04-19 19:35:23 51.158.148.216 9001 9030 +a [2001:bc8:6010:215:208:a2ff:fe0c:6c04]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22100 +p reject 1-65535 +r ForFreedom oA9+BUImfcWLoAmDIlBd9dM668o PGd+gcPfqx9MTRmAWHA5m5rmeWQ 2020-04-20 02:18:32 159.69.69.72 9001 9030 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r niftydiatomys oBYZLQqH/JNUp1I6IRu9nPhZcIs auTCyyN6coogfVmV8210wc6f4/0 2020-04-20 03:25:46 54.38.145.211 20 21 +a [2001:41d0:800:656::6067:9ce3]:21 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36800 +p reject 1-65535 +r Nozel14 oCYcFtFbRPfJi0cPwHPqK5zRDUE nypreX4Yqm7j8PGbhweqzZs9EDA 2020-04-19 21:45:57 163.172.210.193 465 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p reject 1-65535 +r niftyentry63 oDq9nVhiVcjDOzonMOZISMqxHtM Vz7afcWkDWUiEXuBCYGOiCkH2ew 2020-04-20 10:50:51 185.220.101.203 10063 20063 +a [2a0b:f4c2:2::203]:10063 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12700 +p reject 1-65535 +r Unnamed oD+QJp/cWKVagzEOPCjpJkRqpcA /4xnL10C6iF5OMetP/41R/ukSeY 2020-04-20 01:22:51 83.83.232.20 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1640 +p reject 1-65535 +r snap277 oEMOC66osCtskveqPvkPkX6qfPg WOkiLyrMLVoUoH+l4z/tO+MgvbA 2020-04-20 12:39:42 87.244.162.108 45937 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3810 +p reject 1-65535 +r psilocybin oGTjxr3rvMKLjv6TLlnnzX5/wj4 ud6rhdTUt9sbqmwDyb/fJcNffTY 2020-04-20 03:40:36 24.116.70.175 50000 50002 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=960 +p reject 1-65535 +r vlado oGbnmDdYx8wAl+Fqz097cbr6ROk kwz74dH0UIPVeW99rvkmM8IFwD0 2020-04-20 07:16:06 104.244.76.24 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=33000 +p reject 1-65535 +r zpyramid oHoMx0IhKLdrsYuWWP3ztQZCJD0 stPPtvpVZPKR7rvNr1/hu8hAE1s 2020-04-20 04:59:22 134.209.90.217 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=11000 +p reject 1-65535 +r STUCCOTHUNDER oIs+ZTMfKclgqOtvXZC2agXSbLU gmJUtozvMS6TA/rD4IQVUxy6uzU 2020-04-20 10:28:41 88.198.41.140 9002 9032 +a [2a01:4f8:a0:11c2::2]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57000 +p reject 1-65535 +r Applejack oJ0g2F0KopxHyQq+r9trekv3/Qc 1c+fkXn8bHFl2pXyVdsN9o0AGGA 2020-04-19 21:08:47 78.46.177.87 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8600 +p reject 1-65535 +r inhonourofecho oJ2qrRbj93wu0aASvYoY/8v+tCI krUhb92OF+9kQkpaUNTGqgroHOI 2020-04-20 09:01:12 85.167.122.23 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10700 +p reject 1-65535 +r bluediamond oKHaxBzkyQppqgskgLvaZnpgf7Q TQR8+sc8FPMYO21BMYLaEE4UK+4 2020-04-19 22:48:50 45.79.222.13 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=2540 +p reject 1-65535 +r disconnectedtech1 oLBeHYUth07682A8gyRuAK1lryA U9YmbX/v4uSDliE1AmsTaaqNG4A 2020-04-20 10:03:04 85.191.249.24 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10900 +p reject 1-65535 +r GfRzz4HydFJVSIgs oLZ4BZYpvNq7Td/1LlRu8TmacKs yjCRQp+egRQpEHcyhRZAdwdDlxs 2020-04-19 20:42:50 94.237.68.13 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r TerminaTor oMWUELkDCsE4XEykTI2/4Tr0vJs bJY02XNPj0mBTFw0IafNS1OCIQk 2020-04-20 04:56:44 62.171.142.3 9001 9030 +a [2a02:c207:2034:5805::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14700 +p reject 1-65535 +r sccOnion oMXdxVzsr8Mdw5CbyzRGA+alB88 SSTHZYNpMul3ZP2kpqpLgSsb7V8 2020-04-20 02:36:36 216.186.250.53 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1520 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9332-9333,9418,9999-10000,11371,19294,19638,50002,64738 +r gerty oNB04FuK8J0WBaqX4U31wjgy6/w 166sfSd06i1572b6YB89fPyFNmo 2020-04-20 06:37:09 103.31.251.112 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=120 +p reject 1-65535 +r basajaun oNKLRbzxeZ9W5dJF3mRpwQ0fTCU esrjYVQd5bnQtmozLNPY/aiXKrQ 2020-04-20 00:36:21 90.94.236.160 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6 +p accept 64738 +r QuintexAirVPN29 oNuCD+yHwEBfe/Bd7l5K3tK7mQQ E2DUeeGKNZn7BWyI2pCFrBGexmg 2020-04-20 05:33:56 199.249.230.82 443 80 +a [2620:7:6001::ffff:c759:e652]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r isprjr0 oN+zEjHHGIKfoY6rTQzVHe264Iw 1+JPNlXEcNxfl8llXUFjsudh1Vs 2020-04-20 02:53:52 51.15.206.72 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32100 +p reject 1-65535 +r torro oOPTCmYNtwygttCBulTQlN7W8o0 wQ/RuDZG3MS4Ei8CZYlolA+7VIc 2020-04-19 22:04:44 85.204.246.104 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8490 +p reject 1-65535 +r snap277 oOddv7+foAgOOYynpv85IKrFe9s oi6uaXZOUXgzNyH+LDJ382YRA8s 2020-04-19 21:25:16 94.33.52.76 39951 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4680 +p reject 1-65535 +r snap277 oOyUkd/CNf/L3ZKTH90zGM/iH6Q yC1YM/Hv62Rjo15sM1nBCvZly7c 2020-04-20 12:42:29 91.66.44.74 41233 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=64 +p reject 1-65535 +r YeJunPeacemist oO29qPJHV0KdrIKJEYHZaHBiPE4 bqx51ssNBpW/34lWHkKxz03kUKQ 2020-04-20 12:00:58 51.75.71.108 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=615 +p reject 1-65535 +r Dhalgren oPBsL634jTo5qjBytAbwnXCVrJ4 vffZsaBKsscyxaCnwo0gfRADb88 2020-04-20 12:47:27 46.165.230.5 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=90000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r loskiq oPN85j8KiU4C2tMcuoOb0ZPtrDo OXCLHqaEJdgKgqbi3bA5XZqpJ8A 2020-04-20 03:40:35 94.242.55.101 12317 12318 +a [2a00:1838:36:131::38b1]:12317 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r pldtor oPOdMgKM7H81QZ6VcEAd4VsbRWQ OegeJfyaSIZXw6J/ku85/GH7HWQ 2020-04-20 03:21:36 5.196.58.96 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20700 +p reject 1-65535 +r terrance oPWZmaxhIxWAXVCj5J/Ee2AbjTA IRJoJdAh3w2+vVwI/3v5MfJ8W+4 2020-04-20 12:03:33 87.120.36.210 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5400 +p reject 1-65535 +r DFRI1 oQxPZm0nNkA2tWKCPlgwvESOBGo LRM06oYq/B6gpeN9QYgpwf3PduI 2020-04-20 09:48:06 171.25.193.77 443 80 +a [2001:67c:289c:4::77]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30000 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r kiwitui oSP0BL2aFdlsx5MMK+KBAzQaxos U8NjxC84KTgNHFdRa77fZAspGwQ 2020-04-20 01:40:08 141.0.153.53 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10700 +p reject 1-65535 +r Desperado oTKB29j45ITpXdJzs+5/wUwbCno LNCTKNquKVge+rds7eOCxN79Dos 2020-04-20 07:39:52 78.47.134.196 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=12500 +p reject 1-65535 +r niftywabbit oU+QlTrpRizzqGLEypX3O/lKb4s LJoIx/amSzh742piD+j63rK3kg8 2020-04-20 03:41:05 185.220.101.202 1202 2202 +a [2a0b:f4c2:2::202]:1202 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57000 +p reject 25 +r whatnick2 oWiJcuSqTyTEyaojcs04e4KDTEA xlEy9FVi50rCB82+8As87mA+ix4 2020-04-20 09:00:38 78.47.14.99 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=150 +p reject 1-65535 +r otto oWma9dfgKU5F1C/6aX92K6JjQOk li7MrjmxC/gXWztgnVk/SepLRPI 2020-04-20 01:39:20 193.84.190.54 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r apfelkuchen oXuWGX19iZNltmxkk+NNYWtjrvk r7DTMjhw9WX4tKVOu86jvN4iSNg 2020-04-20 02:12:33 87.162.63.71 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=119 +p reject 1-65535 +r tor4ever19 oXwJOs6a6j/5yr1p7PeT0gle0wQ /+jbidjDoElK1BKayuKQToweip0 2020-04-20 00:55:43 45.62.236.202 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2330 +p reject 1-65535 +r showpen oYv4GFV71sijVGsVe3gAtfJKeac J8txf6s+imsX6aQFsma7uqgZ1HQ 2020-04-20 07:28:04 88.115.61.255 443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=230 +p reject 1-65535 +r unnamed42 oZO82VlC3NJUGDW2PlzhcQeI5IU QfFEDE8c07T6VvSpvrqrUWsphdo 2020-04-20 09:51:52 213.138.102.209 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=300 +p reject 1-65535 +r snap277 oauOebvQdQ6tB9F3sbXb57WLWmQ ED9KFCSjXaXyr/rGhpLsiVHhtX4 2020-04-20 07:40:05 84.47.21.73 35875 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1140 +p reject 1-65535 +r camouflage obFupyxd8jNGs4FlgaMJN7Xq/JM lQUToSiFM1iGG2ny50uZeNmTHD8 2020-04-20 10:00:06 185.26.156.186 46523 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=541 +p reject 1-65535 +r bakunin4 obKNY2pWqv/pKtzKk3qkvVMzu0w C/d0hwKgoN2bqfoiL2cG73w7r8w 2020-04-20 01:15:15 193.234.15.55 443 80 +a [2a00:1c20:4089:1234:7b2c:11c5:5221:903e]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r omue obLjLkJvcA033/FCKOG5V6Is8KQ 3ssw1qi6ArYQ5gArkGD1lHa4Is8 2020-04-20 03:11:44 92.116.198.74 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3620 +p reject 1-65535 +r arnall obfB+D5dpDdv0uHbp6wopxqzMq0 T/k2vYCntLoJl2JNauuhDwY1z2Q 2020-04-20 05:57:03 82.103.140.87 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=55400 +p reject 1-65535 +r locotor1 obvL7BE9qsfxfnp+aYqqexR9aRo tEbljCrFRS/7qcnbS3Du/dpDUWo 2020-04-20 12:22:18 82.64.189.117 93 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4980 +p reject 1-65535 +r northwind01 ocrLTDT70O6rl8mayNs0qko7VQk 0gbE9DK7HEKd4NJBnAMYd0kZytI 2020-04-20 01:22:46 87.159.158.209 8082 443 +s Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r reaigauebnap odi+Jks2kYAAbNoDmYh5tJz66Ts XG6HJZ9soekxBIakD3SlcdG+dCQ 2020-04-20 12:30:03 207.180.205.67 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35900 +p reject 1-65535 +r Unnamed od61Kd6G58q8MhJ3g3STPWj7fy8 F6O2p7oVCr7zgI2bsi3S0HnXSVE 2020-04-19 23:24:37 51.38.107.122 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r huxley ofpiPBELnjSJaU6o6FolwkK7sUc rNHAYQJ38K4gRretHlolrPc3yeE 2020-04-20 00:45:44 54.37.16.226 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16800 +p reject 1-65535 +r Galactica ofyOQkFnrXC2+klT2TSLzYLOt4g zUUCffSAA/YVvdwgQgnjb9QERJA 2020-04-20 06:20:47 185.217.95.25 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r Zwiebl0r of7oU3yEfTMPH39ZK+JDYMXWBR8 +w0ZkxICB6NKWqfaTK7fK1er79w 2020-04-19 21:27:35 37.187.98.35 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7500 +p reject 1-65535 +r snap277 ogA4d7RUH84ann0G4zjowRtbsHQ qg7YhbQv09q6tocNy7G2azOsZxI 2020-04-20 06:02:20 37.194.3.42 43559 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=600 +p reject 1-65535 +r snap277 ogLaiwAUdw74JfR21nqOFcJquXY AgwArXhialx8JUIKIVYVGfl+3AQ 2020-04-20 10:28:50 83.31.125.151 39521 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18 +p reject 1-65535 +r kbtr6lv ogyyQWvezGC2gf7iARM2Hbfd5ds uVDyUrYrw/8s6kfFn+db4lxxnRY 2020-04-19 20:40:54 185.61.148.121 8443 0 +a [2a02:7aa0:1201::15a2:6a6]:8443 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12900 +p reject 1-65535 +r ak3812 ohLaXa+UDYymMGSSahsP8DXdzgI MtkKFd855qtDN5obu/2V1llhpbM 2020-04-20 06:48:52 212.47.234.212 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2230 +p reject 1-65535 +r hellyeah ohMU+y1z3JtL1FjOaWaaxl6yZes Aj4gmsU5O1aHvwIMvDXm/zMf5Us 2020-04-19 20:18:23 81.89.112.129 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=370 +p reject 1-65535 +r Init6TorRelay oiscLvIlWYf4q4qgsajiP1Aj7rg SuPA/oAeIl72S+6BFUCo8nFa03k 2020-04-19 21:44:49 178.63.138.17 29001 29030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8200 +p reject 1-65535 +r TorpNetRelay ojpyGbHqnVg+Zt/ybWJXPeZKnCk DgtHLOFcfJkScRp1lXcX4Zec2+A 2020-04-19 21:47:06 81.226.65.243 44443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9960 +p reject 1-65535 +r iVPN olNO8jOQyuB5sVhvD9+c4R9VYGI tJRtB8oPnLK6ZUR6+GssNcp4dMw 2020-04-19 21:30:13 185.220.102.6 80 0 +a [2a0b:f4c1::6]:80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=64700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3128,3690,4321,4643,5050,5190,5222-5223,5228,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r noisygerman ol5J6HmyPtoJiC7ZmvuT++a19gU UR9lqwFfIWr2VjjRD75tQlqgNak 2020-04-20 10:46:51 95.217.97.138 444 8080 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10900 +p reject 1-65535 +r LawyersGunsAndMoney ol9r3m5eRVVeL8zE9QRgplVE1h8 aZAt1iIXS5266CF1E5mafGLaV0c 2020-04-20 09:27:34 208.94.242.26 9999 9998 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9530 +p reject 1-65535 +r OgresHaveParfaits omf6tVVG2MovR2GOVWbA8RkTRgo bKHm7/q2/c9D0s2peZFesLXgku0 2020-04-19 20:48:30 23.237.87.201 9001 9030 +a [2001:49f0:d099:2::1d6a:c9e1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6940 +p reject 1-65535 +r RoteServerPaul op0qeKipVIGeIgzvvrzpXS/PpU0 +8rPFjAIuzb+nB0fwxk/tAgKUaM 2020-04-20 03:11:10 92.75.12.181 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=820 +p reject 1-65535 +r Tadeus op/hmGRwUE0zK0NxYQJ8gTFG/ws cbwlyYrj4lqoszvz9y+9k8aHxpU 2020-04-20 12:37:15 62.153.4.151 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=958 +p reject 1-65535 +r Cebola osvscCF4FKnfshBp+FEL5BirsJQ tAdW3gkGx3B8rGJzVppFvkjdj34 2020-04-20 07:57:43 163.172.216.178 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r GIEBELWALD001DE osv1ePLnM4wTcwDvQszbGRBhtRs rBJAtNiHbQfE6h1KPCNnJLEa/Fs 2020-04-19 19:30:37 185.101.92.236 8550 8050 +a [2a06:1c40:3::103]:8555 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p reject 1-65535 +r arbitraryTessa0 os0y2dBmjbdkrWjHRc4paTyoUbk EW2zEw9sJHKglMVeSwPocaJNQjM 2020-04-19 23:23:20 95.216.19.207 443 80 +a [2a01:4f9:2a:1430::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42000 +p reject 1-65535 +r Relay5202 otQ332VMO+VCj9R1o7Qeurx8gyw R49DwSRGBXKoSJkAfcFodr89ftg 2020-04-20 07:12:01 67.7.84.172 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5030 +p reject 1-65535 +r Winding otWisZdPKfQODyw260hwtYUloBI LDjIwnesgp2z2fsINics9R8J5bA 2020-04-20 12:07:27 74.108.39.7 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r RSFPressFreedom otspP/xadqcYhjvxrtvI37HLEJc gh4YvQI1wsFbf/AMqg87QHgcK2s 2020-04-19 21:30:12 185.220.102.6 443 0 +a [2a0b:f4c1::6]:443 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=71100 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3128,3690,4321,4643,5050,5190,5222-5223,5228,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r king ot55n9GxKlymTUhqnMMQYEjb/NA 9y/91yEYEbkmWlZty1fF7mEX9Us 2020-04-20 08:28:12 51.89.200.121 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17400 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r BeastieJoy62 oua7XDkc1Gs4xVtDKcNTBFQHcfE f9eGrHhCXx3v5p+vQJA9oIZaHO4 2020-04-19 23:49:39 81.7.3.67 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12900 +p reject 1-65535 +r FuckCancer ovWA+T+j0No3N2lhS9mwyKbEYj4 xP6rNTCIyLhaYaljLlbabHl96Dg 2020-04-19 23:01:47 23.129.64.185 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11700 +p accept 1-65535 +r 02d881841883 ov14i6/9RYijfZHqDxHNEcUzcKQ rkru2jmP4wHPYvRii4U0Qe9G78U 2020-04-20 08:15:59 51.81.253.209 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r TORFASTER ow9oOOwPAE0sOVZ2Cm7Go5iDXLU kqPn5HMyMKZrAOKvVy7+bfA9XWM 2020-04-20 11:27:33 84.53.192.243 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5590 +p accept 1-65535 +r SecretTrumpPornHub oymfEL+SqI096jwW8sg98YwXsms Bxej5NnGGZ2hBN/Ig8XmNd+JP6k 2020-04-20 11:07:21 73.35.183.117 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=467 +p reject 1-65535 +r Dakar ozJMrJ7ijyBwkNc0jpnIxW9HNI8 aO/5mI3AX3bko3MvnxbTloezbcA 2020-04-20 04:02:14 195.211.143.223 65065 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1610 +p reject 1-65535 +r rainbowfabrelay ozOXVGC0W7EJzG5UEGtbKmJXIfo ypafGlFsOX4aU3kJUsM2V4uXA80 2020-04-20 07:51:13 91.58.8.45 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4250 +p reject 1-65535 +r TorRelayOfRio ozVzyTWzTNB9mI53SBnfDTA1n4s NRx+8YS7wKylnC6rgtmOHPrqF0M 2020-04-19 23:01:47 83.212.103.133 37755 9030 +a [2001:648:2ffc:1225:a800:4ff:fe20:9a67]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3640 +p reject 1-65535 +r bigbrother23470 oz6JOLLSwNEYpa6VoTnY5TaXrDg jBPf5DyZ9hEYZgQ83N2t3OHBOh4 2020-04-20 07:43:34 75.142.113.210 19001 19030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=183 +p reject 1-65535 +r TorVXNDbhs2 o0B8xAPPOd+kDtnh0UqLVEMfYQQ D5KJp3rv7pFenU8YsgXGu6r6uv4 2020-04-20 02:55:18 198.27.81.192 443 0 +a [2607:5300:60:22c0::]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9250 +p reject 1-65535 +r paruchu o1AxTCSipbfOCpFwe341lJXc7KA +KPAc0pjRL3/Ae7nrwUFddchxC8 2020-04-20 04:22:03 118.243.210.81 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=207 +p reject 1-65535 +r Oberhasli o1PnIYL5qWJrEEB23VZ1swFCexI 8GySJZJp8K7Z0plQTwg/SGZONSg 2020-04-19 23:58:43 204.27.60.147 9001 0 +s Exit Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=246 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed o2oZjS4JHJmCnKqInwY6yVZ2kxc BS5MXQXc0olAXPscWzNOKcr3SbM 2020-04-19 22:07:29 77.8.159.46 993 0 +s Fast Running V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=346 +p reject 1-65535 +r thorion o20TA2dQ5HfgxWKKW+T+y2MobYA WkK0m8ycnwg+ASU9qVglW3u5dzc 2020-04-20 09:54:50 45.91.101.227 443 80 +a [2a0a:51c0::59]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17300 +p reject 1-65535 +r Unnamed o3vRm+6C/4HG/GGALE9PymeBRpE BfJAugffneR8FW3Giutw1EQlRaQ 2020-04-20 12:29:12 167.114.89.195 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r niftysnowshoehare o5Ad23eZoR6bq5C9HdpzTboZYzc +Jb4Ht7jR3UzuK5Zv4I/EIenLr4 2020-04-20 12:06:25 185.220.101.139 8093 47769 +a [2a0b:f4c2:1::139]:31367 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26600 +p reject 1-65535 +r sighif1relay1 o5RZHogOs2EOCdJAq2OYhJGET7Y M1aBYvYjCV9LAfEoV8KxlbvKMGM 2020-04-20 10:16:47 46.101.165.197 443 80 +a [2a03:b0c0:3:d0::dd:a001]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=113 +p reject 1-65535 +r niftyshrew o5ch0oSqHtGuh65jUjU1SEqhT7U I4cMwyEvlFk9hijdeRmXXyX9ntY 2020-04-19 19:25:37 54.38.73.16 21002 11002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40000 +p reject 1-65535 +r Unnamed o6NSse0zBaHYzIRS2B1yr6v06lY y2TDCiVO6JjjFywIsqjDYPxkBCM 2020-04-19 21:13:37 195.13.50.227 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=423 +p reject 1-65535 +r Gaugor o6bZ19vtAPfmUItV00Sf9rbF35A St0IWHqgE+gxhmrfv4261oCEpWA 2020-04-20 10:59:24 88.3.72.24 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4390 +p reject 1-65535 +r isthisthereallife o6+97jAjjkSJnJ+LdmbRKwnI7jI pOWjAu+oFh1ZSKMpef+2DPiiPUg 2020-04-20 07:02:46 212.51.153.165 9001 9030 +a [2a02:168:4e13::666]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=80300 +p reject 1-65535 +r andrethemac o7EQ41z8JQ2p9ARaKnbgEUJNItc adv+P+j0BsVHW+T0uV5F/1a2mVI 2020-04-19 19:10:10 94.226.76.51 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=220 +p reject 1-65535 +r king o7MVkE+STYNdnfBvcVo12sjYTwA elPe5AmPY7XZMXjXqf6skEuJtI8 2020-04-20 05:08:16 51.89.200.100 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12100 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r name o7s+ywXCoAxHOMh82Fozm9n1XYQ XmrdXHwgmpy3G597NaSQkULUl7E 2020-04-20 06:31:11 86.57.149.13 443 9030 +s Fast Running V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=3600 +p reject 1-65535 +r pangea04 o9JkiV9oXRb8g00GhaCUrmIvIgY 6NXv8wkgKPaCqT+nlHL2y1ePEbs 2020-04-19 23:54:33 46.167.244.56 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1280 +p accept 43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,873,902-904,981,991-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,5900,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r snap277 o9MqImOD1fe/lGeLgFsbd2WGnLU xG4bX4HI+G87FOcHhev6HvD8zF0 2020-04-20 03:29:23 109.63.198.120 38791 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1910 +p reject 1-65535 +r VCVLPQ01SRV04 o+ekOV58HzBpIBjk+wmAsQPjhIg cOvXZ7DHXQc/pcNd1VafxAeOHNI 2020-04-20 11:02:13 69.70.221.254 443 80 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r hktlRelay o/iFN2l1VcchdVJveKwDS5gDRWs ZY8f8C2iJGfbvb1c0KJ2fGeLD9I 2020-04-20 12:40:20 1.64.103.119 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=818 +p reject 1-65535 +r mcnulty pADPg22jUa3a2bo1DBq6NQJkpOA xzvh7x0D3fVXz/i4VPBnpj2J1oA 2020-04-20 00:10:50 51.158.165.51 9001 9030 +a [2001:bc8:1824:2202::1]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40000 +p reject 1-65535 +r grezer2 pAEmQVRYNjvfYMTQZnJ5grPUHsw xq0zd1jIzn0Zg2FyUwZvkOqBkoE 2020-04-20 10:52:17 82.64.82.111 9001 9031 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12800 +p reject 1-65535 +r snap277 pBKGEuVnAXp6K3NMZMjDv7AXHtU fVxhQ0oyBh+sphPNyXBgqcKV7tg 2020-04-20 11:54:34 47.58.203.24 33297 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=478 +p reject 1-65535 +r Unnamed pB+SwJLJOLA24Iny3mr/bY1b12U DWmXV993qRQgs1nrncXkKu2c1Wk 2020-04-20 02:34:17 84.39.112.110 13147 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29 +p reject 1-65535 +r jo pCRgdfNp9kETGz5dJtl1EUG/MCw yNL68Me4BbM8SmIjxWXMSsI9Gvc 2020-04-20 04:27:38 81.11.235.31 110 0 +s Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=35 +p reject 1-65535 +r Unnamed pDsP0eeqqque8dJ7/XYw1yjQiO0 CMTT6bW1C0pFsKy4oU0631Lx2NU 2020-04-20 10:24:25 71.19.250.147 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3600 +p reject 1-65535 +r Unnamed pE0A4iXj7AnTpI5KjSydVW0jUEM wDpcJtjyvHmI6iNJ+1VrbQbmkHs 2020-04-20 03:45:37 173.230.137.207 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=120 +p reject 1-65535 +r nofun pGYXSsRneGnWomBr4BvyhCeTlMs z8ZgURdfZmsq5W/6JyJFxeEvVNY 2020-04-20 04:30:13 144.76.19.221 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1800 +p reject 1-65535 +r Unnamed pGbcHFRgUwYJQKsnnx6pZxZ+yss KsAVWPnjXhwGYvG+dPTiz5WfNfU 2020-04-19 23:12:36 198.52.245.128 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=105 +p reject 1-65535 +r Koljasagorskidotde pHccuQAk8YcNYilgUZlFo+SbQP4 8gdb6FY3Jp+DHBHlXX12Gz3H0Fs 2020-04-20 00:07:46 136.243.250.124 9001 9030 +a [2a01:4f8:173:2166::6]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=88200 +p reject 1-65535 +r DFRI4 pHjkIfgxlMEU9B6U+VmZZyrtUf4 E+TH0vGHI6cadG9IBJk1xCZ1E4U 2020-04-20 10:13:00 171.25.193.78 443 80 +a [2001:67c:289c:4::78]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30000 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r ipenburg pIDYyfmxES5Hwk4z2sBBnK8agho XSa8R7CmHlBs8djktlbEvC788Os 2020-04-20 02:52:33 80.100.157.41 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3900 +p reject 1-65535 +r djrizi pIwd251EmTME5otImC9zx+uL3NY 13gnNaPhLrQ4oyWRh+2i6uoDFlA 2020-04-20 11:21:15 64.137.161.147 9001 9030 +a [2607:8880::461:93]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19100 +p reject 1-65535 +r torrelay3 pJS9QSa38Yh8MF0H2yQGaFDq7u0 CZ8WtewyNJvS6Dki5r4zUeLaY3s 2020-04-20 08:44:02 78.34.207.81 443 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=371 +p reject 1-65535 +r campsolid pJx5nw7g8c3s885+7jBDFMy6iCU G2Hx94016x+mDgk1MkQUebK+CX8 2020-04-20 12:21:34 167.179.119.143 9050 0 +a [2001:19f0:7001:294d:5400:2ff:feaa:192a]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=598 +p reject 1-65535 +r plan9rijk pKJe2riA/0IA9MITFvO54HLJ9GY E07S0S07D1oGuCpA0WytWnudkeE 2020-04-20 00:10:08 194.126.175.157 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1480 +p reject 1-65535 +r Unnamed pKMOre+6SSGrJGlU4FH0XvhbRZ0 ScVJELzOB7OFIPZ70qYy3aKTRgA 2020-04-20 12:09:19 158.69.172.230 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9120 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Quintex44 pKOT/vSGQJYarOktBBk0tVNIzvk kOHanxMFssLXPQqdG2Tv0+LWOBE 2020-04-20 06:47:09 199.249.230.67 443 80 +a [2620:7:6001::ffff:c759:e643]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r kiwirelay pMg8K+tPGzHUDoDVUkxmoRfXfFA U+eE85efuVScS0VUl4FYt8riw60 2020-04-20 03:23:02 136.24.157.210 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8900 +p reject 1-65535 +r angeltest13 pMw5GErSh9csIkdziDWBHHp+y44 Ulrpllt2qozekTPFVU8+88xmWXQ 2020-04-19 19:39:39 185.225.17.173 443 9030 +a [2a0a:c800:1:5::86]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15100 +p reject 1-65535 +r banghash pM9qw20Y7A+3sXNMP8fZFIDhuM4 R4rDCeg8YS8Ts+fbeYCkgEbdHXg 2020-04-20 00:09:40 46.4.114.111 9832 8160 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=108000 +p reject 1-65535 +r antongervase pOEgNQQlutkgMH/6dEQPldAXIwI xb6LMv65VmU8oszlF1zAPE0VP6A 2020-04-20 06:38:47 51.15.34.165 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30400 +p reject 1-65535 +r Unnamed pOcxgZmjR7cOhbTIWB5gjK7a2Kw GSEt0sn953jfvt9IHb7+c4htBns 2020-04-20 07:58:45 172.104.187.188 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=291 +p reject 1-65535 +r torototela pOdEENg3Be7/JLwmXeKy/zm9pW4 d4VwaTXLze9KiMeKSNd+WnubpB8 2020-04-20 00:48:27 79.40.102.187 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8 +p reject 1-65535 +r torrocks pPEdaT+rbpSbK3wYFTw/eYmJYAc eowGUcGRLq6R14jIwzzb/TWlgTw 2020-04-20 09:15:36 194.55.13.49 993 587 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=61200 +p reject 1-65535 +r snap277 pPKipolgXbSGIoXXVk2B9iHovBQ n4JDuo3rZyi9iTuf443Byk383Dw 2020-04-20 10:30:05 83.201.75.86 33799 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5 +p reject 1-65535 +r bisindia pP4CGotMTjy4hRz8PgFk3t0LSqA 6BADsj3i3q/Q0ltgnUsxXrQ4ZQU 2020-04-20 07:32:32 139.59.94.18 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=371 +p reject 1-65535 +r 550af08a pQ7em117QXrnzf/otO5+AVAAcmY Nxg0fX0xSOuaTmPBHraXJeAFUzk 2020-04-20 08:43:57 85.10.240.138 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=117000 +p reject 1-65535 +r grhtorguido pS6uOMcKd7t+Vk/WxsffaICXrtc 3BVkDrOYiXh7M01K0glTswloT1I 2020-04-19 23:34:07 93.213.146.52 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p reject 1-65535 +r BienwaldKA02 pTVpyzM+mJWkSVRwDMB9ITWAFRg BvQj4wvO+7sQGxDnxZyxTH5Ps9Y 2020-04-19 21:02:35 217.81.81.31 9002 9031 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=720 +p reject 1-65535 +r csailmitexit pTxG9bFX3YM2bUWo6ZokSTShTEY hIxOqLMkxb/y0JWc7QE36x5VzC8 2020-04-20 08:03:53 128.31.0.13 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11600 +p reject 22,25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r Unnamed pUBoQS3DOTldQJHnLUAlUzlgaiM XkXDLt01bDisZoc2RheF1dolQys 2020-04-20 03:49:43 129.232.134.119 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=334 +p reject 1-65535 +r alittlehelper pUJD9jbk/LL/WjIRLxJvvznQvWg m5LqTNsDpc8jAKNA3Az6KyBvKus 2020-04-20 01:28:30 84.143.185.95 443 80 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=56 +p reject 1-65535 +r CheetoGottaGo pVDV+oCBEBu0zKF9vNXWq6u+a9A jGAfYr6exy/YaTja078zgNRStxM 2020-04-19 23:45:42 71.127.173.98 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5350 +p reject 1-65535 +r anontele pVNWGoUb0Rh1C0lq3CsIgZ3RkdU 4TZZBeL3Qn93S2gNSrr8Njmwrdc 2020-04-20 10:54:31 98.128.172.177 1 2 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2320 +p reject 1-65535 +r GENESISPENGUIN pV5ROig98s2J/B3tOWsK9PyPJfQ VOKRAW4Mvea8LoLqpcl+zFzqCMI 2020-04-19 19:28:01 88.198.41.140 9001 9030 +a [2a01:4f8:a0:11c2::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=82100 +p reject 1-65535 +r hacktheplanet pWf/XccqIaa3EgYJ5R52xJUX70E I0C3t6IqC+m2+zMfG7AJDzOkeYM 2020-04-20 02:05:01 62.133.157.139 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1840 +p reject 1-65535 +r Unnamed pWoBIKIVV4MgANXGj8194I6Co7A GF1/IPTz8ZuAtZqU2OAKESwXQ/8 2020-04-20 07:15:10 37.191.198.135 38443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14000 +p reject 1-65535 +r Unnamed pYZuNQXpPS0L85HR+iiTFSeYmCc 4l6ZDRyedqEqxc8aTI29mPmEMKA 2020-04-20 05:21:44 99.176.15.169 8090 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=180 +p reject 1-65535 +r lptr02ORFzF4Zq pZFlfMf+zHle1D/j7yIpDlM7uy0 BOLR3O22Pec1HYAbiunZTRXOU5Q 2020-04-20 07:11:22 173.212.242.110 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120 +p reject 1-65535 +r drizzle pZeshm5AyrWmd1mt5JQhkumd5oQ nX61vejveVPuBCNKkMaDU50sziY 2020-04-20 07:20:06 46.166.151.217 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57300 +p reject 1-65535 +r AutonomyCube pa9dGQRVDdJ7HFCHLZSWxz2Rau4 0WLIIC2xkuthU+0ToqtFLRzocYc 2020-04-20 11:37:34 213.215.202.234 8051 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6400 +p reject 1-65535 +r demonteal pbFdWQwgdEa/tvc5/KZ96MF29DE jEYO7F73xOWkX9wOxGM9IdNAvBM 2020-04-20 03:42:25 138.59.18.110 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8443,8888,9418,9999,11371,19294,19638,64738 +r MARS pbaC6EZhUIg2Kjsr0Rw1PIR3hlk I9DYA2TssMNw/NIkE7W6+59Dnkc 2020-04-20 00:59:33 31.13.195.130 443 80 +s BadExit Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9160 +p accept 20-23,43,53,80-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Ceedfoptoa pbk/gxMTIHHh5lTrzL/p8fBz2Y8 7Y2AcaWzGIoKLXp5eFAW75htJ6o 2020-04-20 10:47:42 95.217.42.94 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=840 +p reject 1-65535 +r snap277 pe/fh9AIWzf6z0e2ndxwd1Cvcsg Re9lt9jAkuqQQEfoExDV8xWnyIk 2020-04-20 08:02:32 176.154.225.16 36195 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=672 +p reject 1-65535 +r weirdoo pfn5RWA4iIMi4c6WWmZAs+C7FMM 9IbXPWf5i7tzqTHQn/acbTfoflk 2020-04-20 10:56:58 80.71.138.195 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=290 +p reject 1-65535 +r plan9rain pgQIbq6Dh3T4CYEZJaIj3P27HRc YBvZlYaBaNjvYgxVrxPUFNDfkIg 2020-04-20 11:53:12 5.9.56.12 4433 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=840 +p reject 1-65535 +r dc6jgk2 pgaX/zg+7uLohQXdTjBcB78yaxE BrY7xyYVUnaL2gBMagsQubd5U00 2020-04-20 05:43:20 80.147.33.157 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1340 +p reject 1-65535 +r adlon pgr6b/su645KTFMfump4r1hqrLc GiCnKfssBIGOj3ORCVu5grBptaU 2020-04-20 10:41:29 185.73.240.205 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=380 +p reject 1-65535 +r Elias phtWpQ0T3CnbsjxqAz+j8MV0IM8 Z5Qb7oQYuIk/KT8whx6rRGfOx8w 2020-04-20 09:14:26 144.217.80.80 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r TheCube pid6zFXbCkiPYVuWckJ+DdG0+Hw 1Ykec+YmLj/s5ocnHPbI3cxuSMM 2020-04-20 11:47:08 62.78.245.129 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7800 +p reject 1-65535 +r Unnamed pkvW2jPYcPOAfFd13qI/buMiibM oFY/hV/+LozCA+rLsEzEuUxlFGc 2020-04-20 07:24:05 95.216.154.139 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6000 +p reject 1-65535 +r Unnamed pk71yF9Kr3HcXRwqzOfY76r1mYg ZJxwjeknloabiYu87gn6KFDST3k 2020-04-19 19:46:14 5.196.68.213 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15 +p reject 1-65535 +r Unnamed plBPGp+va2FEB+R55GIn+g0SJO8 UzNqu3mi3YXwENzcln5oMf2dyBk 2020-04-20 08:55:00 129.232.133.43 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=420 +p reject 1-65535 +r netcup plJ+K3oy0CuaVHT/Enm4PGKoeBQ 9Gxt8a5LhRvRIuE92kktrg6VyFA 2020-04-19 22:04:23 37.221.196.31 9001 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r pym pl4VI/MTQFu2DkqhNqae+lBMT2A PUljqRBt8GFebKMPNk0sqM/dW7Y 2020-04-20 11:24:50 62.113.216.177 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9050 +p reject 1-65535 +r genericRelayName pmRXfDlGNMe+tgQAYhRDBc5Hhvw vgshLSTwnCtSZwZumrfnbt8ifM8 2020-04-20 00:03:04 89.176.78.62 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4160 +p reject 1-65535 +r alxu2 pm5Xgv5gl9KCQERGZ3b+kSrv2Fs RVPVLVlWwrm35Gs2oHe98Y/h/6g 2020-04-20 04:20:34 209.141.54.168 443 24384 +a [2605:6400:20:274::1]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4210 +p reject 1-65535 +r Unnamed pnD+5ef3cibWw8bU5BKVQbd7Ujo Fu6e/Fnb98nmxsMxLTu6mnemkFE 2020-04-20 06:12:08 81.19.210.148 46300 30530 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=153 +p reject 1-65535 +r cobrakai pnjaYKbHy3RlU0MNhK9FJy7N2pU T4sKjnYKj0euX5bIWw9Mz5KCAeI 2020-04-19 20:20:28 45.79.96.232 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4700 +p reject 1-65535 +r Unnamed pn+YyoxJJ/7ToFKqL3QA0Id8aYU kULfk03V4Mv9wJK94t8D1CgQBi8 2020-04-19 20:29:46 72.188.224.179 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18 +p reject 1-65535 +r olabobamanmu poCX/pfTBlsab0znGH11P4uFE/U I5jJJjUWzMBBT561TJdiVAoEFNk 2020-04-19 19:39:19 212.47.233.86 9101 9130 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3530 +p reject 1-65535 +r mjay42 pocTjCzzg3Tlcn3Uk0t8sPyLhtc 83ugSmxwYiggPGV1sd0+qvMktmw 2020-04-20 04:05:45 149.224.141.48 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=428 +p reject 1-65535 +r PiratenparteiH3rmi ppDGqoECwCfSl680Ab/haRjM96Y 6vrYduOQp3dDexySK7DiwKmOhwU 2020-04-20 10:52:48 78.35.144.81 23 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3700 +p reject 1-65535 +r Truie ppIhp+x0mNL4ig+3lSYQE/o2yq4 9ngxv6W/xgRFEgkibtiJ/l/tyWY 2020-04-20 06:34:27 149.56.185.56 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r FrankWoiTor ppVrKcW5mXB/CvAGcy8vp7PValo vKYwfVGF4jq21F6Pw0pdoqp4iF4 2020-04-19 19:31:29 185.243.9.128 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r Unnamed ppoKu08BNapMOLGXj+UprQQH2t8 vRet6kFhCkJjZC4SOw9c26VqoO8 2020-04-20 10:30:17 46.101.215.42 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14300 +p reject 1-65535 +r dc6jgk6 pqqUtAB6DikZstqOzyz6PKF2GhM frWZ5KoyiMqvfvaE8zTCvzcjJZY 2020-04-20 05:45:51 62.141.48.175 443 9030 +a [2001:1b60:2:32:4104:104:0:1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3540 +p reject 1-65535 +r irish pqr66ru6zHTOsVvpzmnzs6QIeEE q9StKthp8spvmvK+3Z+rZwg3dOc 2020-04-20 02:19:24 185.12.45.115 9090 8080 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r apx2 prBSHEwfuR+2Y5iq1SOtdz6C534 EzQ0WiJ1/CN+XLyayNhCAPPXboA 2020-04-20 00:53:27 185.107.47.171 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=83500 +p reject 22,25,194,465,587,994,6657,6660-6670,6697,7000-7005,7070,8000-8004,9000-9001,9998-9999 +r CretinDesAlpes pseCG+AMmpURgSlu4S61rYt8+hc i/oyclY7WC6ASagBQI8VUIerLFY 2020-04-20 01:48:20 2.7.3.143 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7200 +p reject 1-65535 +r leek psxXfzWs/8ruBu05Mh69VlHuyOU QOF5fJztZgefb90lu9SrkP8Jnvk 2020-04-19 22:04:48 205.185.126.56 9001 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4500 +p accept 20-23,43,53,79-81,88,443,464-465,543-544,563,587,706,749,873,902-904,981,989-992,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5190,5222-5223,5900,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r googlerelay ptSwK2dlKPxrv7hE5hdp3T/3xC4 /QA0lwJtVU1QzDTm95NoQP6+oE0 2020-04-19 21:57:51 34.66.251.97 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6180 +p reject 1-65535 +r HRMB puD5UMrHSvhnyiGXYGlSnW1NPjA AiWDbzk9irG7lSPCJ4xzVJqZmJM 2020-04-20 09:05:49 144.76.78.60 9001 9030 +a [2a01:4f8:192:14::60]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44200 +p reject 1-65535 +r AutonomousAction pvWAENWp/TI6sJKEYsavb8T/hyQ ibcIVL8thmJK1rZPClJVQt2yWTw 2020-04-20 01:22:01 172.104.227.182 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=95 +p reject 1-65535 +r Torroo pwbefb/RALv43jhyjLwqVSotH2A dsmOGbeMaLUw4rIBtF/CUSmByRM 2020-04-19 22:06:30 54.153.249.26 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=110 +p reject 1-65535 +r rortor4 pxQ808VI62PZhkfVkqeuPqArFCs kFYZA4y8KbibZNgeGPuo69IJ2sk 2020-04-20 12:31:57 172.104.157.65 9001 9030 +a [2a01:7e01::f03c:91ff:fea3:cb26]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5350 +p reject 1-65535 +r SEXYonion pzBjNBOvRFhfAj4sIUHDqrS0wh0 zrFui26T4Wke1cOwgF6FvL9TNa0 2020-04-20 04:21:24 51.89.149.202 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r hviv125 pzeKIVSDxq2ZaK1QXaFFT34pR5c +23e0JK89Et0Jbiz4lvhVmST6SM 2020-04-20 09:40:36 192.42.116.25 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26200 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r Unnamed pz5LahUaX2IoE/pyd2PzRqPtwXM PeeaPcQu23JVpRiiIQsPR660X64 2020-04-20 01:47:45 60.62.21.29 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9 +p reject 1-65535 +r TorOrDie4privacyNET p1HYvuIiVkt7plf3S2ZYg2/xruo YbCS6d6Zvh3lOwmtBGxhnF71saA 2020-04-20 00:44:50 93.186.202.32 9001 9030 +a [2001:4ba0:ffff:11a::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33100 +p reject 1-65535 +r advisory p1RT6OXRDQTL3MJnz2NzdvXWoPs R7iGSDI7H85/CI/gClfOxfpfx1I 2020-04-20 00:34:12 52.59.187.180 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=741 +p reject 1-65535 +r Rishi p2ruLDpyTMHNBeGwbJSKwlEvTzM SN1WmvdiiJCuU4r0gBM8xBZ+wQ8 2020-04-20 00:51:31 185.13.37.252 9001 9030 +a [2a03:75c0:20:8f6f::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7560 +p reject 1-65535 +r 75df766f460b p3Ko2ReM6SQsX92tERfeBLDRbYU +NV/AN8Psx525E8kfTtwi3Dl8AI 2020-04-20 08:13:25 51.81.253.216 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r nodvrelay19 p333KaUaUdOQyexou1+GB99Sx90 sgJDYNjGLT2MGh0Qgfc/rHt2Hl8 2020-04-20 01:16:06 45.62.246.174 9001 9000 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3100 +p reject 1-65535 +r doboz p38WprMTHq211R3i+NCRT3Aq01c TE0pJWCDDzlfyoi/o0rQSUbeoWs 2020-04-19 22:02:25 92.35.162.160 46111 46220 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43 +p reject 1-65535 +r justanexit p4sKWuLMdqGsFBQUo+PZnvyOKqQ 1mK9U1TpfMHXEzGf4Jdho7kTYnM 2020-04-19 23:31:53 149.56.3.232 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Beppo p5n99f8T0fZV0VOmuoaezUP11ws UGPOFGxLeOn1zkMW9CfJJLzYF78 2020-04-20 08:54:28 93.202.92.52 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=300 +p reject 1-65535 +r snap277 p5vlR2TgtEs2JTHAjxbJ9Ftwkhc 1a4MCH+3GEf9QQno1kIgsHD1f4E 2020-04-20 04:42:43 93.16.51.43 38381 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22 +p reject 1-65535 +r tor1worrus p5+UEX1z1K+kvONAo8tuNFyBdZQ JVdwcrvTWnWq9UlY8xd2BQEY1yA 2020-04-20 05:27:29 81.169.232.121 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11800 +p reject 1-65535 +r Odin p6vSFHkG0WIqVtrZqMwqfoTe+Ok EYcXv1mk4ql0rtAZekj0ehENeDE 2020-04-19 23:35:22 217.248.74.202 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3050 +p reject 1-65535 +r SuspectMain p7IEZF2sev21BG7wATxb3CzwlFY Qcsb2vh8rzP/n3X35aGfq2TBcWI 2020-04-20 00:37:19 86.15.164.215 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1640 +p reject 1-65535 +r rofltor05 p8W0DsD7UXXohAdd3IdTHTU/Z5w pA8QJeWtuX/5UeSLtZCjq3wnCec 2020-04-20 10:00:03 178.63.19.126 9001 9030 +a [2a00:1908:ffff:fffe:4c60:4fff:fef5:5cec]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26200 +p reject 1-65535 +r CalyxInstitute13 p8frKg37Lj//wSt3VnB0M91VD54 lFbKbbndZbCdHK0fNRKO8TL4bOg 2020-04-20 00:37:14 162.247.74.200 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37500 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r Ted p9F1l6Z/CtZO4fOkFKCtygCAF0c hhskigse1MFdDRl5OLVHInNggnE 2020-04-19 21:58:39 185.217.0.85 80 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6160 +p reject 1-65535 +r ObliqueAsymptote p9NOHkpJhRY2DwmBhO7fgTLGkNU 1r1wJ1gXN9xnZYNtSTm6arvF3sI 2020-04-19 22:25:47 96.70.31.157 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=430 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r tomforbessrelay p+ZkD+yFybBPt3ilHLmZ41opUx4 e63j+ohCxcuRnLdeIhQ/lHZIpv8 2020-04-20 02:32:21 195.201.21.75 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14500 +p reject 1-65535 +r ninostor p/cBRS+hsR46r1RzAHPGF/hIkf0 1ghqFTydyXeSXDGxwbsM2extgA8 2020-04-20 05:00:20 77.140.209.192 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=118 +p reject 1-65535 +r tor4ever14 p/fKhK2DoUf9jklHPFUTBuuhBPI 4IMU9qOJU86q0Umb7Ds10YjtDA8 2020-04-20 10:34:33 45.62.228.30 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1110 +p reject 1-65535 +r WooptThereItIs p/gKt+BMAATo3goAN/jtVCkkWL8 inEH1kiNLX0r5x84EdHEgVJQivM 2020-04-20 03:12:51 149.154.157.80 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=833 +p reject 1-65535 +r AgentSmith qAZmVtFjkQxIqBhOZjwSRBjqp6g JdmFTAm0Ok/9O3vxfbrJveI9wIQ 2020-04-19 22:29:57 139.59.56.19 11443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=188 +p reject 1-65535 +r huebing qBD/Hlx5g9Q7NRdQZHknS12lrHM b/YOp1TJzbEpcZfUuL8DR6cnDOA 2020-04-20 01:12:38 185.227.82.63 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8790 +p reject 1-65535 +r jbrelay0 qCxOejPcQT7GMKsGqubz3NqX8UA WbqL+fSG5GXtUZ0/4WzaF62GHVI 2020-04-20 10:26:01 84.135.107.141 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1000 +p reject 1-65535 +r jdcdp qDW+aq/1px2GmXN1iFMP3hQbIJ4 ejUaOr1OSbh69DYY2F843EyprUk 2020-04-19 22:16:39 185.140.64.214 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7330 +p reject 1-65535 +r snap277 qDfX4oSBOWiIGvGwI3fUDEkYHV4 N4k4VE7frZA9cuOArFD3Dq5mQPk 2020-04-20 04:53:53 24.138.15.61 43175 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=573 +p reject 1-65535 +r TorStar qDgpa58BqeJIe8OiXV5fL7ipefo YoHjZ61VDDWwKAjTST9U9wlRRDI 2020-04-19 23:52:04 151.66.105.112 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=348 +p reject 1-65535 +r extracremig qDlz8SKUOgnmq9gLUyqeRDlaVq8 IAiWwPsxSIg1Jqe3ftWX/gyUstI 2020-04-19 23:52:11 87.154.212.232 25678 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=972 +p reject 1-65535 +r MEGAlv02 qEm3+Q2WZ1XPHnofmWSbsH054f0 u9+BxeM71Q5Y3QwJ1tOOjZWaZhU 2020-04-20 09:14:14 195.123.208.174 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3520 +p accept 80,110,143 +r glacial qFfajzco3kR1v82G2RNR9eMCs98 WjQ5scMTu5vHlg0ejun7SsyH+XA 2020-04-19 23:40:49 62.112.10.154 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19400 +p reject 1-65535 +r Faraday qGEO3HSaOBij1TJUGbNUg7Tev0U axfvTQiSSmOdvhRcZlUQFKmUq50 2020-04-20 12:08:19 200.56.44.184 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r angeltest19 qG7CT1uLlk9nrHwnzpKEICWYMnQ 1Ha6k5IsEjzPIW6eorgoQOvj7kc 2020-04-20 04:34:38 185.246.152.22 443 9030 +a [2a06:f901:1:100::241]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9600 +p reject 1-65535 +r sparta qH0Z3RqJMnuNuHjcJ5NCZ1J5m1w d9UQjPg08bLcbPxpN5AHgXCg7P8 2020-04-20 05:51:19 185.100.87.251 9000 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18400 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r thisismyrelay9139 qICNGuu31hg8QlN809mnQ52IPhY h8hMFRMhN9sKOKxD5fkwhWJhHbQ 2020-04-19 23:38:44 97.70.176.61 9002 9032 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1480 +p reject 1-65535 +r iridium qKRuX/e5KDA7zxWBEs9+jtuyeME 46K59mkm84fSY/DH2bJFmfgkuNY 2020-04-20 12:31:13 51.15.247.113 9001 0 +a [2001:bc8:47c0:1628::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r 78bd4d165160 qLK8MMcqmM8Sh7OjqIMCsfZon5o zXKEAqwHFV98TWqFqRv4A3Kuvfw 2020-04-20 08:10:39 51.81.254.12 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r HappyJap qL/h5lxtw8elD436C/V/ChGBRKU uD8IzT17IBNIk28vHYRHGMeEpmI 2020-04-20 02:33:53 76.21.156.2 9001 9030 +a [2601:14d:4103:1370:ba27:ebff:fef0:838f]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r ds238928942 qMBzseNRSoDHYV/on/tWXyg+Bt8 LNE7C6Ye2Dvb3YrY9lYfupghero 2020-04-20 10:57:46 185.165.171.14 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1 +p reject 1-65535 +r Death qMGu1DQ8LKUUycoSVIj9J2Q1Pxs zIqHFqGdTLzjAfWf3wDjX0e/TgE 2020-04-20 11:21:48 82.158.100.67 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9140 +p reject 1-65535 +r Zimmer12020 qMKYgaOW3QsA/Ex5TA72hVT4ymg RTC4EZycXmn5lsLxz3wnfnmsB2g 2020-04-20 10:28:11 92.63.104.84 9001 80 +a [2a01:230:2::dfb]:9001 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1560 +p reject 22,25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r 0x616e6f6e qNRLgy8yZ6v8c/VAxsTPAin9frM cuMgUxIrTADYlHvMBKfJsBl1dYI 2020-04-20 11:50:26 104.244.72.164 4443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20900 +p reject 1-65535 +r ULayerRadack qNaO1hZzsxTMjNMcInWr8eBzh8w LrICn89efVe+A8ftLhvuIvrsTN4 2020-04-20 07:13:42 107.152.35.64 443 80 +a [2607:9000:0:28::e7f6:c57e]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7480 +p reject 1-65535 +r zlangtor1 qNvY+GOs6BbBzOsR8fhxBW0v0LM D3KDKvDlouRAPdNqXjsx2GCeXqs 2020-04-19 19:49:55 51.15.56.122 443 80 +a [2001:bc8:4700:2500::1587]:443 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r whitepearl qOouuymwukRy8moEo0KWf/BswQQ 5d5vq/3L4E7ZDEpArsMsOG4ZiKU 2020-04-19 19:28:27 87.118.83.3 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r nonanet06 qPzbjBLNukl4hkYTpws5bcrUztU qkLu1CmY/3QAspXoYhbXTwQAbrw 2020-04-19 21:50:33 198.251.89.157 443 80 +a [2605:6400:30:f717::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7850 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ExcellentRelay qP7HXHXCSZdGexVgPb3kPRCN7nU 3eX5SIdwKsfgUczazGG/vRaXVEg 2020-04-20 02:51:07 62.171.135.12 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r air123 qQ0JAEh10daOplRoLF19uvp7lm8 1q1Rg25b5DMce7s4ay0sMEJPnFQ 2020-04-20 12:12:38 84.156.168.187 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1040 +p reject 1-65535 +r ShirinEbadi qSaXD+Gu+cbY1L9X7WuI8/jGZBU /vgSWICwF9zJwV7sVHHZT9Xs7iM 2020-04-19 23:17:02 51.89.23.74 444 81 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15100 +p accept 20-21,23,43,53,80-81,88,220,389,443 +r UenoStation55 qTL1b2nSSpagy8TzKSKmLe/SjHc aMpCzsuN543lSjzdTXYa+HTVrFg 2020-04-20 05:58:59 51.89.143.155 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11100 +p reject 1-65535 +r niij03 qUBqAG1ue12jDyxtTkKjOLXjQLI kzSj3KPdUybtPH7a35Krd8+BUds 2020-04-19 21:10:43 163.172.149.122 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9770 +p reject 1-65535 +r 3735928559 qW2mPkQV53b7/M89pxVMgEU0tuc fxvxDQe7EV/zKuLLl2aBntgMG/E 2020-04-19 21:17:43 38.39.192.78 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14500 +p reject 1-65535 +r NerdyBloke qW8Qgo9dO6QqyJJ/A23r2ZTvBL8 YNzUXfHgcTyLQUPB20fz8NW2wLY 2020-04-19 21:43:45 212.159.177.198 9001 9030 +a [2001:470:1f08:d10::2]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=80 +p reject 1-65535 +r malt qYYMQu9TI3noRgh4AmRrXUvLF74 ljXGu2JqEVYHnncs+evX3yVv7Xk 2020-04-20 02:19:53 185.12.45.118 9090 8080 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21700 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r 2Contribute qYrdlyBF08yu5lx4jD8XW66j4yQ CYKeaKaMkpeyHr5dQalMuPX14uw 2020-04-20 09:07:06 80.127.137.14 443 80 +a [2001:980:ea82:1:20c:29ff:fec0:4764]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15400 +p reject 1-65535 +r bolar qY9JL2UxrjoGjdNTlcqfW+jwNVw AmurQ8T46PdzHci6TB7hN8n77dI 2020-04-20 10:02:01 84.213.16.48 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1590 +p reject 1-65535 +r 5fd833a9 qZTvK7JpvrWPE3uPD+4lZ0Wu/1E GmvCNXj9znBk2GFCX4o3297Vjgg 2020-04-20 10:10:41 95.216.51.169 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10700 +p reject 1-65535 +r FlashBear qZpQrP9rzuArR+P67fiVNYeoXv4 ypxheu/jv+OEqhxLpvzO4QboLoU 2020-04-19 20:14:32 185.22.174.119 9001 9030 +a [2a00:1838:36:115::8a3d]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3940 +p reject 1-65535 +r buttercup qZsNnl/VvDyPLQBuyR+Mf0DgnLg hbpPziy+B7DR+jJODcIEarCVblA 2020-04-20 05:10:36 46.4.78.148 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=105000 +p reject 1-65535 +r u698id1147 qaQhPqPXB4VzaMaD8iCMg7h1XYo sYGZpB3FYhAkc0PiseSMUvr0/L8 2020-04-19 19:41:26 91.233.116.51 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2250 +p reject 1-65535 +r BWV639 qa4gooeyFe4EnAA3PJUvQ/CAvMk VBVk6CCwVMxURq0ROp4+21gjGfk 2020-04-20 02:00:05 173.230.137.91 9001 0 +a [2600:3c02::f03c:91ff:fedf:a49f]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2050 +p reject 1-65535 +r Assange011ruX qbKOTU+2omtbbT7e0mVdg2u9Tlc 2L7jGwG1lzftWt5lJBKlf//w9oM 2020-04-20 06:34:49 45.140.170.187 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p accept 53,80,443 +r Raineelay999 qbOuxghl2kgNe5gxv628B6LK4Z0 2cvUc071j5uHLWQXcEx8FVFJM9Y 2020-04-20 05:33:19 46.5.113.113 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1310 +p reject 1-65535 +r alxu3 qb6i4GmdH2BSHIoRZzQJRaQZ0QI n9GovtInJxn+kvNJxdfEywh/Z3M 2020-04-20 04:16:00 104.244.72.188 443 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49400 +p reject 1-65535 +r TaffyNao qdbZio9f9DeSkasULu72NP7BlBY zjKJbqlQKoAmckRWHtvT62tXxos 2020-04-20 05:52:34 140.238.70.193 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1740 +p reject 1-65535 +r theherosanctum qdwEpclu5ZhnU6FeOEu4Z57o8xk mI5y2YugD06QEyGGERt9FaItvqQ 2020-04-19 23:15:11 131.255.4.48 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=340 +p reject 1-65535 +r snap277 qenPp8IKHUxnvEtEPXXjulwMYkk Vc662W0TXxnkQJfeLs4TrwH1dQ8 2020-04-20 07:08:12 91.174.241.162 40445 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3770 +p reject 1-65535 +r herlitzka qfUTWuGMfiXHx5EXzYx2Gb/rhe0 UpluGWKk1Sbsy9reXkf2cFasZi0 2020-04-20 02:39:11 85.159.237.210 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p accept 20-21,23,43,53,79,88,110,143,194,220,389,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,64738 +r foucault qfVFrgO3Ma0y+ak9aY6iDE+m0Nk EZFtupVvUez4gZ3lickIkyZ47lU 2020-04-20 09:26:39 51.15.113.79 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7470 +p reject 1-65535 +r damita qfcYVJnFeE41tcJXRO1Kt1Q3zl0 CS/KJV7oMzR05tnNd+GRWstCLlI 2020-04-20 09:38:16 91.229.76.124 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5900 +p reject 1-65535 +r Unnamed qhK0WOuqwPLrCo0YtT8XX+s70/U 4ns1rcZ75d/rV9zrmnMDHpre6Bc 2020-04-19 21:41:39 136.243.46.31 10519 23551 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1070 +p reject 1-65535 +r Unnamed qhsCbuDIqVjinGfH2Ihf8nVyJp0 6nmUumMCf813fmoajDBUSCJ+8pQ 2020-04-20 07:57:35 212.129.4.84 9999 9998 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=752 +p reject 1-65535 +r AFistfulofOnions qhxym6i4RpMNU1gIIqgfbDhDLAA u07WWeFb/dzoRor0jXOmtj2uymA 2020-04-20 07:04:16 178.128.249.136 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2800 +p reject 1-65535 +r dontstopmenow qia5e2ynV79jMo7pZwUSBgnPSq0 kjaFfpvCtMc9APEGUGA/5MW7WRw 2020-04-20 01:59:33 173.212.200.241 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14400 +p reject 1-65535 +r armAtor qjQhlHXkEoIJXdPAiACe5WKvFOU egJWXUSX5/3oBuCpWVKV6BciMII 2020-04-20 00:02:43 51.158.119.98 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3800 +p reject 1-65535 +r rixlv qjWdLVnEwL/7n+pszeMLnm7rvos tXltvUJDZjRUDoYkH0I8xioctmI 2020-04-20 08:40:45 195.123.212.75 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=458 +p accept 43,53,79-81,443,531,873,981,8008,8080-8082,8888 +r roTor qmFjFbqXcp6kfa2HGPpZJpxyKec RaC0Y0Yv2CXCIoRRYgHGpZ485yo 2020-04-20 01:54:24 77.109.112.149 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r king qmgMc8tYn4tKkp/2+ZzUnoJ04fc 6AfVp3POkcse+MqImZTpFg0PoVU 2020-04-20 04:45:34 51.68.201.123 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r nonanet04 qnU/sageGuSD8Z9EZJDAAJQ2eLs jD3NRY89c+gNiJUVkh9tkQleCao 2020-04-19 23:41:54 198.251.80.214 443 80 +a [2605:6400:20:13ef::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Bertie qna8KaA3zs6ArOZEXlF5MEmaCfI kEGaz7VuQv7BOS2bJvNB83JWx2k 2020-04-20 08:41:28 193.148.68.142 5688 2035 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p reject 1-65535 +r randoantchain10 qnuVMUlLLTq5V1DTLRr6i3Hzgtk zyQ9ReheoDGiE5ibR9p9XAIJshg 2020-04-19 23:32:05 68.183.88.223 9001 9030 +a [2400:6180:100:d0::8e6:f001]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=710 +p reject 1-65535 +r JustSomeRelay qn1WnFL6RNeSG7gRS1AEToDRefg kmxD+3kq80jHPOmBMvqhUoOwXCM 2020-04-19 19:54:44 73.90.20.99 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7 +p reject 1-65535 +r snap277 qn7R2bSt/kpGtL964hP8gWI7d6o 1DPnGBpiuJm6IfW/lQbAkse2d2A 2020-04-20 05:13:41 94.68.19.180 40165 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r NameInTheConfig qn8nyoljFB5XkxeW3C2/o6r9UMY gzLJliHSNNa0FRJ9Ymswy7p1ECQ 2020-04-20 00:47:29 110.141.238.136 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=62 +p reject 1-65535 +r 148a25f0fe29 qotyN7TSx27UrySztHs3WBKqzIM SnfkU6p66wyJ2iWBfShFVGpo3Ds 2020-04-20 03:48:25 51.15.219.225 80 443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33700 +p reject 1-65535 +r MyCoolNick qpiuS9tuA7qkgBHK6Cjs7FCwKcg dKnxhNXmY04b/8pIBwMoylHGxRE 2020-04-20 06:00:27 149.56.98.216 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5080 +p reject 1-65535 +r bebop qqAwRLQq031cVZLWYEptG3L0s74 8GOTT7h+Akvvy3Sfhy1k0kxfaRo 2020-04-19 21:30:14 91.204.45.142 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14100 +p reject 1-65535 +r Nozel qqH71qJ5Tj5BFtVYpdNM5g0tmME xAO/ZXqP33FDDzLIYdJSK8Cr/lk 2020-04-19 23:53:11 163.172.49.92 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=15100 +p reject 1-65535 +r BlackHall qsauSo7RZMNlfWTj75gO67S7yKE dBlvYsd+cnglpTs7MHLNF96N818 2020-04-20 09:25:37 185.103.110.144 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17200 +p reject 1-65535 +r Ubuntu64tor qvAK4XCnvBhLpwoQzzWXAIFuU9A Y5sSXrCFzmSYA6v3QWushCtawZg 2020-04-20 04:00:39 87.101.55.54 443 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1850 +p reject 1-65535 +r PorchPirate2 qvl7N6toXSkkGHPaf9ZiDNThAd0 GAYkLwicmXp1uge+TFSC9csIFhY 2020-04-20 12:30:28 178.175.138.59 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31000 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r jceaonline qv9KmXVD2w2IH08RY4SFt9Rx/s4 HcfPbaJltCMmLLW6VQ9YSrIyIuM 2020-04-20 10:42:15 51.159.34.131 47168 0 +a [2001:bc8:2ecd:caed:746f:7200:746f:7200]:47168 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21700 +p reject 1-65535 +r onemoretorserver1 qv+mirYSOPkES27Lpi4lJkET64g bmQvkuhCbNW5OgTh6TBTzbgGS7Q 2020-04-20 07:09:29 164.68.106.94 9050 81 +a [2a02:c207:3005:1808::1]:9050 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3670 +p reject 1-65535 +r yaudepoele qwzBlRdHbmELhv95a3A2Q7/iHok zbuiVciTnx6/M8RQv9Els5dPDpU 2020-04-20 08:47:32 5.51.106.108 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1800 +p reject 1-65535 +r Unnamed qxoNzFvfKw28zu9KgyXX6W43+Hg wxBu1n2Ibe28AI8ucpaDreh3my8 2020-04-20 11:12:48 51.89.180.225 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21200 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed qyVHiwKOkQDH2LkovnkJgQj6Czs WutLwLuKnGgqrv9roa7L6GA1W5c 2020-04-20 11:42:28 52.175.243.180 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2100 +p reject 1-65535 +r luxurywood qzIn20cLF4g9JNgw6oTr+9x9WBU uWS6cLOTYVTAnpo7mLMx5cXqct4 2020-04-19 22:56:26 206.192.252.123 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=4600 +p reject 1-65535 +r hviv118 q0dh4jr1EegwbpXnj36C93suSH8 /LhthUklWYh1PC1au1maaFjh8IY 2020-04-20 11:41:18 192.42.116.18 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r Yintor q0nziep8KgVOkjvKLm6Yw17c1tU YTRLGRTqNQLOf4Qc+k2sB03JIl4 2020-04-20 12:03:46 62.195.44.72 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68 +p reject 1-65535 +r neuronMail q2aQqvRfU/fzvIQuI3efJMk0bfk RfF9wTmK/56SaACvc3DAdu57XQY 2020-04-19 22:01:29 45.79.76.174 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=55 +p reject 1-65535 +r UseMoaBandwidth2 q2h5iPJg3p7cOzbGYofeJmDtHOA WoGtZC/3DrE3SBZ44Yc5IPR39fQ 2020-04-20 09:51:51 163.172.60.25 9002 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27300 +p reject 1-65535 +r VccineEffort2 q3LBc4b0fLrYe/3BZUQuPK0+WbA d539BpmVUBTUyy4lBSYo0Gg2GQo 2020-04-20 09:56:06 47.56.192.35 9101 9130 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-4 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=250 +p reject 1-65535 +r Unnamed q3OBbl17xSZky7nQBf9Xm6/q/oc gQvZ93GiAdyTKAkdSuUU4OpqYok 2020-04-20 05:25:13 5.39.80.135 443 80 +a [2001:41d0:8:9287::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4650 +p reject 1-65535 +r mindstab q34mw69TaoflCZM1pMvoMuIZQxE Wo9ReXXSLhdBqUUXE+M6WmED4W0 2020-04-20 07:29:31 95.216.193.39 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2460 +p reject 1-65535 +r Unnamed q4CPXiVOK3Hfup3TGTZu3I9H5TE oNpCNB/x5RdzB7b8Q9a2rCbCah8 2020-04-20 10:30:49 91.219.238.113 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2510 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed q5XJmoDKLvm0st9BHr84Zc9dQNQ l+lv6MrtNbe57P/XjxktTosVgKQ 2020-04-20 08:07:45 78.35.58.178 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4320 +p reject 1-65535 +r nodvrelay26 q6I8QifwBqZs7xqcssWMKt+clwE Yyzsy79BokuI02wIs1AAN3qNxnc 2020-04-20 07:16:44 45.62.229.64 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3330 +p reject 1-65535 +r apunkt q6MXlbrSq4CX860P4akg5RjT0/M if3Plc9cEAQSNZc21+4Xdmi/TZw 2020-04-20 07:22:12 185.194.239.220 1234 1235 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2980 +p reject 1-65535 +r TheDudeAbides q66VXQXZBBIwNB1EJnrrPmxdAPY MqitltoPuk2fEBSz4gzqGdqLt/A 2020-04-19 21:29:54 85.10.202.207 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=90000 +p reject 1-65535 +r KienjochRU q7kEGDdD/MlnI1Wry57aKrsR3tI jVKQ5M1whRYe/7aUNlPl2RHcVOg 2020-04-20 10:29:51 193.38.51.238 443 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1660 +p reject 1-65535 +r ULayerManning q8QmiTtkK9oveNfK6ZslESb4n3Q EQFTxCI15P6M3KZU/J1jCszpW44 2020-04-20 04:17:37 107.189.11.159 443 80 +a [2605:6400:30:f8f0:b055:151e:5dcf:7ae4]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16700 +p reject 1-65535 +r Unnamed q9R5CTB3Pp8thVocPV1bS134CkY b4fMbc/H5uhTCnIgHhvkJuJ8T6I 2020-04-20 11:40:59 167.114.92.55 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9790 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r balafon q9tmQcd2Xsgaoa4oF9X/KM6y2ek ogapGuLoSbsmLIEADM6zTDVrvdc 2020-04-20 03:03:30 174.4.18.212 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14 +p reject 1-65535 +r ADEL q/VUxEyXgl9Gscne4UouK2ICXX4 EPB+4Qh9R5Ixc/x31cJz2YpV6as 2020-04-20 09:10:35 91.219.239.79 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=279 +p reject 1-65535 +r snap277 q/YaaGGOhQHXNV1hNZaMdbu8o6c 4SjYQISFejWlIYGUe+D9YG1usGw 2020-04-20 04:44:58 5.3.222.54 40461 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4100 +p reject 1-65535 +r OdyX q/lAVhqOUoVZdH0iN4R+G9gjzbg SgPm5KOO49QSQaUamEmj6CMNs8w 2020-04-20 01:16:45 178.83.171.83 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r DanaScully rACuuhriqAz0GExDYhV7+RSHuQI U4+y4zGt3odmz2kohobrmB2FST4 2020-04-20 06:10:32 109.238.11.6 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36000 +p reject 1-65535 +r snap277 rBQ/V+yjUysJAtWkepTMQ91nV2o 56G9MmzTv1W+5hTPIJo1oiTpKPY 2020-04-20 11:29:09 147.32.119.125 40835 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4150 +p reject 1-65535 +r notsorelay rCJ1gxYHqVzYuTnDuNxGbM9I4rk aRug/m4WdGTFn4m212ah/lhgHKw 2020-04-19 20:59:04 51.15.141.193 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28600 +p reject 1-65535 +r TheEmperorsLight rCSS3V6xhQYw3Re4GDTqWxunRnA E7VTOOPhCekP0R77YjH7zDD34RU 2020-04-20 09:00:23 84.248.192.178 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=51 +p reject 1-65535 +r torcz rCceczBaCdcrkCWii/eO3DM9yFI ziQP0c8YtyKcwd7dh0nkevExI4Y 2020-04-20 08:33:13 213.211.43.139 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29 +p reject 1-65535 +r lattera rCjVc8Fr0MfUKqcJdr82mEoeTeA oZlI40PJzw8eqFvlA6yoZhIWv4Q 2020-04-19 23:02:08 23.129.64.193 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p accept 1-65535 +r schokomilch rCvt0LrHKDjqfm8RP4VsToAYrNs LoCwlhCrioX/5+ZXTSqp2FGQJWY 2020-04-20 00:52:04 176.10.107.180 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23100 +p accept 53,80,443 +r doloop rERxNfBFHlhu02ILMDwDRjeIt50 8xxbeKQj2sRmEJBgTO6a7AdMuRw 2020-04-20 00:04:11 85.17.27.187 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12900 +p reject 1-65535 +r daporkchop rFzs72r2SfKn8EfRAv6bRh2pI04 IhK+cfAS5/sRjXwAQPxdpxhRWCI 2020-04-20 03:51:09 46.234.39.170 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32600 +p reject 1-65535 +r systemli rGAdvbf71TRUBF7cCNrjw4HIz4g PjOaeCd3B1qa3YrpgvEUhBDVKwU 2020-04-19 22:07:20 192.68.11.219 443 80 +a [2001:678:a40:7001::cccc]:9050 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r JustANode rGF4PrNnxVkfz1KrdtGRQVn4fQg s409Seb1msVzIz1AA9lkeTcpip0 2020-04-20 05:25:50 188.213.170.104 995 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1190 +p reject 1-65535 +r Unnamed rGY0frAuTGepvkbZAXbXugKdbhs BOH/3nnkd8IhpQKLBlU7ogmiDR0 2020-04-20 06:37:18 51.79.86.174 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 25 +r torpidsFRonline3 rGb/pKs1pZ679b9McACL8k2Kelw Me/nuiwGlv79l+FH+QmUYpgyPQ4 2020-04-20 08:06:04 195.154.164.243 443 80 +a [2001:bc8:399f:f000::1]:993 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31400 +p reject 1-65535 +r TWCUGRelayNode rGp4uue7yseYx60XRgFHIU+eoM0 qgjS2bCzz9nkepGa3u0ETdBhvLk 2020-04-20 07:59:27 192.99.220.114 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12300 +p reject 1-65535 +r ttnode rGxrzH+XCHf0At7ZoMq+Ui3fgfc KhZqXPRLuhFfVf/ABw7oeHZmCZE 2020-04-19 19:24:03 95.90.116.78 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=250 +p reject 1-65535 +r Unnamed rG6zMpVorLyb0crOhmhBavqm6MM mxYoohDVM6TLGiRoqPIRZmg4www 2020-04-20 04:23:53 37.113.137.158 9001 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r servicenode01 rHF6AbjjwA52F+9lEXpOmcAtx6A 0+6WyUNpQXMN2CbP80B4EQ9DzVQ 2020-04-19 23:54:31 84.209.141.235 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1730 +p accept 1-1024,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,3724,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9339,9418,9999-10000,11000-12000,15000-16000,19294,19638,29000-30000,34000-35000,45000-46000,53000-54000,59000-61000,62000-63000 +r aqualol rHW7DMPlyspaYZcuwpS59can7mE iCi44C0KZynxWKEMc3h6cbCiV2Y 2020-04-19 21:49:53 37.187.21.20 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r mitorip rHz4d7KBv+80cz4ULCpvZHrFfYI T7tguQS04fk7s6r4l/s2PlGiSGM 2020-04-19 22:37:12 83.33.172.92 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3640 +p reject 1-65535 +r privacy rKX6ujEfiy3JekYAla9Pmp6m1wA FDlNgd8hbrIz/Q+++db5RcMfI/8 2020-04-20 10:08:16 81.99.110.156 9001 0 +s Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 +p reject 1-65535 +r toris rK4qcACyvrCHBKqgot3K3WjlimM CMsSSmMDSTgTr/DqXk9nVLhiEqQ 2020-04-20 10:52:08 195.154.241.125 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p reject 1-65535 +r Planetclaire62 rLu0Js4dBkGlkL8fwc8FQW/A/28 eUUzuN4+rRlXSviaYHUU+uJsmUc 2020-04-20 06:53:31 91.143.88.4 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r rosalito rLyAkIwWdPX01vjNHqeiRYUeSSI 91tFxXasDDYRRGz0zjCunjZ2968 2020-04-20 08:56:44 109.236.86.82 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=700 +p reject 1-65535 +r snap277 rMSF+uXZ3gpMRbvDh3vyoHvvH7Y 4iuhetN8iLTJ2s2Xvbczdfd5VPw 2020-04-20 12:00:18 70.51.112.116 46808 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=564 +p reject 1-65535 +r smell rMSO/g38RvbUkw7FpxE4iPLqcHo ReyOCZCyfZkww66C1qrxJNaoLSo 2020-04-20 02:03:13 54.38.213.67 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2930 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r kulcosictor rMh0rW1NOsMIy2wERiChWaESMZY dLrw+x9gVM6jSEk4qIaWepwzohw 2020-04-20 01:20:52 193.190.168.53 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1230 +p reject 1-65535 +r citizen17 rMu7xXVDTzpxbvZIgiYYBW8VFGg PXiUOnQXx+H/tAZuCzr8hFEcq9w 2020-04-20 10:38:55 83.97.20.248 9001 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=744 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed rM4zyJUjBNEqEToWHe58jo0zBEA La1bd6KVlZSIJ/7KwfzTgS3AndU 2020-04-20 02:36:34 142.44.245.165 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=558 +p reject 1-65535 +r somerandomname rNm1obYaVnaZlYLKuan8ulTULkE 0tsi8x+u8H50xobvmG3Jj9/xlSk 2020-04-19 22:15:25 145.239.76.207 9001 9030 +a [2001:41d0:302:2200::396a]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5770 +p reject 1-65535 +r kramse rN2ehaBbEnugEEZsE8jEchLoo48 e/bXDAWlsePiXaITnkBcCsfLiyg 2020-04-20 07:47:01 185.129.62.62 9001 9030 +a [2a06:d380:0:3700::62]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11600 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r GibberfishInc rN3DNCgIDZBshjV2UdEtxJxGD0s PBzccoL2hs+qM9gE9B7aNdIPiM8 2020-04-20 11:50:18 51.15.49.134 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24100 +p accept 80,443,5222 +r StoneCat rOKex3AL0RLetCuTTl5ENHbNV3w ooOuPeSz+f5h8DOQBCR+ebOOd0s 2020-04-20 08:54:15 195.201.26.175 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49500 +p reject 1-65535 +r Unnamed rO4NADv9pYwcqcgEvLZcseLiL2Y F76CaHGj7McwBbxrNlk7Z3w3q2Y 2020-04-19 18:56:13 52.177.13.101 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4290 +p reject 1-65535 +r SwedishNSA rPFldUYBBZ7S5HL4k60PpMrxFC0 uZx9SJFSufzU3xhcjJcJNJh45pg 2020-04-20 11:35:22 78.69.250.241 9001 9030 +a [2001:2002:4e45:faf1::11]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19100 +p reject 1-65535 +r LasVegasNV1 rPONKnmkrkemzNgBHrtym/Zkgqs Q2EmIEQ8dekxdLpW/TCYUHDMRwA 2020-04-19 22:58:20 104.244.77.199 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14600 +p accept 23,43,53,79-81,88,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r toolazyforaname rPcUIq9BdLjxJ1G832sTvSLY4B8 AQnSJqNumElzlJ1LEmi3dbtsaho 2020-04-20 02:10:40 89.247.1.21 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7070 +p reject 1-65535 +r laukur3000 rPf9W3NoG8AbvoF2xj5GdbJ0ER0 8GwBFwHzl8CEUHhkWVx6KbK3JvA 2020-04-20 09:10:13 139.162.63.125 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=422 +p reject 1-65535 +r TorDiversity rPj8bBQDKgRbRPa5hSXuXARy3VA x0hBm/NLApaM2wo1/EwSHrVUtaE 2020-04-19 19:28:51 91.208.184.123 443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1990 +p reject 1-65535 +r torbogen rQ/P2D6kiZ2zRzXlmXAVkt6hNpA CyUVw6q6zPLom6GWC0IdrJFQyAs 2020-04-20 03:15:09 37.138.225.163 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17100 +p reject 1-65535 +r niftyguard46 rRNZuddNUm/vP1ivQRBcYjo6jBg eJ713eaPB8eBGfis7cNr7GL9f6k 2020-04-19 22:15:54 185.220.101.165 1165 2165 +a [2a0b:f4c2:1::164]:1165 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53500 +p reject 25 +r idideditheconfig rRR5htAz351GmEYmISqyUQ2WNNE mad5BrasXnH4hmninO5bc/c8ikc 2020-04-20 08:37:06 67.198.37.16 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=180 +p reject 1-65535 +r Unnamed rRfDc4vEpvLpIbjrrmYyPUnfn9g Dzc9R0qTVjX+Gp1/A526me9/xK4 2020-04-20 11:34:56 167.114.92.51 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16800 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r HomersRelay rRh8GdwVVSoQm90zQ7EkJmHfVwI MnurZPaZXiVSMiANTy6Uiexpa3g 2020-04-20 11:39:06 193.179.39.227 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5790 +p reject 1-65535 +r sputnik rRlJDH27JtOmjvyCT2fmmwqW5gE ol7O5N+TY3/HJ7O4GFGZuuFR1Zc 2020-04-20 01:13:37 188.40.128.246 9001 9030 +a [2a01:4f8:221:1ac1:dead:beef:7005:9001]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6340 +p reject 1-65535 +r waltw rR33P1UB9R++T5GuHajmrA+blvc 4SDX8vEUeof0eHoInzRr3nCyjAo 2020-04-19 22:52:19 71.126.173.14 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r nicknametor rR/Erod7L/6zyE8aa3bpsFeq704 Zb8wXGlabFo2vYIQy3VKlc35tzE 2020-04-19 23:10:17 88.198.112.25 9001 9030 +a [2a01:4f8:c0c:53fc::1]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p reject 1-65535 +r Schlangenbad rSnD2xZqXLHj+c6dq8yk3MCffNY Gcy3oeZTgX6FG5kk9QfGOGnyPTc 2020-04-20 00:14:08 91.55.5.76 80 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3790 +p reject 1-65535 +r snap277 rTIqOe/Ljp6aHeKcxaFoYQGE0dQ VP9/zlrEuA1CB4t9ol1OsAeGwYk 2020-04-20 10:35:27 63.131.177.85 37847 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=384 +p reject 1-65535 +r king rUF217LnigFFRGEXyCxxdaG9pEA ph1C7Z9zH46+Auh7zFjPjJojrJ4 2020-04-20 04:41:16 51.68.201.122 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r mothballs229 rVX32bEF57kh+xL/EGL+rTdtnsA t++4wpE9Js1zHe9T58FmI4jZ1d8 2020-04-19 23:16:21 67.163.129.15 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=98 +p accept 43,80,443,636,706,989-990,993,995,1043,2083,3690,5228,9001,9030,9418,10000,11371,19294,64738 +r Unnamed rWREwCgP+8UeCIsqfGi2P5EXytI kwuf2OyH3VMu2uT8ZH/V+zdCXoc 2020-04-20 02:09:29 134.19.89.160 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=118 +p reject 1-65535 +r isupporttorAy3RDw rXqhrVh7OK5lSME7jfYKyo3JTJw FrkH9tdRThxNEI73jU1PcT2wGBo 2020-04-20 12:15:02 195.154.118.198 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18600 +p reject 1-65535 +r iDiedEditingConfig rXwBHOAoAkn6BQU8GsjncOJCrfg EOGvFLjcBnMe+lqURn5EdRrHSMA 2020-04-20 00:34:11 45.20.67.1 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=818 +p reject 1-65535 +r AITUK rYZz1HA+Addo6ROC236ceVxoPCY wOgXpO3Kohowcy5MS5KQkkdxnL8 2020-04-20 12:23:11 92.111.4.177 9090 9040 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8 +p reject 1-65535 +r DigiGesTor1e2 rYbNGklXPVKntvSjV1DxYarYnIg GsCFSgR6TLX7avaLnE8AIYesRoo 2020-04-20 00:17:35 176.10.104.240 8443 8080 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34900 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r humboldt rZcOlSHmQ5Iq84EdqROBg3ld128 vXCyXVgkiPE6FHjtk45F1wHe6so 2020-04-19 20:02:55 185.132.133.32 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p reject 1-65535 +r Novok9 rahDAT7MMol5d4YJ6XJt5SbdtKQ ID1NkeneqfWTQPtEz54ogtUcBko 2020-04-20 03:49:12 89.249.133.165 418 64090 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=440 +p reject 1-65535 +r Digitalcourage3ip2 rbLCZilkPbufj+AJbn0W+UFLT40 HQHSOSixi9jfPgEDeh+/smnRLy4 2020-04-20 13:09:58 31.185.104.20 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r OoliidaiNgah rbOYt/WsLZNqgIB1hgf1zLS3jz4 zXKlF95fylJIerVxdVKQVIVat/E 2020-04-20 04:43:02 163.172.69.166 59001 59030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=860 +p reject 1-65535 +r Assange008fr rbmLJ9ej+1cyBo/SNgKhvLO+nzg 39Y0V/22cW6mikNR3i1IQtZDCJ4 2020-04-19 19:36:59 62.210.105.46 9001 9011 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r fiedlerRelay16 rb2kEtMzganyM2jJEJdVDiRSouw 2B1CHpvlKh+DAWVUdFgHSoYzdOI 2020-04-20 10:09:33 185.233.107.101 9030 0 +a [2a03:4000:24:82a::3]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5100 +p reject 1-65535 +r Unnamed rcToMtyKPZJC/6ZCSpm9VeuhQDs R6wzBcnHeQMxeaosdec1gLtZr1Y 2020-04-20 04:18:58 188.155.139.163 443 8080 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1970 +p reject 1-65535 +r eL5gMmiPbfmp rceT1TSuDjlHCWixAbMd54BPs8U Wpt2YxEBHmTjAg7aW1k35roP6v4 2020-04-19 18:58:14 147.175.187.143 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2950 +p reject 1-65535 +r fordmaddoxbrown rc3WgMDXJuYpEkTZ8hCDrvJ2P30 HX9urKGLfRy2N2YcxvASw1W/FZg 2020-04-19 23:56:05 54.37.17.8 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r BellecroixTooM rdNaIr931Wr8GM9Y5djiYEuJhc8 7D4bOprRy9gmZODv8GCc7djA6Zg 2020-04-19 19:22:09 82.64.126.152 9001 0 +a [2a01:e0a:1aa:7c20:e269:95ff:fed9:f969]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17300 +p reject 1-65535 +r angeltest20 rearK/vXpXgLMh3DO7rM0Nd3yU0 Zx3koZRyDigqdVnCdsc4exLfkIU 2020-04-19 19:56:02 178.17.170.103 443 9030 +a [2a00:1dc0:caff:f1::2ae9]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r snap277 rgOkS+F0Of/dWjUYLOV6ryTGcmw 3DM8dpwmxmNI4rHtNvfcqs5JSw4 2020-04-20 08:56:22 90.107.246.76 36587 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r Geoff rgjRWTUiN4RMYOAVOshXgyCSL7g mWSwDBNQ07MXSUTQr/7QRB3HB94 2020-04-20 08:15:46 178.254.35.99 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8700 +p reject 1-65535 +r amisraelchai rgmueX62WOOrOExrYEbrXi+w8VQ REcO+m3GixeK15BSWuM5KwvI8fs 2020-04-19 21:53:58 92.219.47.98 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=260 +p reject 1-65535 +r qjwniwqedqjd rhCvFr/NArPMaLCrpB+t3BxyhmE WbwdHM9ONtvpbRhJ+2VVzXBdXBU 2020-04-19 23:46:01 51.158.160.121 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19500 +p reject 1-65535 +r Unnamed rhDVgei+gnX+F/zutRe3HFUwhx4 gv61E++yNnormbnenYb/3YGGj5Q 2020-04-19 19:17:17 192.241.180.163 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=41 +p reject 1-65535 +r Belgarath4TOR2 rhM3BpwWvYQ7Z2cyiRnDNJdwRZ0 qNpP/U9t4fSAbMGOmj5cDerbIcE 2020-04-19 19:54:17 83.253.14.119 9002 55555 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6630 +p reject 1-65535 +r Cheese1 rhf6r48wKlBq8hZ2ZuxiiCgEQD8 11VtmaSm3IpRKT2f/EIBtE19gro 2020-04-20 04:11:15 185.21.216.198 36711 45791 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=63000 +p reject 1-65535 +r bigdaddyny3 riNlaO0BUnhQ+g1b77v2xr2kevA /gbmE2VlWV5CwpshrwYZsy8vvo4 2020-04-20 07:01:40 74.111.25.177 9002 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17300 +p reject 1-65535 +r SIGINT rirJvO9XOjGyBVVgvZK75O+SI+M zdUyamUpO1Ra2rHb6gkUF5Jchs0 2020-04-20 12:32:26 104.149.128.94 9001 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=870 +p reject 1-65535 +r UWashingtonCSE rjHg+/DT4bOfHdj1W8Bw0Rr1JLA +vOqLGPskl0Eb8gt2qRu3cGS4U4 2020-04-20 05:43:14 128.208.2.233 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9630 +p reject 1-65535 +r Assange005nl rjw7cWW5EuGqXsTxd8qOTafI7Bg WQngktmNLio2Lp02LSDsCXoAEjo 2020-04-19 20:37:38 51.15.0.170 9001 9011 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r 0xdeadbad rk+uLrXcXQeEWPD8vys39dc/CGg 0FgwH3M4NIDoPAKFN8eGK/MysE4 2020-04-19 21:03:49 95.216.198.252 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7070 +p reject 1-65535 +r Doedel21 rmqMGOdJm1hs02JGrEvK/7v5OrI L90ImDTONACOCd4kQnQSR19SQsg 2020-04-20 05:03:11 91.143.88.62 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13600 +p reject 1-65535 +r glxbltrelay rn72uulqgt8uPG4GjZppfYeBTGc FunWRnEE9oMG8ZJZs/mwSBlpvWo 2020-04-19 19:08:17 45.15.16.134 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53 +p reject 1-65535 +r ElectricWizzard roTSmTWhnkngJwIk4hDk8EE0p+g PKmvrnWa5m7PVM/fwRlRcDXCGDo 2020-04-19 22:01:13 188.68.38.54 9001 9030 +a [2a03:4000:13:228::f00]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5690 +p reject 1-65535 +r BorichL rpN3x1zoIug58V90yfNG5o19tIg pBPABW53yojEX447m8nJG9kqZDU 2020-04-20 05:25:39 5.19.184.37 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1000 +p reject 1-65535 +r Unnamed rpSZwIAoqn3ingthkwSIrEUIgqE w9uOQUs0AJswDf/aP695VUHxVIQ 2020-04-20 00:11:04 40.86.166.197 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1680 +p reject 1-65535 +r Unnamed rpW9o3pbtGhf67fwZknWzpSbUxY sBeCAeyEJPnHC7ap0jynu6cXlPw 2020-04-20 05:16:59 176.31.229.76 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=93800 +p reject 1-65535 +r useallmybantha rptPOxM89Px1vQaF8EfqQlPEmwk +wI1hLpNmUhFwym54990TMe8r50 2020-04-20 08:05:02 108.56.137.15 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21800 +p reject 1-65535 +r Nepal3 rp1zWafDsyxB3r0jyO5G+3Q9RoE m2nC+QfDzLdDoNGNQ7m7yxSum78 2020-04-20 03:16:28 209.141.62.163 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3970 +p accept 20-22,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r troisi rqjDNm4Pot5WDmbDt6RsUJz/mJA 2zDVQPbhlzf9Jga5XSk8fQWF4Eo 2020-04-20 12:22:49 46.21.147.19 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5400 +p reject 1-65535 +r Unnamed rrHApnEgKB6QtPLBPHLYtwPXfao HLoFp8OGRkou3OFgjxevj2MiMEI 2020-04-19 20:11:47 158.69.92.127 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=10300 +p reject 1-65535 +r 72b6c10e00202aa28 rrHnGXqBBObf7p2p05frrUHSN9k 15QLkqpXD9caW1yc6SqW7KGVXx8 2020-04-20 02:52:26 136.144.215.180 443 0 +a [2a01:7c8:d002:267::1]:443 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=610 +p reject 1-65535 +r ACAbeehive rsikLej5yxFeJHnXiuHKS8z1T0o ZvRsWz/zjiyKEoMLIIIKXQKUr44 2020-04-20 06:42:55 94.156.77.24 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2710 +p reject 1-65535 +r scaledtornode rs8eeMsRatcQXIix8I2/14PlhLI FNmSgcTkqy/aVGc9uQAKsUB2WXk 2020-04-19 21:06:55 163.172.129.204 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=32200 +p reject 1-65535 +r HyunJin rs8jQT4Sc4OAx7YeCvUSbUffMOM elwhB2R2+6Tvd507T65mZMbBPp4 2020-04-20 12:42:19 223.25.69.206 9002 9031 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=814 +p reject 1-65535 +r TotorBE3 rtBMZdLQ1w2yky19WgulgWkWjME Z1dEtdbOPs7CL6PIu6Zib76l5u8 2020-04-20 09:15:43 137.74.32.27 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r 1torexit rtSmmDZjCjN1hFAGtarQO/o/ltw y/wtegN3NZR9e1CsxFb1FdoQDiQ 2020-04-20 11:22:50 31.131.4.171 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5300 +p reject 1-65535 +r maggo rtaE4UFi/VDZ1Rg9Bix6iVE5H2M eHrwUOKt8Ec9puEdYw2VRu0yqUc 2020-04-19 21:38:11 78.46.253.198 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=759 +p reject 1-65535 +r linss rtrHCBrhS40kHs8P8XooWKtDg9A os0YQjnfHK7oUSMXLMdg/gsLbiA 2020-04-19 21:23:41 45.79.108.130 9001 9030 +a [2600:3c01:e000:131::8000:0]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1000 +p reject 1-65535 +r VSIFsalyut4 rt5AO9C3zhFPWzv10zsVxrkAG8I 3SimGZcEwG5q5MbGLj+rvtXjhL0 2020-04-20 06:01:48 104.218.63.74 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5700 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r phillwtorrelay rvbB+6D8FvSTFji/BlCFuXTT6Q8 4YAVqIFfupZPZ1rQAO6cEpXf28c 2020-04-20 02:12:17 51.77.251.192 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33000 +p reject 1-65535 +r niftyguard60 rwIvNRpLbyUUoJ+SRfn/WspylzU Hlbjk5XMGYkvO55spJ1i/BISx4s 2020-04-19 22:16:40 185.220.101.179 1179 2179 +a [2a0b:f4c2:1::179]:1179 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28400 +p reject 25 +r 43d3f507fd4f rxAeGpLGABZvECpcmczO9h0GVkM GszpUqHxG6Eop91BGjcbhZV0Wz4 2020-04-20 08:24:14 51.81.253.198 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15300 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r mox134tor rxArKQI1ySdM8ogHhSoZkKg4oYg GOGDA9ga7BNypTrd83Xv14tgdT0 2020-04-20 09:39:55 86.56.188.66 9013 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1120 +p reject 1-65535 +r ballers2 rxwC1r+YJ7uVbwnEVMKLQxse/+c l2v+qOmrzY1FTcMEcGP2fSjafaQ 2020-04-20 07:08:20 104.57.231.26 80 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11300 +p reject 1-65535 +r duchin rx8VgZrHZtZQiisF2piematRH58 HvCEyo9rrgyvyDVPRmzmIqzsdKw 2020-04-20 08:37:41 91.203.5.165 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1690 +p accept 43,53,79,81,88,110,143,194,220,464-465,543-544,563,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r 1337EliteH4xx0r rx/HBKUkPMDwijNTQ9GKfZ/Ycd4 9VoRCNnCZ9H64HE0PvIO+sUqt/o 2020-04-20 11:56:30 144.91.121.230 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21100 +p reject 1-65535 +r ArturoIT ryx6EdPD938sLBU2CO7JOPpDLbo NctfP5RMz+ecDJzjyYhvbOWXP1c 2020-04-20 01:37:49 83.136.106.153 443 80 +a [2a02:29e0:2:6:1:1:1156:b142]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14600 +p accept 5222-5223,6660-6669,6679,6697,8082,8332-8333,9999,11371,50002,64738 +r Access ry0hz/LpEPVdK33OE4LB+1si0OU qlS80cI/6LXC8l4Z28yFIiD2wRU 2020-04-19 23:49:56 173.199.70.185 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18700 +p accept 23,43,53,79,88,110,143,194,220,389,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ramstor1 r0dTWVAKEbSOEVYcsoKVXfeqFdA wWlS4g/ZSdS0dbAeA18nqEprVi0 2020-04-20 05:56:41 95.154.25.167 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2090 +p reject 1-65535 +r DuckYou r0mXc44M/AFM0E+wmmcNLF8eeaQ 7vSW6dTGG08BpJIXLV5umRWqJEY 2020-04-19 19:13:25 185.191.204.254 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1430 +p accept 20-21,43,53,79,88,194,389,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r luk4 r1ERa3L/8ngGGEusffYVZKt+XJ8 T4/hMd2JRruOlV9SeWihTsgeuJQ 2020-04-19 23:08:16 2.229.201.197 6080 6443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3360 +p reject 1-65535 +r astrave r2ZfbUwzey485n2aIwtbep52cbw 48xjOLo4goP8LAtPFoD5+9tW+4k 2020-04-19 12:53:36 88.87.93.94 9001 9030 +s Exit Running StaleDesc V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p accept 20-23,43,53,79-81,88,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r artikel5ev10 r3CUtihk3pQdzYii8Nuv7POZfkc Q/KNUy0X82fCoe2cptQxEuV3baU 2020-04-19 20:42:11 185.170.114.25 443 9030 +a [2a03:4000:15:928:dead:beef:ca1f:1337]:443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p accept 22,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r NeulandSchlandnet1 r3Okj7nwtLq0L9KMvUvEs0jofzw O6ZgYtD6O13gc1R4/h+vSsEqyxE 2020-04-20 11:07:20 93.229.224.131 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=110 +p reject 1-65535 +r ufm r3eqW9kkMZUQ+ZswzQky0ysBtcU PPHlAHXL5mKODwqFzzBJ3N+4dTw 2020-04-19 19:29:52 193.111.115.210 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9600 +p reject 1-65535 +r karen r4CCpYxqaly3cgnATFn6wO9+WYY jSoBpS1hQtAoAfSXn3o0OlcJk/o 2020-04-19 19:53:42 83.226.146.217 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2820 +p reject 1-65535 +r schokokuchen r6DCT2NcPhmKFR0Jp5ZDDwd4umU j/ei8+/C/g7Rv6NyJRnxE4ojr7Q 2020-04-20 02:19:19 94.130.57.50 9001 9030 +a [2a01:4f8:c0c:7401:34ea:ef91:6664:bbe3]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4040 +p reject 1-65535 +r cGbu7BKzxg7hB2m r6nluNd7c2zKd3BLRl+fpLlWaSQ LQDM3IdVf+Bc6OoPZQcklJIpq/M 2020-04-20 09:10:38 51.15.60.93 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6450 +p reject 1-65535 +r snap277 r7jtf0NDG2SxRfEcP/jUeyGLp1U ORIfMuwhFDRYragm6sbAHb72yQM 2020-04-20 07:39:30 2.233.122.59 41678 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2060 +p reject 1-65535 +r orwell2 r8aazUfky9XPjqR/m1YiyRvy2mA raeb9rmwi3Kd5L5j/8awjVIb8Jk 2020-04-20 12:18:50 185.112.146.179 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8220 +p reject 1-65535 +r d9962b697a0e r9ZtV4JR/6Oep9QH2AdyMRIlFrg q/KX7jqJsvJaps0kFJDOMZr9Qq8 2020-04-20 08:07:26 51.81.254.18 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r thicantor1 r9hITw2E+V6qEdYtgidn/mOBqV0 0kcuiwTDmYMwhe7YrrXtRlzDjzs 2020-04-20 03:46:04 188.165.6.66 9001 0 +a [2001:41d0:2:c513:0:dead:beaf:cafe]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1450 +p reject 1-65535 +r ImOldGreg r+13CulR3qDOM8H7FGPcMYjLot0 CB4o21/OoUnBk02sDwBhYcQhzuw 2020-04-20 06:05:12 158.69.0.246 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=193 +p reject 1-65535 +r Wix r/L8XG95O24Ufrk8GJfW3aSeVP0 wm9jOJUfcP+AI6A75+f/i9iwKKA 2020-04-20 02:20:25 95.211.230.211 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=130000 +p reject 22,25,109-110,119,143,465,563,587,2710,6881-6889,6969-6970,55000 +r Unnamed r/MgupbkM4thoAjSyiUP/g4jsJw oSmcWkfM0k6Go9377rtYBduryuw 2020-04-20 10:03:45 85.144.240.161 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=81100 +p reject 1-65535 +r freeUA98 r/SZrwcaLeLq3CK2e0isyR7u85Q AUrM+1jAcVgi7MzMDVlRQuKikeo 2020-04-20 08:14:53 46.161.40.101 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10000 +p reject 1-65535 +r sulaweyosrelay r/j01Y4qX+rSjR7Uo4+41g5AajM XSbL9YIY+MS34DPhDU7uT23SDE8 2020-04-19 23:10:57 90.146.90.65 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1710 +p reject 1-65535 +r ph3x r/qFgg1nlr7N2B4tqIsNumlieOM 0r+DoPjs1XLY/2nvMwvLrBBKPJ0 2020-04-20 11:18:36 86.59.119.88 443 80 +a [2001:858:2:30:86:59:119:88]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4800 +p reject 1-65535 +r Yahta4ee r/0UfbzAZaXO9yWLwTZ8w1hVpDE 9aKT5eHoG0NY4KF1gcgyBQreLQU 2020-04-20 02:22:29 5.9.156.17 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10900 +p reject 1-65535 +r FlappyBird sAR4xM0vOsx9bwKvgDPSkGZzZR8 wyf42/MCdLww8X5wbqTgWk1oYRM 2020-04-20 04:47:23 176.53.90.26 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9570 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r MyTorNode sAtrqUNgBEfPctWNt6NbFnVOQ8g HDC/VvHc2aEwy4W0Q48rj0gcjsQ 2020-04-20 06:57:51 193.108.117.59 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=45100 +p reject 1-65535 +r EleventhThesis sBs0Ml9T40SsLV0et4qhrHP8hoM J/M0M1aG+h9jf6vHkcyUJdyKIWw 2020-04-20 00:06:44 5.188.108.69 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4290 +p reject 1-65535 +r BaerchenWiese2025 sBvwkkTGtzaHu3gcWpyegSl00IY F3cGFrk5K84fM+i3UO3CLoIbMnw 2020-04-19 22:55:11 79.196.251.70 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1590 +p reject 1-65535 +r QuintexAirVPN9 sChweWnY7YTm3qWXqIT3iq1HGXE IF7mOFid/ya3kZ2Y9k7CdDAbWvM 2020-04-20 04:21:39 199.249.230.123 443 80 +a [2620:7:6001::123]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15800 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Unnamed sC038FW8zvqPT6BV0Ns/W4infto iMFtWI4OBY+seffY3fOLj+gsNdY 2020-04-20 09:58:29 163.172.218.70 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=800 +p reject 1-65535 +r Unnamed sEMNIdZglFnRQQeMDXdYtcp1O28 QSRfbE111shb6OyMVeQA4gQTruY 2020-04-20 06:34:10 51.77.135.89 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37900 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r schlenck sE6itADZZ55yKE4S+4Hmh1ZnCjo HGXNy6v3VwTZ+DDywx/upI285Hc 2020-04-20 08:46:59 217.112.131.7 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7680 +p accept 20-23,43,53,79,88,110,143,194,220,389,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed sFTttWaCbf4VKcGNmfP0bhbL6Pc 3kFBXl2r8O/dj5WwJBGfHRc8RZQ 2020-04-19 18:51:54 178.195.94.134 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=529 +p reject 1-65535 +r zwiubel sFUxdarbBQHlph/GHOo5cL4TD/I iYYJinTnhrUi+DWHm1pGFQJwexQ 2020-04-20 04:31:22 159.69.186.168 9001 9030 +a [2a01:4f8:c010:1aa0::1]:9001 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r coen sFtLtk/+U3Pik9LACHmPupyQi7E G0fA4pzbwfNNUl+fRdNw01s4suw 2020-04-19 20:37:43 77.55.220.84 8888 0 +a [2001:470:71:6c::1]:8888 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4080 +p reject 1-65535 +r myrelay sGpLvsJ2xQOP5EpItkqdw7YYqK8 gLz+mjYuvNEfpxw+oaoUZpVhD8I 2020-04-20 04:44:00 34.92.120.119 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=470 +p reject 1-65535 +r TorExitMoldova sG8JOj1N+tPpI/TyinSQG9T3TrE eoZruw4ul4B4GUJS9+6oDtIN8b4 2020-04-20 01:16:11 178.17.174.14 9001 9030 +a [2a00:1dc0:caff:8b::5b9a]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8300 +p reject 22,25,135-139,445,465,563,587,1214,4661-4666,6346-6429,6699,6881-6999 +r m4dn37TorRelay001 sHKU4c6/jwwt4JjtPdghlCnYFL8 fRnQqMIfDHQuKl6wNQFUgLxUhis 2020-04-20 10:45:27 89.152.122.26 4443 4444 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17 +p reject 1-65535 +r ireadconf sH/M+sYTGVP+hSN4e0oZDRbfZoE YhKHhIsqbl1xjzpgs3roxOABou8 2020-04-20 11:27:42 88.198.207.222 9001 9030 +a [2a01:4f8:200:63af::222]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r Geoff3 sIHKWOubu+vb9+BLYw9iXSAC9AE jDKSB4UaZn9lEljxhieHJXnlbYE 2020-04-19 20:47:54 178.254.9.25 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7900 +p reject 1-65535 +r ididnteditheconfig sJ4jwllyNPbrSUtu3XM022QiH6E g87az42ARKRWirAqSd3RSPEzBtA 2020-04-20 02:10:45 94.130.187.145 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7300 +p reject 1-65535 +r brotherhood sKY7w/2menrdG+CLqoMJxLIE0ps DPPN6sQsak08sUuHicPHm5U6fKM 2020-04-19 23:33:31 51.68.170.74 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15100 +p reject 1-65535 +r Unnamed sK5h9qQ0fyKKQBLd5qd5M/e1+eI NhCz7z/jedDHDfRqdQtWpyM9PVY 2020-04-19 20:07:44 167.114.89.197 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10200 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Intorr sMaN3UJlyFDcCM3gEVQCXp6+wU8 TlUAOMqyTDcdF+yHNJWITY3m5Ug 2020-04-20 09:25:38 79.172.28.205 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2180 +p reject 1-65535 +r QuintexColinNSarah sM2fm1tgZRrcWRnA8eqofbodkkk e/nGhEi/0d3LZHjiAwXK4QDGwPc 2020-04-20 10:35:53 199.249.230.111 443 80 +a [2620:7:6001::111]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13400 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r PIAjpnexit sNoHxx2OUGbCw5HqljJgtPWE2Ew Qvs3q5bTzTRX6j9AfgWyTXA8wpo 2020-04-19 22:21:56 103.208.220.226 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2300 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r AccessNow005 sN1Se+AYQtRgMCZfvZkoIXpwnyg nKBoejd3EX/YVomC+QuwzuMjbcU 2020-04-20 10:32:15 176.10.99.205 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30300 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r TerminaTOR sOWun9O6NJmPJZVHg0P0Y3R+nwU MGjR5rAn6Zokx1qX6sT4VHCQJUg 2020-04-20 07:01:38 198.27.64.51 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r ididntedittheconfig sPF6VvqGhsyzPT8wL8QPBvRjtK4 NfunK6HzrmYqy8oSlUjh10NT1pw 2020-04-19 22:10:25 142.93.169.197 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11000 +p reject 1-65535 +r root1Moh sPR5p3FOQw+v+jAHFiQ11qPB+mg 6OmuufY4BIONGpa3Als/qf1kpgM 2020-04-19 20:27:32 217.85.9.180 9101 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=127 +p reject 1-65535 +r copper sQQUI3ec2+gFysvY5y76N6pHu60 da1lhGJJPAyOPJkZLLzfjsaWgL8 2020-04-20 10:39:13 179.43.167.228 9020 8020 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r broccoli sQReEvpOoNRXp0AThmy0HcDSkL8 KXI8pRc4FgWYkVjZ/NaRNJ6XG34 2020-04-20 07:17:52 109.70.100.16 443 80 +a [2a03:e600:100::10]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=93000 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r courage sQgOphyvV2MTnntZbzf+mDAxHI8 gfhQiZOoKim0f+vzqKrguPx8XWY 2020-04-20 06:19:16 94.16.123.169 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15000 +p reject 1-65535 +r Unnamed sQ/S30j1FQUzrW8Ds91YN2U3piY z/jKqZ/vMoY+BVMc5hAYnYvmSZg 2020-04-20 11:59:29 209.141.52.58 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2180 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r laterings sRh1UXSwmibmwb0Z3VkUNSrLRUY klVJae1jDK60NmomS7irp4SbKDU 2020-04-19 21:49:25 167.179.119.159 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=149 +p reject 1-65535 +r smell sRityhPUBa1CkqCbURMZmjOai9w bAY2SeaKz7F915I/w0tCMX2Ng6w 2020-04-20 01:29:06 205.185.114.250 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4900 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r sudoscientist sRkrG6060KFa/In+uyOswFkwtOM GXY5JanXI2uf2BfMIn659vrzSbw 2020-04-19 21:20:04 108.21.216.110 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r Unnamed sTCJK5tOIKGGjCfQLxPR/gL8zN0 2SwFXgzFnzp3xFzF5aXOc5BkRs4 2020-04-19 19:55:39 186.120.250.217 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=207 +p reject 1-65535 +r Nika sTXdugwwlkDYMRV1ozQVfqKOP68 Hu7LgYbOWWzm78p0O3KhJr4h0rk 2020-04-20 08:31:44 104.244.78.231 9001 9030 +a [2605:6400:30:f881::1]:9001 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21500 +p reject 25,465,587 +r porte sTwsVp8/0MUwt9luX/eTPfeg6DQ +4KUdm2Is8sM0vZtpztczsPgxYU 2020-04-20 08:29:48 85.208.144.164 443 9030 +a [2a09:8740:1:44::164]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33100 +p reject 1-65535 +r wardsback sUPUObctI5pBn43OB7io6xtIb6c o2X6gDw2v3UB07ZJ6PYC4EarNlM 2020-04-19 23:42:58 212.129.62.232 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=52000 +p reject 1-65535 +r Unnamed sUedEg0Beuotogk8UlLoITBdQAI koc0nnAzQDENcOa7CfLrSPjEEKg 2020-04-20 10:03:04 78.46.203.18 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=972 +p reject 1-65535 +r t0pch33s3 sUkGRhHcRmQF4YJZVvNrIC3Obko 6cZE45zAXMUXPwsclKGAXdoqoAw 2020-04-20 04:44:35 107.150.36.162 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24800 +p reject 1-65535 +r cytherea sVwAcer1CKruKdudB2B8hKot3rM AAq9RzboWYJTGtTyZpgtS7ui38I 2020-04-20 04:56:11 141.105.67.58 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9410 +p reject 1-65535 +r tosk sYOmlZLS6MjEh8BU0ISePJVh3BE 98u4pQEc8ayp8XFn2HMq80E+AoY 2020-04-20 04:13:41 46.23.83.35 443 0 +a [2a03:6000:1831::35]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1870 +p reject 1-65535 +r Tiger sYXIkSybi52NpprgfR1qLCWmYoA 5J4t0LdGBr078AzhfSdACZ8RJm4 2020-04-20 08:38:11 178.17.171.54 443 80 +a [2a00:1dc0:caff:b9::3be9]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11600 +p accept 20-22,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r snap277 sYXMA+Pz372ws3QxmkDwbbyui3k 3XaszRi5eMtCchZsouNCyezNaW8 2020-04-20 08:04:22 181.14.189.236 36809 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r LunaR sYc5nicIFVloqDdbgwQnZ/afIfA SiibeiF4xkQMC0Lic0pbbLpqfqQ 2020-04-20 10:52:15 81.17.16.146 9001 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22300 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Bazinga sZjAtLjFUfF0+7hBoXJhbj2zEk0 3FnJOnojBKnjeHBb69pKhzjYpUw 2020-04-19 19:19:51 93.180.157.154 9001 9030 +a [2a00:1158:3::2ae]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16600 +p reject 1-65535 +r SecureHSC saoEsPc6bO3/r4PJwehQ3NEwfnA PTto1P5Yx1sNUtEvs4ghl01f9/A 2020-04-20 02:54:30 74.207.242.7 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=950 +p reject 1-65535 +r doggerel sb5XEmVnHWlLCb5lGsMI6fatMwM /wJDW2DdAkPiz6ZKFlFbyLZuFVM 2020-04-20 07:29:22 95.172.235.74 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=70 +p reject 1-65535 +r BobsHouseRO04 sb8om5ZXYNF7NQjj5I/13IFU+3A X+d6M3UNX5CW2OnnXC/sNvpviEo 2020-04-19 19:10:06 45.14.148.96 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9700 +p reject 22,25,109-110,119,143,465,563,587,2710,6881-6889,6969-6970,55000 +r snap277 sc7kIMDPO05CrqqZIFVwzY97URc ENPGDFpxjjZNQm2Fb1cm1gXjLQ0 2020-04-20 05:09:26 109.115.94.193 39441 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=643 +p reject 1-65535 +r martyr sdZTcvhtwsprXRuNQmeE+hMSG+0 9M1DQjj9MImawFeNdVmwQhGguLQ 2020-04-20 00:28:09 51.158.109.217 443 9030 +a [2001:bc8:4400:2400::1811]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30500 +p reject 1-65535 +r bigbrother23470 seK7LAj879CJVQ9xBOmgwWAyU20 tVUI5Xncj8VrANEpJ2xZ4um/pNw 2020-04-20 07:15:54 75.142.113.210 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=190 +p reject 1-65535 +r layersofprivacy seQ7EalVy6MfUmGiLL/OIEyV1d4 XGWbH9ZYcDrYnk0NjP+/vC2sBTw 2020-04-19 19:24:01 104.244.75.16 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14500 +p reject 1-65535 +r C3WPhantomStreak sfCYEMT3udMPSD3OOJGAM11Alow +koxD8uGqWWan/xj6/djY9Dmldc 2020-04-20 11:28:57 45.84.253.28 993 143 +a [2a00:11c0:66:1:45:84:253:28]:993 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=202 +p reject 1-65535 +r niftyentry107 sgAtXHWg+tjzOWJhRxjzXLZyzFc 184+cd7TK5L42T0BMdN17XuM9xU 2020-04-19 20:25:52 185.220.101.107 10107 20107 +a [2a0b:f4c2::107]:10107 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21900 +p reject 1-65535 +r cry sgTedbNwZO9qTGuvlVxXJFeNCzI EQpJlDh5Kkb8Ktl5yBpg8GqcJO4 2020-04-20 11:48:10 192.42.115.101 9003 8080 +a [2001:610:510:115:192:42:115:101]:9003 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26700 +p reject 1-65535 +r snap277 sgeCX4YGxyOLBABvxCRQPcguLR4 AgwDWY8k1J8a5ZiOdGA1Iy5frt8 2020-04-20 03:04:14 78.194.82.26 41969 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=781 +p reject 1-65535 +r eskel sg8ImpSQLrQ/d2JtT00XrIiLihk Hxt5mnSH4ow1LvTVIxUiBePJHFo 2020-04-20 10:51:06 77.55.210.111 8888 0 +a [2001:470:71:281::feed]:8888 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p reject 1-65535 +r sakura sg+mwbKw91SOyENKRvNhFwDAV70 aFrZOOcDBjAmixFmLXCMobCgk9o 2020-04-20 00:47:25 49.212.166.38 9090 0 +s Fast Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=94 +p reject 1-65535 +r digineo3 shIRoaLGjy2eV+PHrq9PBK/BDn8 NzbicuHCRYBPuwq692hsFW3SzGE 2020-04-20 00:19:59 185.117.215.9 443 80 +a [2a06:8781::9]:443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=25000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed shMKov2EB3elBFoIgwYLU8Hj+cw Jl9+Ws4weA9AtvzGGzODAxWFLgo 2020-04-20 10:59:54 31.18.177.147 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3780 +p reject 1-65535 +r daddycool shTHaMiLsI8Be+MMu2A5OfPdpmE +zTqxfvyKbtKiR+PA/R4SCs6hog 2020-04-20 03:10:57 54.39.148.129 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6800 +p reject 1-65535 +r Quintex41 shl8I6T/XRxJ7kW6doi6i8zYmgs v5KrPmqg6HcZwMB8kGbONyeMM40 2020-04-20 06:45:16 199.249.230.64 443 80 +a [2620:7:6001::ffff:c759:e640]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13500 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r DaphneCaruana siFp3bk25M9LjIHpUUvQVlhGaXQ j91wWaH2+Y+GRvo6sn8Pf7QnOnE 2020-04-19 22:11:57 51.89.23.74 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16900 +p accept 20-21,23,43,53,80-81,88,220,389,443 +r Perceval siIocX4+oPusXeksIF+FqdaOXXA WQ6mfYZvp6FG88h3oCe5JoTMrgE 2020-04-20 02:15:31 139.99.98.191 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1630 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Unnamed sipW2K5JSiDKDrhFfzysVPyZrM4 8Cy0l0+ADZavIXpjpVDSGxYGjfQ 2020-04-20 10:00:01 81.83.37.138 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=671 +p reject 1-65535 +r Unnamed sjB8RNiASSEvOBwYltK55sQJPps nFFRBqhUGP/e4ogteqbTB+BxuKI 2020-04-19 18:53:13 167.114.89.203 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7520 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Labitat sjgHBMU5R7HXLny802HnOQHvdEQ vkYLzpVW3wHOcKg9Lz/C24VgXGQ 2020-04-19 23:11:06 185.38.175.71 443 80 +a [2a01:4262:1ab:20::71]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r DefinitelyNotTheFBI slQnqPSkheA+2jF1erHDPb5YdCg jWv0ZxrXvArUQfg2TEi9GRQ8KyY 2020-04-20 02:03:13 195.154.28.200 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=85100 +p reject 1-65535 +r TheBaconaTOR snEVogsF1AcwpAIBRe+mM4HZ1Rs 9rzNTqFlPawaMykCHJNLDuXCwzk 2020-04-20 05:07:31 38.68.135.5 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r Unnamed snQdNfD9rOAzUNvs2L6KhP77M9w ann+zeNscp+Ey6H0mp2Oef+MbAA 2020-04-20 04:42:44 142.44.139.12 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21300 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r HoneypotGuarantee snVDOMz2/yxhGiy6XAkIY+ZdziU ftu/e5QOkaChEV7640CnL97J1zw 2020-04-20 00:40:52 107.182.233.54 21664 13394 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=75 +p accept 1-65535 +r radieschen snzx3O7NUPeZKwfXINf2vw7fnUA RTTQAeeE8BYNgg+Y5IRo3yZIrbQ 2020-04-20 12:18:26 109.70.100.2 443 80 +a [2a03:e600:100::2]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=84500 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r Kashkala soAFT0aBY0MiHiB+1R2KNsUMOko kS8NJQmR+KuqeC9Xb5z5KXCL9RY 2020-04-20 01:32:56 207.148.77.208 443 80 +s Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r IPOVERIP sozLYM3fWqZl1c0MO/S7D8Y+sk4 ENHUn6k8mThaD5Me1QTafGn8cTI 2020-04-19 20:46:49 178.17.170.165 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17400 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r TorKIT spHTBRfSMpmtfO4+YN/mDQ46RmQ NRRuWtrCXMaMeTHVZL66RCui6w8 2020-04-20 11:57:53 136.243.214.137 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20200 +p reject 1-65535 +r Unnamed spY2rUyzk7m2sjuCDJmgUBeyqBA 7Tp1DcQWgX4h0pN5C7ymYygf9Hc 2020-04-19 21:14:48 46.4.176.48 44945 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39 +p reject 1-65535 +r king srlXF49taHeWWyDvtLsVEzvZPjw jeeL2Z8OTnwR0dmZgqRZbjjcyc0 2020-04-20 04:48:34 51.68.201.117 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22400 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r noisyfirst srmvurNy0ei9bFchXau/EDAWPGU GeLiGUIwyhYw5XjHP5kqpxc9eeI 2020-04-19 18:54:08 85.146.6.52 9002 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r Unnamed ssueXIA2fJAmqAbsSAHiJCWqfoo w7HSb2g9S+SA/2ymIzZjCz5taAU 2020-04-20 00:25:11 5.39.80.135 9001 9030 +a [2001:41d0:8:9287::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5840 +p reject 1-65535 +r Unnamed stA830XrTXSmX6xPAOunhclmOl8 EvuFQSCAUTe89Rlpn4ZnvObQ3Bk 2020-04-19 21:37:34 85.194.238.131 8000 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4210 +p accept 53,8082,8332-8333,9333,18080,50002 +r nortor4 stB+q7jwcf8plHt4higd8eJVuto hsb96XelwOIq9GJmadZTjli71PQ 2020-04-19 19:28:12 217.170.206.146 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17500 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ChrisSellsYourData styMxVeaP4USHBq0psOqOLWw3D4 qj7jgoHMn0TEsFmN4Nk8hz1IGbQ 2020-04-19 22:59:22 23.129.64.196 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9100 +p accept 1-65535 +r BraveCalakmulII suDzOxp+cPIXRMPsN7R1+OwHEuI L5v3JyyxgNAbXEKotAZQ0Dufa0s 2020-04-20 04:34:06 65.49.20.11 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r yesidideditheconfig su3WB+epTl/la7+mwV+etPaGndo 6CAi8mvtoobREdjT56gCTKcSUSM 2020-04-20 06:46:51 203.132.95.170 9722 9723 +s Fast Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=156 +p reject 1-65535 +r OnionOnion123 syuTyQ3K8AEjKKjVXWIdJrGG4Ro +jBF3rMdkM8Ys831Un/27h3T8FE 2020-04-20 08:22:23 185.21.216.196 32123 12321 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44200 +p reject 1-65535 +r Unnamed szAArILnGcu+lwg7iKdVjXQkH6U HgiaxmTXNEgsF1CoU5+ucczO3Ps 2020-04-20 10:48:01 79.76.61.235 9001 0 +s Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3 +p reject 1-65535 +r 08c322675b00 szb2epUEipYlzasBj3XDuLKx1MA ZWgKe4Ec37Exuy+0N48xEw3gafE 2020-04-20 07:35:24 51.81.253.199 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11600 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r victoring szv6mqAAVzDBwOj35vU888Vxa9Y D+i9v2KKbEDYqbXBzLwG01jMYjQ 2020-04-20 06:01:16 2.10.193.16 9101 0 +a [2a01:cb08:865d:900:a0::2]:9101 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1380 +p reject 1-65535 +r fiedlerRelay13 szxbjd0utQ7guZFlR+veK8o7xWc oUZn0FsJqd9clxYvh9mkg9Cov3U 2020-04-20 10:08:21 185.170.113.28 9001 0 +a [2a03:4000:15:8cb::2]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r niftyentry68 s0BzhKhthm1twxo3UzyHA9vWSWU +/R+uNcMkUJGVJLfU6nUcppfpfc 2020-04-20 10:52:06 185.220.101.208 10068 20068 +a [2a0b:f4c2:2::208]:10068 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11900 +p reject 1-65535 +r ephemer4 s0Djulh+NkYtjeRNrg98q2dI8GQ eMQ0ia/PGnn8SeBUUuxOU3NDHpw 2020-04-20 04:12:43 128.232.18.58 9001 9030 +a [2001:630:212:2a8:a6bf:1ff:fe25:b961]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3340 +p reject 1-65535 +r rathergonaked s0g28gJ8FOQEBHh2iYa/6oJ7Rig m9CTDfyx2ViKFPIEEWU9om6I3as 2020-04-19 19:56:11 87.145.164.249 9002 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=670 +p reject 1-65535 +r fb7ok18 s0o04bIG27m2IT/3BkS5MGyeehI 7ZVC2STZ5vOm+QenqHPZgjJw9L0 2020-04-19 20:28:23 81.170.155.6 23456 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4090 +p reject 1-65535 +r CalyxInstitute12 s0zJBWJQhH0ZgPCChbAc8LcYwLY RqXos6atSx6d5vKbCxF6bTjGO8k 2020-04-20 00:47:40 162.247.72.199 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r Unnamed s02usHkEkbne59qkwrmurtG7fgQ hWmyIjYtK1NWMlqYYTatbHvkKeE 2020-04-19 19:35:30 167.114.92.53 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r freebi s1kI2rWRzyaKGehbvN4wwEKKTPs fC7nhRME30HQ+MgPlSJx1rPA9IA 2020-04-20 05:27:58 139.162.112.111 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=310 +p reject 1-65535 +r niftywabbit17 s2AG2I4szvLh7wgmx/Gw7cjebAY /PcZaUmi0a0H81W2+U9VVScmVaM 2020-04-20 10:53:17 185.220.101.247 10247 20247 +a [2a0b:f4c2:2::247]:10247 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31000 +p reject 25 +r SixRelay21 s3YPILwF2cMq5MPKXX1XYyU2yRM wsJzOgVsn07ijGjFCfC9PH6eHhA 2020-04-20 06:23:40 5.51.254.248 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5070 +p reject 1-65535 +r RapTORist s41c6wtfly0ieXbwojDY0UHnFxA DCul8Bi54Y5V/z3BUP3v3OW4jPs 2020-04-20 10:34:19 2.249.86.110 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1350 +p reject 1-65535 +r mdarder s7o14qbsq/+AG0vi6GEFPAxNaU8 6mcGIHMmmn2tUhTkzP9nZ3ZeiJs 2020-04-20 04:44:14 51.254.125.86 9001 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p reject 1-65535 +r Unnamed s7/pGoYyGSHq6Cct8VpT55DAQT8 XWgeT9zmNDOarQU+x9kmFoJFTQw 2020-04-20 01:16:20 172.105.65.45 45761 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49 +p reject 1-65535 +r theseekingchild s88I6d9w1Gu+tRZaQtCH2zUidd0 CpyDA5Ha2jZZ56gTzw/KSVE3kAE 2020-04-19 22:00:17 180.150.226.99 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r brattastic4 s9VsHgrYS6k69txTOoVpw9DopYs UsnhO7yJo+0fU9OGSN20JxR8UoA 2020-04-19 23:32:51 209.240.109.238 9002 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16300 +p reject 1-65535 +r SuperHoover s9dVXyyAA0/E5N1jn8XpHFtsGJk e8xsrOq6FFqYFyunFTinT5b+mz8 2020-04-20 00:06:18 83.97.20.81 9001 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=357 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Hydra4 s9qdZzMhuSJT3M04qXQPLFYskeo yi/zAoYhc9pV1jVR6DQQhRNngbU 2020-04-20 04:04:13 51.15.124.1 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29000 +p reject 1-65535 +r fiedlerRelay12 tAHjBxDHYj6sPxrzRoQzXpEevSs LPEf0zjJeKIepmt+sq+8EZ/onrk 2020-04-20 11:09:44 188.68.55.50 9030 0 +a [2a03:4000:6:e3e3::3]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3900 +p reject 1-65535 +r Unnamed tAm4h2lqOsxOa56AXJzffpBxD3c jLKo69rdef90bQVSvtM/DzWY2SU 2020-04-20 11:56:46 209.141.50.168 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5390 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r pulsetor tBECfJJqm//PfakePK8YVqMh7/0 okSSUiQcxFgeHZanJNSYsltKWMA 2020-04-20 01:42:14 51.15.76.56 443 9030 +a [2001:bc8:1824:1e42::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22100 +p reject 1-65535 +r diggers tBtnvLxUVWT0OmvxLRZV9tjAOoc G8u2bdtJfOraO1OvF/0m+43CXzY 2020-04-20 07:19:41 185.120.77.117 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1120 +p reject 1-65535 +r traktor tCa7WS4gAIt+2enXrFZR7YsOs54 1s/77cR+GIKk4LMac2tolAIiaSE 2020-04-20 08:14:49 193.224.163.43 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=773 +p reject 1-65535 +r firefly tCx5fMjNY8YPtkPoIKEdET309cg VMyH6Y9BvdBARJABizx5195jUYo 2020-04-20 05:29:59 217.23.8.2 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21800 +p reject 1-65535 +r snap277 tDKNbNJDUWUOAP/tUc0IpZPjUJs Xj6ySjEfAmPE9K5V8qqbJoTI1Wo 2020-04-20 10:49:05 42.147.50.235 35657 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22 +p reject 1-65535 +r cnsp2 tDQJxqBH5Q/Ht6IzIRApV7r8PWs nkzG5RoKoQz/ukL/TAIde4DT90U 2020-04-20 02:03:14 54.233.234.207 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=460 +p reject 1-65535 +r wommelator tEQQfx+92wIRt+dkW75tFPmQRxE MyACgJtvcNnjC1xiOStQIudU5ps 2020-04-20 11:30:21 91.64.214.135 443 0 +a [2a02:8109:8000:6d:d8cf:444e:2f2c:532b]:443 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4700 +p reject 1-65535 +r oberon tEhoceoGK68jVPBw/sw0TPPCCIA tbjYWADZuFIoaJbqp08f3ilGf24 2020-04-20 07:31:41 51.255.106.85 443 0 +s Exit Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p accept 20-23,43,53,79-81,110,143,220,389,443 +r PIAjpn2exit tFWXysHe2VgFaiNFirSvuOOKunU tAyR+Zyez/APvJyjK+iCiLkgDUY 2020-04-19 22:17:44 103.208.220.122 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1610 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ZaraLibre tFtiwTz9NyNXkDWbTIGwF6cL4Ro VPm5VN2+5ZYRU81jWko5lTMvKxg 2020-04-20 08:12:24 90.162.56.45 9001 9030 +a [2a01:c50e:9101:fa02::12]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1800 +p reject 1-65535 +r Sensenmann tHKLOzpNpHUOV2aqx3ifSjSI9F4 EA6C/kM0gKOLhwOUUukOnECXBxc 2020-04-20 01:15:42 87.188.194.206 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=151 +p reject 1-65535 +r myNiceRelay tH+YeMw3HMTTL1mtvGewc5fQJCA vtW26lKu552EgtJ+YrsCt2u6s/Q 2020-04-20 06:54:27 51.158.115.1 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19900 +p reject 1-65535 +r snap277 tIPF/oooiPjgKIXYSIQE2777zzs lxtqTrZNOXJ9gLKwpPJejXcKfmc 2020-04-19 21:48:30 79.119.136.33 41477 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=694 +p reject 1-65535 +r micole tIrF9UfbuEfvuISAv7htQSEe1hc 8R1+Zyszn1ctCSw5DkufqCwG920 2020-04-20 03:38:00 103.236.201.110 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=620 +p accept 20-23,43,53,79-81,88,110,143,194,220,443,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r Unnamed tJaSYPdr4/FF6QrwU7Vp2bRB4oE 8E8E7FS8z/AaI5Yvycu4QGCbZ8o 2020-04-20 01:14:59 193.37.213.5 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=94 +p reject 1-65535 +r ToRRTHoRToR tJyJgz5+2Fs3aGnK+zCZp2bWNoA unIZDtL+xEm4dPwqQ3x9q8ZB6DY 2020-04-20 00:09:06 24.118.12.208 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=124 +p reject 1-65535 +r bagespottedtide tJ6q5GkOXOdi0d+LAP3gWXCIDq0 aeeTEQFZTSHFmWzv2TcOfLEZr98 2020-04-20 02:34:41 103.253.41.98 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8074,8080,8082,8087-8088,8232-8233,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r RumpleTor tKP9gNNtLl/q2RKfTu++FV1RjbY M5BI/+uC53PEm7AjonV54wccaZI 2020-04-20 11:34:07 193.169.87.29 9001 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r RenderLab tLkArVATTpUo1832Zava2r9Tqbc faW0iy+OBUZhBh6Q9qBBYIdH1CU 2020-04-19 19:18:30 68.148.246.91 44444 55555 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1190 +p reject 1-65535 +r netimanmu tMr9nL+zTsXarBRpINx9+v6R6iA JlIpBQA/idmxzDE/GnVxQybCmpc 2020-04-19 19:38:34 212.47.233.86 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1800 +p reject 1-65535 +r JabberDEXMPPNode tMtGVXO62yM+lWebDxnEoIC4sBg y+Uh5wL0EraSE1H3Z8ps5uvWHQo 2020-04-20 07:15:38 85.214.146.211 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=98 +p reject 1-65535 +r niftyalloumyraion tN0fRsbltD2WVP9WvTIzPWWG5TY U17qqQa+GnFB5WBtYZtGVfToSo0 2020-04-19 22:15:25 185.220.101.129 1129 2129 +a [2a0b:f4c2:1::129]:1129 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45500 +p reject 22,25 +r Stephen304 tQU6v/hFyWsd2PRdzzLmvh5j8Sc mSFF6K75QeSIU5E8fQw6GpLBTDU 2020-04-20 11:20:24 50.236.201.218 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14200 +p reject 1-65535 +r Unnamed tQqYJnpjcT83MZ2JXqEVHEsnvk0 BLbN/W4FOMladFdunV7rOMWKFe8 2020-04-20 09:06:40 87.92.208.189 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5920 +p reject 1-65535 +r snap277 tRJFu5uepEIoc+UPBdMFwToTo2Y iCn52lrg32Wfue0G61jK8x4WAYg 2020-04-20 10:25:54 37.134.24.191 45541 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5750 +p reject 1-65535 +r Sandcat tRcZhTbVUyk3/YkmQo3nRLrBTBE yKwoe7TvfNhi5t7NJqi67HqFMKw 2020-04-20 01:19:09 217.61.157.75 9006 9007 +s Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17 +p reject 1-65535 +r angeltest18 tRcZi4azhZwweFfFn2ZgooH8i0c zYl8YMSdYeGBFuIGf1rnCnilHGc 2020-04-20 09:23:16 94.140.125.122 443 9030 +a [2a02:7aa0:1619::4b42:ca67]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15500 +p reject 1-65535 +r firstor tSEttoWioPz7rkJXOOR40SNhcQ0 imeQ2N/7Lp3f9a2uKFqbMf5OMgc 2020-04-20 08:59:22 93.115.97.242 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15200 +p reject 1-65535 +r Unnamed tSSCfIjXwrPn5F7XeiGFAXQ9x+0 zLoAj/kUCap687tzS8RMbb1PAXY 2020-04-20 12:19:47 82.27.144.85 9002 9003 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=261 +p reject 1-65535 +r Unnamed tShjbTZHdrLZSx4UBgmjuIUxwLs G9GfNCECp/eRFsk3QHOc56aGArg 2020-04-19 20:28:34 178.175.131.194 443 80 +a [2a00:1dc0:2048::2]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r dreamwriter tTa3Gh9VmcOfyLGRXS6+Og3rFAM ReZG9rph69nFtYLtEhsplPH8r0A 2020-04-19 20:15:02 88.198.107.179 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3590 +p reject 1-65535 +r fiedlerRelay18 tTzKBzYW4wujN27EBXf7u/uBLCw qsTTt/+Ns+BjMGWx+JW+cbp8n1M 2020-04-20 11:07:35 37.221.198.114 9030 0 +a [2a03:4000:9:533::3]:9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3810 +p reject 1-65535 +r vryheid tUNa+oGzNXHW57eKCMiUXfIGcG8 IaRuSizDqym4r3APHzmSsff6aAs 2020-04-20 07:32:51 154.127.60.92 9001 0 +s Exit Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=556 +p accept 53,80,443,6679,6697,8332-8333 +r torvhish tUidbFcZKDOxO5Y0UkVSzuOBJK8 o0YWhuw/Cr4XvQ0Flwn55zRFmNg 2020-04-20 03:58:17 144.217.161.5 28057 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=177 +p reject 1-65535 +r 558aff2634b7 tU00M21TzhMCyTiaPSkIoserxjQ 1P+WBw1j+LlXHp1W0ur1uGJZDNA 2020-04-20 08:10:27 51.81.254.29 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Stempelautomat tU5MpXyK7JwUK1Si32iyxvt+2UA MgyRvBarX/qr/lhtqgpzhYqCBqM 2020-04-20 04:09:59 109.250.101.91 443 80 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=841 +p reject 1-65535 +r tor4kryptonit tVBtjgP3vq+hqVXdPDmzj4MLL04 +bGQU9aHRgjG54C0KNp4V9s12Nw 2020-04-20 07:33:16 188.114.140.245 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53100 +p reject 1-65535 +r j4c4l4 tWgTXF40W6+wgMEf3fNI5UWnIuU WBrz5VJsK2TFdmrtS9Z5gzJ7Qwk 2020-04-20 09:01:22 95.216.160.102 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19100 +p reject 1-65535 +r BadshahKhan tW1aBUPDW0XYHXkqRzVZDjYSqBU GghO4HlQX0QnX7psU+8fjhvCdtU 2020-04-20 00:42:45 144.217.60.239 444 81 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7000 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r someNiceRelay tXajlN/BK36QDWQ8kASEdl1Yww8 19WZGvEz/b7CuWKD+UIEsFkrnWk 2020-04-20 08:06:53 144.76.223.174 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18500 +p reject 1-65535 +r MrX tYMYRfYxw+BTsS1HFDMukwIZoBQ WUNStStFxWP74NyhLoTvt4pw4QU 2020-04-20 09:25:49 213.136.69.237 29517 29518 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5300 +p reject 1-65535 +r torelay tbQ6hYCf352V/zYuaUbO8WAcBhI 08gZ3SDu7hPXmi893uXJhTQbw4E 2020-04-20 09:36:05 99.104.206.60 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12 +p reject 1-65535 +r TORRelayCAN tbZm9ffpEN/0StWM1ipLP0Fey2A D6tYMQPZaiZypG6YD1uH3vI54bg 2020-04-19 21:56:10 192.222.248.20 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=890 +p reject 1-65535 +r Unnamed tcb3EtZWyTkAVqqbpwIMh+7p+jA k9ymtpln2/gBaAQ6HYYPUjCeOXE 2020-04-20 07:49:14 178.17.174.10 443 80 +a [2a00:1dc0:cafe::d6a2:ae67]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4710 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r DigiGesTor4e1 tc7Wg0vujjjSxi8AzLZxXwRA2iE d0JLrJ2Iw90+7hRPuPasr5bOkWA 2020-04-20 07:38:04 195.176.3.19 443 80 +a [2001:620:20d0::19]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27100 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r kr3pper2 tjC+gCqANAP0u+3xxLe+ezGokwU PAkU+L1EsYRo2bVFSlptYXSrAYY 2020-04-20 10:32:20 212.51.159.148 9002 9032 +a [2a02:168:4041:29::120]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39700 +p reject 1-65535 +r QuintexAirVPN10 tjIORKIwMCx7+TGeZ1l6m4eIIkE 8fhS9E1WJ+uqCbva1VSoot7HcVk 2020-04-19 19:23:40 199.249.230.100 443 80 +a [2620:7:6001::e664]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12600 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r leuwerik tjQQzUgYXtNOnGrmLQSNimhUpco TKahPwihEAKH+0JyzGUJnoOPcJY 2020-04-20 05:57:28 179.43.146.230 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10900 +p accept 80-81,194,443,464,531,543-544,554,563,706,853,981,989-991,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r skibble tjUtd0qRJ2SwsP5il2Zs8J3+MAc SEuQ/DB35oC8qOTp7qntLrnUXT8 2020-04-19 23:27:40 174.136.98.114 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5000 +p reject 1-65535 +r trumaine tjYmo8pvBSGEeFPd7G1ARMgLkD4 eGaJtRwYo8rc58/GY1R9PR7NChk 2020-04-19 21:07:18 79.124.7.11 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5600 +p reject 1-65535 +r frell2 tjj7wDIXTKqUCbg7XO/7SQbUNDQ kPVy0izxTdo6m/xygXXHH1kslZQ 2020-04-20 11:16:04 85.10.240.250 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5210 +p reject 1-65535 +r snap277 tlAyuCjYP6qIh+SRqYShz2sjkeY kZcnhxGDOPHg2bO7jgK3D1T0PW4 2020-04-20 06:43:19 93.28.76.104 44567 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6 +p reject 1-65535 +r bucko tlWiD0LZQNmuryDHycKjNFPyoco yfDHaaVK2bb37OZywjOUDQhqXDI 2020-04-20 01:16:39 45.63.14.225 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=369 +p reject 1-65535 +r Unnamed tmXV+dP0HMWsP5fzBvfVn5CwOqs 1mmKcE55pxKWr5XVUE1HRCdDim8 2020-04-20 07:35:41 83.243.68.194 49002 49003 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3160 +p reject 1-65535 +r nickel tnK3u15bn3eDMHOKRoTflGuTij8 E+KV1Di7x7pZzJo1dNGhu4vnDB0 2020-04-20 10:39:13 179.43.167.230 9020 8020 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r simpletorrelay tnnGuIRv7lNpzcGaDS0Db0EA9fo ZRYPhBWVxTQYVQ/YjTeX/XsrHvI 2020-04-20 00:08:17 78.49.104.67 9001 0 +s Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21 +p reject 1-65535 +r GMoney toouAw4AksTtN9HKYobM3xRYr9E 5ahL1XH8s7S929FUezjLm8z9iUY 2020-04-20 06:00:37 173.70.126.44 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6600 +p reject 1-65535 +r owin tpQsY/GlluZVfRP8Cs+EdaCirT8 pOLmemWWK3TDIRl/dN5DVrHJ23Y 2020-04-20 10:48:49 89.41.173.138 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7090 +p reject 1-65535 +r PorchPirate5 tqfWM4Wsb3P+LBOmx9G9OhXFQ7k eE7n/GaBYe+ZDh/pIgthd+fuZkw 2020-04-20 12:39:47 178.175.138.62 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33000 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r PXArelay03 ttSRapjZkCfaJdQtcNaG8LNmPzU GR7bzvICO9v7kvL9jSKHsYJU7/w 2020-04-20 07:38:56 85.191.195.69 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r snap277 ttabEry/eJVz7GyiTcs+Si+f8fQ klwV2wySLZ7NXT5JVJorwaA6r28 2020-04-20 10:57:03 90.114.245.216 41207 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r Unnamed ttj0Tz2MtoNbOSOUkWNl42dRw7w Dw4Q/AZvQTRYTAvzWzJfn+yN/C4 2020-04-20 00:34:13 69.163.35.222 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r corky tuM8OcHJTlgsu4wkzONR8hKYB8Y ZcHmLTcJ60VAmM5ihjNJyod583I 2020-04-20 10:12:22 146.185.253.101 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10000 +p reject 1-65535 +r Neyo tuQBZ76ELyebEbKg9ZRxg4eqdeU zD7A7kr0i/JJl6gdOyXOZJmOUu4 2020-04-20 10:09:25 188.213.31.125 9001 9030 +a [2a03:75c0:3c:a257::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r Unnamed tuZdw6ERaJiSN/guvYEVoCnbNog 99Yzzdj0bgSqebwB6pyyGP7QyW4 2020-04-19 20:32:11 103.230.142.23 443 0 +s Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=56 +p reject 1-65535 +r RattusNorvegicus tuxxOeH0e7kNPCbsRXHkuwtLaYk 7AZdBWLfh+aa3//Q8DuvDmcexoY 2020-04-20 12:06:12 212.159.79.228 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=78 +p reject 1-65535 +r milhouse tvA8NEgwrVDfKOp4SMIWgBz5rY0 dwPtLwnrE2SfYXVHammPphHgwoE 2020-04-20 08:41:53 179.43.169.21 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7960 +p reject 1-65535 +r alterspalter tvC8K5PLPv//9yTLT14CX7Fe+3A OTPfwSau4aktLrHNtWVY0k+RRxQ 2020-04-20 01:58:22 85.93.16.47 9001 9030 +a [2a00:1910:55ef::124]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3950 +p reject 1-65535 +r snap277 tvKokPZIr1rVmV5lzo6jZ11GTAk YmdJQL1t7rBr9YhTSGTQ3XEkmOg 2020-04-20 04:27:17 78.69.176.146 42523 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r snap277 tvaA5ONN4vocuZ9u/sV5FgLQnYk +8AxLx84dwkq9F2gArQigFNdyCM 2020-04-20 09:20:57 2.86.201.227 43837 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=317 +p reject 1-65535 +r yatotoro2011 tvpWtEKAtyfbrGUSXPc41LIvfQs Rp+g4bnEQ/44hAC/XR8WAjnvjI0 2020-04-19 22:00:00 46.223.196.26 9001 0 +s Fast Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=580 +p reject 1-65535 +r Quintex11 twR/venFPDkBHKhOXLKo41QwZtA Z9ulsByb59/7wtjempb6q0exjdM 2020-04-20 12:24:37 199.249.230.101 443 80 +a [2620:7:6001::101]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Biverse twYpwpoDKXnlrQDMUdIzCEWq/Wo 6A+IUH1P6U8pm4g+Yavts+o+d4M 2020-04-20 06:36:03 178.63.97.34 9001 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35800 +p accept 43,53,79,563,706,873,1194,1533,2947,3386,3690,4321,5031,5222-5223,8008,8333,8443,9418,9420-9422,11371 +r FalkensteinTor01 twvTNP/uI+ZTt1IZrhLPAja8/Ls R/ZLfdrSaKEnnJyjRRoXtPXeCOc 2020-04-19 19:22:13 195.201.168.111 443 0 +a [2a01:4f8:13a:1082::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=44500 +p reject 1-65535 +r AuroraEmperorTorTwo tw7Euq20Ev2136b9wW0/RuGt92E 2s8/Y0aVfLm2Nm5A1izSTve+8a4 2020-04-19 19:31:55 68.230.106.103 9001 9030 +a [2600:8800:7980:700:ddf5:91aa:7f48:1e3e]:9002 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=557 +p reject 1-65535 +r Alien tx5oqAxRVnRd3ndB9t5eMgKr0JI GKX380W0S5JcypIT092fLhT8NJg 2020-04-20 08:38:59 91.203.145.114 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6740 +p reject 1-65535 +r niftybunny t0C87MSpVpIyzdRcDhMwug0DDTM MGOrGMMS0dzCyG3kpTx43Z5ogm0 2020-04-19 22:15:31 185.220.101.136 3136 4136 +a [2a0b:f4c2:1::136]:2136 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53300 +p reject 22,25 +r sonofgodness t02rviSLk1zcEDjNXJKAh4yMlOc BcAuWaDUZ1g98GNK5ppcoHsilmo 2020-04-20 01:28:38 5.39.72.20 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48600 +p reject 1-65535 +r snap277 t2QFP4dtMBflVcyUenDWuyp2ARs HS0Z8DhTMR3bu2+r5i55Ledv+oU 2020-04-19 19:11:54 81.56.135.149 38505 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9 +p reject 1-65535 +r ddgserut t2TI9lnEcUCKQEBnrbVir4yOibg QCqnT5Yw93vRonE1HEw3OgqhHwY 2020-04-20 12:47:28 89.36.218.127 18364 0 +a [2a03:a140:10:e7f::1]:28196 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=341 +p reject 1-65535 +r DuesseldorfTor01 t2oEfCDT5Pm1pkQoKY2lWpDWJHI fr0Sx8JvEV6+Vn1ccdKxATW8uaQ 2020-04-20 01:20:37 78.31.65.92 443 0 +a [2001:4ba0:cafe:c88::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=24100 +p reject 1-65535 +r niftypika t3Gqh3aH+I5vHKU1R1bfbIp7ayQ hQ7dHDgFBXDd45ojQgzx0pq3OM4 2020-04-19 20:26:45 185.220.101.15 10015 20015 +a [2a0b:f4c2::15]:10015 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39800 +p reject 22,25 +r StainBaron t4xgikZUANpea7+RnjQ3Z45kvcc zLYqrSHOcSrwX9PKXj9ckX8SDFg 2020-04-20 05:45:22 139.99.120.130 9001 9030 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1750 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 t45pBprNkX90ZnODFG42v6q+fbo HOUV9Tf4WrqouaYVEKYAdAJwzwc 2020-04-20 10:18:21 78.126.46.102 46703 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r snap277 t5A88HOYb8cu8BswVtRRw5AncUY WQzp04+G7E6bLHna5leYhI0nDcw 2020-04-20 09:03:17 96.37.121.36 35921 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1000 +p reject 1-65535 +r poseidon t5WJNVpBiA3/gvUiXylAQ3zt6SU 1qfxmRyvI9gRQFYcMv51sKgZwpY 2020-04-20 11:14:51 5.45.108.48 9001 0 +a [2a03:4000:6:2042::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2820 +p reject 1-65535 +r scotch t6EVxl7RqjDBXhGhmmjrWq5+0MQ 03zYpdCvwXU/OPmX7GZXKoV/guw 2020-04-20 02:19:16 185.12.45.114 9090 8080 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16700 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap278 t6oz5/hI2s4336b1SsiqNITunmg btsxEf2dK5HznEIPrwe3RUxZLLo 2020-04-20 07:51:07 92.148.159.136 45800 0 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=435 +p reject 1-65535 +r fiedlerRelay02 t8I2E98lipfS8/qgXszmg+8Om40 oW9qHgwMGkxmZMhL2uyVaLPFKv4 2020-04-20 04:10:11 37.120.173.173 9030 0 +a [2a03:4000:6:757e::3]:9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3400 +p reject 1-65535 +r Unnamed t8xkxWbqZIZTe6QYeHDi90R2PKU PDG7qwn9r0w6fNpBvdwhmRMMp9k 2020-04-20 08:32:43 5.95.152.140 9361 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.4-rc-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=750 +p reject 1-65535 +r snap277 t9QQBUIa46yoXj9feIg7ElcGwmk b3LnRTA11NeEH19dyhbgXi9re5U 2020-04-20 10:07:14 77.152.155.54 38045 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3 +p reject 1-65535 +r peep t9dz4hlttbQSnTwFDAY9sPjfkaU 9dq5tdxgzKJ0SkoxTNvrQ2/AfWs 2020-04-20 09:11:26 195.201.94.113 443 0 +a [2a01:4f8:1c0c:6f8c::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3200 +p reject 1-65535 +r sebarmledrelay t9sGRcSKLwI7NbUG33h92qug/5M 5b8CU+Gk/5NW8YogDsHxgi9Nvqo 2020-04-20 11:02:13 87.254.237.196 9443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r Unnamed t+Lr++RGL8kI5IAHUXxT7Q/3UrI JqCyc2wiKSeq3zd+wS2D3WY8c08 2020-04-20 11:37:43 37.59.37.59 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=923 +p reject 1-65535 +r aumatbi t+yRCBkoHaBDDS7/Ol/9JpezzBY nh8RdK7hEKmQXOkinlOUXRDKuqw 2020-04-20 08:07:17 139.59.36.248 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=432 +p reject 1-65535 +r piersic t+9kfvZZcmxxYkOoKHfSCqeXjrw XRvyx13u2o3JSo8gZaoTE6I4GSA 2020-04-20 08:00:01 185.227.82.7 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9980 +p reject 1-65535 +r UenoStation56 t/YKgXN85jXnUcW8pnv9INryYVw hI80ukYN6z5QLSB5gvvBM/TmNSA 2020-04-20 05:59:41 51.75.162.55 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r hatice t/jOe/9sbPMIyYK+vxRYpm0VDBU uNcAfEDrW02FLrSckx95kYDrdik 2020-04-20 12:12:28 158.255.6.242 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=907 +p reject 1-65535 +r Unnamed uBI1UL5qOf9+wtAVyGdVUXkHVX4 jamLYchBxYxqBC9wAs85KJMMdxg 2020-04-19 23:20:45 85.228.42.16 9002 9032 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=22400 +p reject 1-65535 +r kroeger uBfGKZ5WUXh08wGeUcJ+W+R+coQ JcegibHkdYwT05Zt5XXFgRn90Zg 2020-04-20 10:35:12 176.67.169.254 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=7600 +p reject 1-65535 +r Harlock uBs4kCvwJr8lkcotc7mc7rA/CGk je5tP5JtcbajZnWwOlQopTr9Qfc 2020-04-20 12:48:19 158.69.205.92 9001 9030 +a [2607:5300:201:3000::4dc0]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9340 +p reject 1-65535 +r anonymousByPDH uByVRlJCrTDEJC+CWs+0P+lRDAQ 1hOLbX7F679hEfJgAKQuGSdyg+0 2020-04-20 03:20:17 188.166.255.209 9001 0 +a [2400:6180:0:d0::e05:5001]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=931 +p reject 1-65535 +r Equinox uCEEeWpxP6G8T2E93Qm7tvXTsmM SgI4f039sPUkje7Uf/3l8VzQFAA 2020-04-19 23:25:07 188.213.28.132 9001 9030 +a [2a03:75c0:28:8f70::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9200 +p reject 1-65535 +r respecttoall666 uCQKTHFaJZXOVMgqsXXIAhR2i0o B9Fw7ekjdidNr6n4fKvavaYWZhU 2020-04-19 20:00:38 83.37.195.165 12813 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=198 +p reject 1-65535 +r TheKrustyKrab uCX2FNZAKzbhuOjY9Pfhw60Mu2A IXOSTBGnG555V2NCleF/yFNpFW8 2020-04-19 18:57:07 70.173.251.218 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1100 +p reject 1-65535 +r pumpa uC1UuS/I+YW04/gFKI9hYypdr2E UxOv4UR+Vor33KZdtQ6rrjqPt/I 2020-04-20 02:46:37 46.162.90.13 9635 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1640 +p reject 1-65535 +r mdfnet3 uD3BVY8NNDU7uZLvk6/q/bImpz4 6e8PYUtmZT9JCwcRsnBSvMkglFg 2020-04-20 06:27:06 193.11.114.46 9003 9032 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r RightToBearARMs uEDH3llud6Ihh+Y4xRFtxbO73dE 0ARfA9rJ8wjNP95x2042IYgi3Kk 2020-04-20 09:53:27 51.15.72.159 443 80 +a [2001:bc8:4700:2500::1305]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3480 +p reject 1-65535 +r mj2 uEmCT4/NeusTDfNW9ZK6QMaGygg zr9Zg+h9wzu2Ips3Jy29xopsRd8 2020-04-20 12:23:39 93.115.86.6 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23900 +p reject 1-65535 +r snap277 uEv29H4QloW4k42eNjK+AO7nx6g ZnlWVZWgMSB78z2G3I+uuJmG00M 2020-04-20 03:06:47 90.92.207.202 41839 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4420 +p reject 1-65535 +r tollana uE8kgjP+qQytQ58pJVajE59uG4I Wbr06PW9UJ9bEp7NZ8wUEFxtzj8 2020-04-19 20:39:38 85.248.227.164 9002 444 +a [2a00:1298:8011:212::164]:9004 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49900 +p reject 22,25 +r lftor6 uFRy6n+JsFcsDTpNA5v3Smeylj8 mFh/gaYvX2NyoyKCPDc7Je4+rhM 2020-04-19 20:00:56 163.172.137.211 443 80 +a [2001:470:c85d:32:216:3eff:fe43:e670]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11100 +p reject 1-65535 +r BeastieJoy60 uGE3rpaBcBkBxnIOVcFoBbRr2OM KARDwE+iYtVXsMKG1BMGOAyiDgI 2020-04-20 00:43:26 81.7.11.186 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14600 +p reject 1-65535 +r king uGqra15/4QPNmGgLz1QAZUBbrmU UsQXewd4BmyueuOqqOeAGLJu6pU 2020-04-20 08:38:09 51.75.175.29 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18200 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r TorrificPi uGrZv/ZwHabYVGnEt/czgTdPmLA o5dyyeDWfIVPeNp7puwT01mer8A 2020-04-20 03:27:23 108.18.247.109 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1920 +p reject 1-65535 +r sarahmanning uHK6aATIxuFArhiXtEzzK0L9I5c oyyTkkObf55BIBXLPwUnqKWxZLQ 2020-04-20 02:42:24 62.210.83.207 8008 8081 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.1-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68000 +p reject 1-65535 +r d16329134a84 uH2lQILt+8xqXgVPe23IRBjvVhI CePezUy4j02URgU2E5M3AUpjakU 2020-04-20 07:22:03 51.81.254.14 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8510 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r minestrone uIBcvb6RpeaNJo/GLcYXtb18yec t/rbRn2egE+lbEkPsVWbgPTftgk 2020-04-20 10:58:19 188.68.41.119 9001 0 +a [2a03:4000:17:80f:5461:1fff:fe7c:9b93]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23400 +p reject 1-65535 +r niftygrolantor uJHLY3DPfFHG+yTYCUevt+1GPQA HHWHYhHBOaclCy/UD7kzbs14y7I 2020-04-20 08:54:02 185.220.100.247 9100 9101 +a [2a0b:f4c0:16c:12::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38700 +p reject 25 +r ididso uJwXB6vX6gzKc/ofBtzTQwJy0qE wilFu5RBzI5T8D3NXcnzfea8JDk 2020-04-20 04:19:12 92.222.36.196 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=47 +p reject 1-65535 +r guenther uL8pSOeDBYb2Tukszqv7IC4vv4U RkQOCs0VT9vjXt9tYTa56+uiWmo 2020-04-19 20:16:34 94.16.121.111 9001 9091 +a [2a03:4000:21:704::3]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13400 +p reject 1-65535 +r antiCapital uMMkjfMhpi+JMW42mKHg4TeQFPQ pegE5yH39nWvs8jQ9/mhxfccItM 2020-04-20 00:49:03 24.250.185.253 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18 +p reject 1-65535 +r Assange009de uMfVa36Hs5vQh4xdHWkTBZbQv60 SE6hlRiEEX9dfJiRgFebKEJxlXs 2020-04-19 21:32:35 173.212.239.78 9001 9011 +a [2a02:c207:2031:2233::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7300 +p reject 1-65535 +r RudiDutschke uNWWBA7f9n16IA+yidwWICder1I F77S6KbJimJ5p2ORtRddNgTo8Xo 2020-04-20 12:04:27 149.202.238.204 9002 9031 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,991-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed uNZCQ4xE1iwg1+wRHgJw34nSrWI JhFzrNMl8mAhBy99x4/Y6pvRLYQ 2020-04-20 04:49:16 185.100.86.60 19897 28589 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1040 +p reject 1-65535 +r soltor1 uNjgdEjgQF9CdeUohO2c72P+5KM EmI7euZz59Upvup/IVG0NbaR1lU 2020-04-19 22:33:02 206.55.74.1 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=500 +p reject 1-65535 +r nameless1 uOUUrdxlPWHeH8tnghuwMDd4eC8 eS+vCSLzRMUMQyNL1At/E70IQlk 2020-04-19 20:44:51 64.137.169.72 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17000 +p reject 1-65535 +r Unnamed uPbmiza+4r9Uh1C9zMPCp9tWpiM FYQS4eyv3r/LgvziAxsxwxihAc0 2020-04-19 23:22:22 51.68.182.30 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23300 +p reject 1-65535 +r scratchingnoises uPexYpYyh9IZnQdburLE+5Qbs5A r2z4Cl5SLJB5+SrtxGWI11rpscY 2020-04-19 19:03:02 83.212.75.10 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7930 +p reject 1-65535 +r bauruine51 uPkXRInLz4tKvKelOGd5VBSMKB0 NNDGeYRcLtUjdvE10bNhwxyxKUw 2020-04-20 12:07:27 185.204.1.239 443 80 +a [2a0c:f040::f87d:2fff:fed6:f80a]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10500 +p reject 1-65535 +r arnspringer uQMJ9vn59GNVJgQJRs2ux9vzojE dCgOifY0O4w+NZVkjTh5kCnPDy4 2020-04-20 00:51:25 103.234.220.197 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=90 +p accept 20-23,43,53,79-81,88,110,143,194,220,443,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r TranTor uRjrP6TQOk+fYyqhfyF6bAQETvc 3As5dHDaAhpHOjvziNI6i5hKRyw 2020-04-20 07:09:30 185.117.44.41 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13 +p reject 1-65535 +r Assange008fr2 uRoesw5m1SAm780elr/A6WbIPm0 +Mjgi/VAi50apZbSzboymT+yOC0 2020-04-19 19:37:00 62.210.105.46 9201 9211 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r darmok uSPRXt9OexJhh2hg1R+rkH7Rg0c WrT5EBt2emV21XSvUC8hXYmgCB8 2020-04-19 22:28:21 51.15.9.152 20443 29030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p reject 1-65535 +r mccorkle uTJPG+2x32Ku4hmwzEFQfOcQujw 5yMt7qCf+iyKAzbhZtRW/dGcmFs 2020-04-20 11:04:32 37.28.154.68 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3780 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r angeltest30 uTUD1FjZ/pfeXBLSEQgocdCPEoQ LaLhQ9DG/EZnYvjgxgc4vQaJXoo 2020-04-19 21:53:31 185.4.135.157 443 9030 +a [2a02:c500:2:217::e528]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7040 +p reject 1-65535 +r cathode uT4E63vBsFhZOkA0gsHfi+dmccY UXl19+ScCxTZfUIPuX1ffoq5ieE 2020-04-19 20:16:14 162.243.72.198 9030 0 +s Fast Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=135 +p reject 1-65535 +r podeaTorNode uUCqyULpkp5nPDUz9RDFJhtQeQw FGd1M0eR3OKVfNOjX/zMF3bEsK0 2020-04-19 20:38:26 85.214.253.107 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8960 +p reject 1-65535 +r MightyMasturbator uU45RU2Ot+bcfI45+Mi43MoAM8s qq9xWmE4ycBDgLOOIjXQBIHhYZ0 2020-04-19 22:04:44 109.229.210.6 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=272 +p reject 1-65535 +r vandergriff uWCRB+JbyngD96LSBc6Prj9Qhs4 VTEpHCFRP/8rZValdHacoeyOsFI 2020-04-20 05:54:18 185.100.85.132 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4280 +p accept 53,79,81,88,110,143,194,220,543-544,563,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r 0000001dxx uWCWJOJscFKJ5X+V4w/YjRWb2K0 7Eo+aNSN+0Qly40+twXDQtKu8SA 2020-04-20 01:42:59 78.159.99.85 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=710 +p reject 1-65535 +r Hooyah uWmqFpjztwIK0ulxswBq0xmZbiI xMooLU9LyWqxVB+qnPzjU3is/nE 2020-04-20 01:54:06 72.192.130.40 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=710 +p reject 1-65535 +r brokolimc1 uWot8cI9+RadcK3gmTvQAzEfUdo G/MoOuK8e4jcGypnx9iFUHtVcMA 2020-04-20 01:51:02 87.174.115.80 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=300 +p reject 1-65535 +r torreybus uWtRQQBJlSlf6H3M4aVFGb0LtIo cFyE7MVmxznR7lxe/7XIgaEOS/w 2020-04-19 23:54:07 139.162.195.69 9001 9030 +a [2a01:7e00::f03c:91ff:fe58:9e8d]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=87400 +p reject 1-65535 +r snap277 uW9eZs2vWclGMuAMZB2M7wYlAaY 7uJ5fD1sjCc07JHHutxAVHVv44o 2020-04-20 08:32:58 210.253.32.99 42589 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=183 +p reject 1-65535 +r Zion uXRCGqRqsahFURARMvOZSw5s20M 6Cz8MF77bL4N7iat61xJICiyZTY 2020-04-20 11:54:54 131.255.5.192 9001 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=144 +p reject 1-65535 +r duckgo uYd8ep6tdDnBhra0wohWEro3mHQ wFGUhstUmEJcmfaHfpwJlULsanw 2020-04-19 23:37:28 185.165.169.222 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7700 +p reject 1-65535 +r snap277 uZBiCK6nEXQkA1FP4LJEwRciqYg 6qUaSv+dmRSMNgnVnr8R+XCQLko 2020-04-20 06:08:46 86.214.191.132 41433 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=23 +p reject 1-65535 +r mobbingsyndromde uZYsGTrkMT1iXpv7lBXEMGIU0zA u0pGUXiE2/Lr3WPC6ni3K8ZdJ+c 2020-04-20 04:42:07 176.95.148.103 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1860 +p reject 1-65535 +r dlxuk uad+JeRPy/fHKPZ/Y6HuFOqTJnM WSvp9mDCJBb4TqfLYL2nP8HyZr8 2020-04-19 19:23:54 81.17.60.149 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=932 +p reject 1-65535 +r king ubO2ux2D9TOHpySkzjuaz1devqI 7B783c/Nsq81xPzDX53NLQINRTs 2020-04-20 05:59:59 51.89.213.83 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10100 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r pangea01 uc8QT+MMyYfQpf9yV3DRNOvbF80 WtIBGN3DeYpVr54ypzxhKaHOVJA 2020-04-20 04:06:32 46.167.244.59 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1610 +p accept 43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,873,902-904,981,991-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,5900,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r Coutee ud5Xdx1yI4oNjI0yaaJVukSEE7A yxNK8F5eytHHbIgUjm7uUTxCRMo 2020-04-19 20:29:26 87.120.37.79 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7510 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 ueZB6hkeD8xn12V8Lzj2dlPcR3c fya4/9LrVgBSd+zR/HqnAjqggOM 2020-04-20 12:22:22 2.85.222.222 33019 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=264 +p reject 1-65535 +r theykilledaaron ueemN7ALu3eFOmOcwzJFov648DM /YO59ENNgraAMEvqsLU9rpzVpVU 2020-04-20 04:17:41 84.227.76.48 943 930 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p reject 1-65535 +r asuka ufNiNpAif8/bDX1jqhtuPMSnQzg afjZTyBsffyau/27S107oBra4i4 2020-04-20 12:27:57 46.4.144.81 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=173 +p accept 9001 +r localhost ufQ2fNYbdVJpRneCk0SC7WOQSjE o2CwWICiwWPPu81LyrgryBfVQBY 2020-04-19 22:51:08 85.17.65.39 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=42900 +p reject 1-65535 +r Unnamed ugBxq+SlvqZpqFJMHNim7rnV/Dk ++5NUUc1UulkQ2JyRDU1cfV4N7Y 2020-04-20 12:39:41 188.226.154.180 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=733 +p reject 1-65535 +r ResistAndFightBack uhLO8Bax0eqTq5RMTuytd6s6bd0 vKw+HDnzZHmMSzBa+5dii5y9GUo 2020-04-20 02:30:18 37.223.79.175 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=79 +p reject 1-65535 +r 0x616e6f6e uifUOsAPAUlF3DLQNgVvE/4dUkM pgfV4eEnXYfu6ErdyUAXqa8EfOU 2020-04-20 03:29:14 185.82.126.238 4443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9400 +p reject 1-65535 +r smell ujRdu93KnrfJ7AiwKGy36fUTM3Q glCTsVV3ZgKWkT4dJjl6bOONkcI 2020-04-19 23:41:36 209.141.58.170 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2400 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r UEUEUEU ujSJAbxqD+TahsU0M0FKMSSTT88 AQvJHd4eTACMJXwDKZi5lLjh9gY 2020-04-20 05:22:45 65.50.203.5 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=110 +p reject 1-65535 +r snap277 ujf0kSTPCiaIX4gaPpnC1LqpXDc w5Uy3iMndcRkGFWRzxmDtGw8QmI 2020-04-20 11:25:09 70.55.29.240 41429 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r geek ujjFaI4QOuEfUNcYjI5f20sOVVM IAcXKMH01NsBk/JWDO5EJ7R9Fu8 2020-04-20 09:16:02 51.75.85.114 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11600 +p reject 1-65535 +r Serge ukSoieZLk/qisRTgLConmoVVxTM OANMx8Xlg1uBFjrq3sNhhzF6IjQ 2020-04-19 23:47:49 66.111.2.131 9001 9030 +a [2610:1c0:0:5::131]:9001 +s Authority Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r dattor ukgaPIBEfvtngRk43dObH3nhwG4 5JzE38brnBZMOJWUBPVaBXwXf6U 2020-04-20 07:42:13 137.193.65.224 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1710 +p reject 1-65535 +r Unic ukm8sM9gmnrW+atm3Gq+rAsac70 D0lAhlksImct9izq1ygP/jujYQ0 2020-04-20 12:28:00 5.8.16.198 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r snap277 ulbpFZ9D9zhvTz5tF5FnPzRm7dU 6XKMjej0Uz1XxgbKCrLs017RClQ 2020-04-20 05:53:03 116.75.221.83 44289 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=23 +p reject 1-65535 +r Unnamed uliBa0/kBSQu8ZnmjXCwDbKuVHI FEeX5e1jiRgcvb1tgsGWyEU92Zo 2020-04-20 11:09:01 95.217.212.154 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8070 +p reject 1-65535 +r KienjochMo2 umGx7UEB80FiJITBepu+DsW3C/U 1OTfUrD9uTgrTrGp+bBwIfVz4vc 2020-04-20 06:24:39 176.123.6.13 443 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2700 +p reject 1-65535 +r Zen0xus umVY6fa5f+vsA3FCMPmqkSjwwZo zxl/RjTG9/ruQlcdmM+TvzMRERc 2020-04-20 10:33:37 92.206.109.77 9002 9031 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r Unnamed umlLi9raClLQDi+uigAs/TlKmgw nPP7YNMI908gBm/Jh/GL64qFuD8 2020-04-20 06:37:42 185.186.78.194 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8750 +p reject 1-65535 +r smell uppgtJhVzXekVSW/IBaV7cgWXbI w9dtthGPRTgwtzIGgvSYegr5wj4 2020-04-20 02:03:46 137.74.153.9 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8190 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r MaxWerner2 urvntnAQJ5SRoaC1zyAbhe2z2No fkbm3koq8dwOSKbZPDEvHCZ7O6o 2020-04-20 10:57:52 185.183.159.86 9001 0 +a [2a03:4000:1d:8db:b89c:50ff:fef0:4ba8]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18200 +p reject 1-65535 +r Unnamed usInPz+blV2rUIK9KIqHutHygGY xyIjyNs+r5dP2nfRZ/REPTOqRhE 2020-04-20 09:30:59 86.106.131.136 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4040 +p reject 1-65535 +r rmblue ustHQGojGrYOwz0e1QgcYDsgllU gPgCYQljnU/0cgdGYnh+zNXRC34 2020-04-20 06:51:59 178.202.156.12 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r DarknSpace usywdwWxur5cGxq0jiPZz5923us lN++j1nmElbp3fRGexZHHmjrPFI 2020-04-20 11:54:52 89.40.13.217 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18 +p reject 1-65535 +r snap277 utBBYAGNYfF4O84gp4YZvKvGQJ4 SqJwPfRnDlnIyomjwCDCK59/EYU 2020-04-20 03:30:10 178.140.23.77 42721 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4360 +p reject 1-65535 +r smell utf4ZLf+3M3bAjGFg8vStggjT8A n8WdSyWRvxcUB7WgnJjyJbqByr8 2020-04-20 01:27:33 205.185.113.30 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Unnamed uucLWmGxKj0x3ulOaXrx/ampuC0 7ZDwodP9zZNXIEaHGmTj2LQnRfs 2020-04-19 20:01:45 71.105.118.143 9002 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3040 +p reject 1-65535 +r darkwizard uvIj6d9i0yYfFnXGz8Tl1Q8V+lc 7Ju2PiU6xmyaNO3Oynl5i0BPERE 2020-04-20 08:27:27 62.171.137.169 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p accept 706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,50002,64738 +r KomaKabana uv82KoMZ4fif5MnzuKFzTi4uMqs C98BbiykFP/EJqKGepQLGUZAdaY 2020-04-20 10:39:35 85.216.10.239 9010 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=133 +p reject 1-65535 +r Unnamed uwBMf0xcn65eABhkU3+JOIRE9XI /uVOzVOtzaWNVV+5lKi23oj6wyk 2020-04-20 07:08:34 37.191.202.95 8443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13300 +p reject 1-65535 +r lebowsky uwNgYFC1d7UD9Mhds9SCGiQtmo8 a94JmJmzekAfB+4jA846fFOz2CE 2020-04-20 10:22:16 178.17.174.2 80 443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3150 +p reject 1-65535 +r tortellini uwdJ1ZRmAoTRQJKhbQ9u7JDUqxM JFFTpyLOVUozAUrNcNLvb2UIPfM 2020-04-20 04:11:13 68.173.30.167 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=888 +p reject 1-65535 +r 0ZQIX7g6 uwxjbeicrGyZXLOAqsjEqqtzG6g 0HEfjt28Pnh1Wxt11EwXyWmLAG0 2020-04-20 01:50:12 77.37.142.179 9749 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3790 +p reject 1-65535 +r BestRelay666 uxDJYWz8inznnMEuMmil5zkMNSE XFtoWuXRnv0xufQOJZNfwEL8OTA 2020-04-19 18:51:59 194.5.250.84 443 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=58 +p reject 1-65535 +r Nonus uxedxcg0NhahYcMV64sZdcPDruA CezNApVAV2bNjjjrCe/q2EIf9Es 2020-04-20 12:14:01 89.115.186.17 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r snap277 ux+aznmIG+H+g07lC8cpVKJxKW8 FvcxcvKJAatqS10aA1bOog48F8g 2020-04-20 12:22:12 84.54.187.139 40001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1700 +p reject 1-65535 +r jmlsteele uyZN0adonu1/iviSung/vMZrNjU EGEQFjX4mYjbeI5o1FLg29OYyOc 2020-04-19 23:55:08 198.199.86.155 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=750 +p reject 1-65535 +r Unnamed u1EpbyWBG/FnwxM9m5xEuYYKOvA LJwsOt0PVq+kF+cGUCJFNtpElC0 2020-04-20 07:13:30 198.27.69.36 62942 55891 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=150 +p reject 1-65535 +r Assange010us u1YwlnYH2Ki2yoVK+VT+g3LRZio 7b38RH/K/wjTiiSZFrzmysC3Ahw 2020-04-20 00:59:23 147.135.114.245 9001 9011 +a [2604:2dc0:101:200::2d6]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7200 +p reject 1-65535 +r verax2 u12yGpCgIkbbQ+pGXT4VhRc/G9E mT+v6Vy6QB41CEnPvNO5RAqdwZc 2020-04-19 23:25:56 146.185.141.163 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=807 +p reject 1-65535 +r Casper04 u2D1uhE6C4tEt7N941Z/5WHpL3g dFJ/NMabCfHgxbnfE2BBQkh3zCI 2020-04-20 11:11:53 51.15.179.153 995 110 +a [2001:bc8:3fec:500:7ea::]:995 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8630 +p reject 1-65535 +r snap277 u3cxdfmLXyYv+wTxPnTmudDPHmU sVj5kgU+c98lDz+Wdq1W/Y10Jz0 2020-04-20 11:36:02 78.192.221.75 35163 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3460 +p reject 1-65535 +r cybercybercyber u3hZ0WkB8qZROuVR6x8SgJAELfo zJ7NXZjnULAJQ8R+4uVlg6Y91CU 2020-04-20 04:09:56 172.107.96.70 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=44000 +p reject 1-65535 +r thorus u3sCw+19V1qe6kShCmW0qiicEEo kGAhl8L4tHplx81lFMWACBJ/o/Y 2020-04-20 09:23:58 217.82.110.196 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p reject 1-65535 +r onionmatic u5xdFbw7d8ivXLxzP35UVTobe9U wuOnKY/BZ6hzJHB2XtQxWhVl2/U 2020-04-20 08:14:01 216.17.99.144 443 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1400 +p reject 1-65535 +r king u6PqrUXOu1L+teNuIfbJ5+3dZWs 4EPrdmjraQVsLFYzsooGF4sfLPc 2020-04-20 05:25:33 51.89.200.105 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16500 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r 0x616e6f6e u60yHWgsatppnNCDJpz7X7cc3uA pk79mfSLBTpH1fuOeYcwQamq2bs 2020-04-20 10:27:40 178.17.170.91 443 80 +a [2a00:1dc0:caff:b5::c623]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5120 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r motor u7u61FMmPXhuw0q2igYhQoiRA0U P0OORHdSjlCpUPDVXHM7juA2YTw 2020-04-20 05:47:01 217.82.116.18 9321 9322 +a [2003:cc:6f06:4703:bbbb:bad4:5326:3d78]:443 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4890 +p reject 1-65535 +r Unnamed u8MqirkXzwHWnmAxKzQVlNS/erc dmLli88dVhuVIjEGVDvWNrC7H24 2020-04-19 19:35:01 167.114.92.48 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14100 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Blazkowicz u9GxoiaVOWx13/M4qP96EoBKYHo yFL2iYep5HUd6KTbP2s3kSwEwgo 2020-04-19 19:56:35 178.162.194.210 80 443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p reject 1-65535 +r snap277 u9LpbLT9yOzrz9hZ/KxYU8ercEs w+0WxIoRTlhDDDNII6uyq9QAyaA 2020-04-20 11:56:30 90.89.111.154 34183 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=827 +p reject 1-65535 +r galqiwiRelay u9bdATrMKserHpi/aAR3lVuHLck Yhpi1TIl1nYVVNGDa8eSHFmmRoE 2020-04-19 23:09:19 185.5.248.186 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8380 +p reject 1-65535 +r sprucegoose u9j034/1xppqmJ24we4sp63+B1U mEVinWksMzKuChMoozQbpeiIRmo 2020-04-19 21:48:48 66.206.4.26 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12200 +p reject 1-65535 +r NovelThunder u9m64RMPnzPy+ESaLtZ/mjaFOGM yTpVwjXWnsjlxzhM45BiFxOfiWk 2020-04-20 11:46:16 77.58.201.132 9002 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=591 +p reject 1-65535 +r hanktor u94SwyD9HD/77BUgL0bVYg/BRE4 NcaFtXwKTIhw8iWn3uPEyXWkhA8 2020-04-20 10:28:43 178.17.174.79 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r partofswarm u/h2PFUfh6HMy2ZSu8CsM2v66i8 yEuetC7CApCOwJh6GQmlMoVRLBY 2020-04-20 00:01:00 82.196.11.10 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=760 +p reject 1-65535 +r MaudSuicide vAS5KXu3YSsCFiQMCQ4Nb1vma2c qrCCauzdQW70nJVTeViDXT/woLc 2020-04-19 21:34:18 139.59.36.56 9100 9101 +a [2400:6180:100:d0::40c:e001]:9100 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=671 +p reject 1-65535 +r franksToeKnife vA3qFrlrsQbUUtpegAHLUZ01ong 9DBE4+YIgbm/PyLtoRK3rHqjpzE 2020-04-19 22:47:06 207.154.217.3 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=287 +p reject 1-65535 +r BlackMesaAG vBI9t/YenbMfI7N79ioW2qEBD8k I/txREM4EB1wqOw7+EvpFXYTTa0 2020-04-20 00:01:10 85.215.88.244 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r partybus vBb4u7/Aj82+qDa8OF7aVn0joX0 5LTghCDz178f1JgAIKdq1aLvQj0 2020-04-20 00:42:34 213.139.206.28 9100 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 22,25,119,135-139,445,465,563,587,1214,4661-4666,6346-6429,6699,6881-6999,10000 +r OrgnicCcount vBcNbHnrCe8XGTRmCX0cd4gDGj0 NIYePCCYIGe9MCT4IcsyVnvuWlE 2020-04-19 20:01:24 47.56.94.159 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=200 +p reject 1-65535 +r gh0stx74 vB3W5cdT8blGwE3++L08kEIGfs8 ywvfm8XI1tvRsSBUBY1RhXhsBIQ 2020-04-20 12:24:27 178.128.93.82 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=494 +p reject 1-65535 +r h7nOq vCBmZYA9t8cwwloTFoiaTX57/wM 8fzRt6y3J09GdjwKuMcyTsJQRHs 2020-04-20 05:00:54 85.143.214.143 20 21 +a [2a04:ac00:1:8a99:5054:ff:fe01:3103]:20 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3700 +p reject 1-65535 +r node002sln vCONoQ9CfCFoX3ZjF/fglGlUuI8 nkgxk8tNRVqTCM4M0Y8H6dYUG3A 2020-04-20 10:59:00 62.210.72.150 9443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40100 +p reject 1-65535 +r niftyguard59 vDh0T9gmGLN+5qWmG7zOh4jVXj0 IUq2+ecGEE2LBKVnfYuTXQ9frks 2020-04-19 22:16:42 185.220.101.178 1178 2178 +a [2a0b:f4c2:1::178]:1178 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30000 +p reject 25 +r snap277 vDo9Q4sgqBAGYhTKDxUdclaFpg8 qdBFMX88ZTBra0EbOmVihvjpogI 2020-04-20 12:16:15 170.231.132.77 43343 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=95 +p reject 1-65535 +r WindfluechterNet vD/LtNps+54OB+ByknNOJPacNus kEV7ODObQWaMBEdFsMCGowwpYbQ 2020-04-20 12:45:26 31.172.31.207 9050 0 +a [2a01:a700:4629:207::1]:9050 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1380 +p reject 1-65535 +r Unnamed vEi2O2jtwBiHbPjdeQXtPK70nkU wCcxX5NSFC8c+AgX+35L6mkuFPM 2020-04-19 21:51:28 103.205.143.115 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=125 +p reject 1-65535 +r fs0ciety vF8AtXPSd8S/qPD7qkfgdNCZTBw RxgRtTe+9A7cWtszZMAoX9WE/ng 2020-04-20 03:01:15 81.28.206.216 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=912 +p reject 1-65535 +r hviv119 vGRQNmTJC0qdqRNzbDYd6tMTsTA JGKvRGyMMSDk7xlvheGUSgTcX9A 2020-04-20 11:42:23 192.42.116.19 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r A1RUREADY vGyW5HxGyNSWU7LiPZouphfIK20 3HZMLReeg1fcwzq6MPyoDOv1/Pk 2020-04-19 19:55:08 76.204.63.172 9001 9030 +a [2600:1700:840:c382::3020]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r Traumflug vHHdktU4cw6sPryPJ5LIy/Ziavk HmfngaPBIYwfHSF0vHlsUGSfX5I 2020-04-20 06:36:12 109.193.51.152 443 0 +s Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53 +p reject 1-65535 +r smell vHfExvh29uakuuOVSQvfaaHKV7c 2nbje5dRRcVcfUeGJSYIx+knVNI 2020-04-20 01:20:31 205.185.115.162 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r YagaTorRelay vHrPrASFTHcWfH1mt+RxMU7YxBA rSC6NyP5wX3VBFd6NmHBUmAmO9U 2020-04-20 09:27:49 144.76.75.184 9001 0 +a [2a01:4f8:191:93a2::4]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12800 +p reject 1-65535 +r freeAssange vIBpvpsIQ8FxCBihUFXZA2Vs7OU 08QztJyN5reWz/P8d4BwVzJiFbs 2020-04-20 08:43:35 88.217.140.222 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3 +p reject 1-65535 +r deluxconfig vJNaXiL3ZnZhQvf1d0CLrZBwgE8 GZtqn+fxjqzi8sVei3mOnHspPq0 2020-04-20 10:36:10 38.102.20.41 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p reject 1-65535 +r oenx vKNfcMsOelg/xuy4P3VbCD6eLfs snxEWcX5WvjeqdmW0Up5LbNGdDM 2020-04-20 09:52:55 149.28.183.149 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=302 +p reject 1-65535 +r REDACTED vK+ZcVybZ/4JiN18SwfiYuiYoKI xJ0nJcOigGZCNRW8Vh4E0rBPWPs 2020-04-19 23:56:43 85.119.83.78 8443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=200 +p reject 1-65535 +r Marx vLasMDppp+h7stbz8ToMDwpsk44 NwI+U73S8bWawUe0mNk7iP5Xsl4 2020-04-20 09:10:26 217.12.223.227 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p accept 53,80,443 +r SympatheticSuit vM+4TBhhCSIVx4yCK0CUBg9Q6yQ pJoWQp+RjnGHc50fqnLe91aDo4Y 2020-04-20 01:59:53 213.144.156.186 9001 0 +a [2001:1620:bba:0:96a5:35e8:267b:858a]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=629 +p reject 1-65535 +r rillette vNLwOfyLjx0zdC5y4V1xD3d/Zk4 NKzI+Mv3eb9bo4n7B7HGRyrOip4 2020-04-20 03:20:16 51.91.100.49 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17300 +p reject 1-65535 +r niftyentry117 vN51cluSdzi2/TTqLXj0+ne5mEg s3QXaJMTxZ7oF+pS1cpOkDUh0tE 2020-04-19 20:26:11 185.220.101.117 10117 20117 +a [2a0b:f4c2::117]:10117 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23200 +p reject 1-65535 +r MyFancyTorRelay vN8Qdc+BtjbKlE0Daau8jvEuI4Q Ks00xqg3KvMJWOBWjEeS9DGWS0A 2020-04-20 00:00:14 192.145.45.56 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10800 +p reject 1-65535 +r Unnamed vOD95oEXN1vzdAjnYcub3iYTgAs CVPn6PBvl76Jf76Rb0iBITxIZ9c 2020-04-20 04:39:44 165.227.161.60 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=944 +p reject 1-65535 +r 0x616e6f6e vOKFESBZXnbjFkVjP1/0dx0gl70 c4L1oju5Kb77KxDmFlE1+oUr5VQ 2020-04-20 00:00:39 178.17.170.88 443 80 +a [2a00:1dc0:caff:ef::96b8]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9890 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r MalfunctioningEddy vOhkFbLsKORJ02D2MmR+ldCPg8k dyYBWajDhGbz9c6427AFl+ViSM8 2020-04-20 00:30:57 98.217.124.239 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=884 +p reject 1-65535 +r gurgle vO32wZOqaHrkcbiiLr9rxXwtKF4 1hZc14THFJqBVCGuULeF3f3Sezk 2020-04-20 10:35:07 198.96.155.3 5001 8080 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r EldritchReaper vO+QgZWAXgPpLM/macSHOOVWucU QglLqhz2VBi73xkS8qXe2Ii9V0U 2020-04-20 07:59:57 128.199.55.207 9001 9030 +a [2a03:b0c0:2:d0::158:3001]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1210 +p reject 1-65535 +r DigiGesTor5e1 vPVfhl7m7xfiXv6vhRvEKfGQuF0 FNdJ8lgGWEOF2bxhkCe6WCGptZU 2020-04-20 06:45:22 195.176.3.23 443 80 +a [2001:620:20d0::23]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29300 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r metricspace vP5UjqP/igs2EHecI4NQEkqO1t4 M+DA/+9HJGYWxONarYEw4ndGD3k 2020-04-19 22:34:19 108.31.38.18 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27 +p reject 1-65535 +r pluto vQINjts1XFNxmUIKryZJ+gRTbJo 1xeSSJVnvwDxksJdeUQahnP6+lw 2020-04-20 05:27:27 167.86.127.130 443 80 +a [2a02:c207:3004:406::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18000 +p reject 1-65535 +r snap277 vQLQlsiuHFDH6BQ9WPrk8GbwFEk VBkPVDOG0NjIMLHdqO2RHyOXhvM 2020-04-20 12:17:17 84.253.245.202 40597 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=861 +p reject 1-65535 +r danielsrelay vQLynsjCl0WxDO78OYFbsMjWhaU ZYtQNbeTweHudZtcX7T1SAJ13r8 2020-04-19 22:18:44 62.171.133.250 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16200 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r snap277 vQsfx1xxtDyHwKPEFkFFKLbeED4 lPMHOV3jTG6nKpiqtdvAAuxJMtM 2020-04-20 09:24:01 92.88.13.208 37061 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2130 +p reject 1-65535 +r 787atxdotmeonpi4 vRh88bRKhOx90bwqycT33iPRZhk bk3Q1vbQicxPIS1ffX08L1nYFGI 2020-04-20 04:05:29 72.48.99.187 9002 9034 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=410 +p reject 1-65535 +r Megatron007 vSapL8ZotzVtAsaCCx4QzQIJkA4 oQwnQHR9L///XI/M69dDADlMxpc 2020-04-20 08:14:29 24.132.56.47 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=78 +p reject 1-65535 +r TorOrDie4privacyNET vSo0reTmA6Jy+q0jrvOJgBuyI7s 4ZAWVrRNw3VWVUA9jFN7m6OC+ZE 2020-04-20 03:51:45 37.157.255.118 9002 9031 +a [2001:4ba0:ffff:15::3]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34300 +p reject 1-65535 +r EdSnowdenIsAHero vSyq9sqYLYsL9zx+o+JD8wrp8EI s46kkNdb8DeGKPtj4f3h10wmyF0 2020-04-20 04:55:45 51.15.113.200 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14000 +p reject 1-65535 +r netcp vUASt7BeTglTrkbvTY4mXnmxYn4 JEScavFIJf5Wu8b7T6LjLbSZ8+Q 2020-04-19 20:40:20 5.45.97.225 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=682 +p reject 1-65535 +r donate4Crowdfunding vUFyUzw/cnGrzNnwV+Bv2RVHxCs dsmjEnkZYELVCt0tjMwv1wrNOsk 2020-04-20 11:32:09 193.161.193.99 25565 80 +s Running V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=1 +p reject 1-65535 +r mkg20001 vUOVQMe4Y2e38nnJzdS9YBqFB4c Axyt9MC2DMPIk40W0F0SGOtnL/8 2020-04-20 00:09:32 138.201.254.83 5235 5236 +a [2a01:4f8:173:2552:beee::f]:5235 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=981 +p reject 1-65535 +r regar42 vUxkdQgWL1nLROTfwcKyuKk4fMo YgiD/ylyckjb6eQW4fGLYvEs7f4 2020-04-19 19:52:19 62.210.244.146 9001 9030 +a [2001:bc8:3680:4242::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=73500 +p reject 1-65535 +r LDNtorflashLDN vU1MiHAo9OXbysUYLfilppJP4AE NLr5GrQZh+7e9tt95Qwx8FOMTQo 2020-04-20 08:14:21 92.40.26.191 443 9030 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1 +p accept 53,80,443 +r lab6hourietcom vVIfeUuvbCm4QXoIMoPRIOdYNk4 YxIsufQn6vqfpVuNzRWKAzUnjbY 2020-04-20 05:52:49 165.227.136.69 9001 9030 +a [2a03:b0c0:3:d0::5408:f001]:9001 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r Schakalium vVUsFl4u0oh9PxzOnP8VXdothuY KIIJSmq4tjXh1XNVxKE+pXZWhyE 2020-04-20 06:03:12 213.141.138.174 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3320 +p reject 1-65535 +r HouseDimir vVahw2GW7paLKjRjzNZAGbTlJtg IdTdch+VG70WpVbnnOcIPxbmcFg 2020-04-20 02:20:55 82.181.91.118 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6810 +p reject 1-65535 +r maatuska vWqCklXLCOZvvn03SDY1huRrOBA 9YF2fGdqcJnJLmr4lqxau3/2DxU 2020-04-20 07:16:26 171.25.193.9 80 443 +a [2001:67c:289c::9]:80 +s Authority Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r bonjour2 vW//GtWoio1Dhw1D7ERQCBtLK7o C1ABwRshu4ljr68QDk/FL4NC8Eo 2020-04-20 11:16:34 188.138.33.149 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37000 +p reject 1-65535 +r axiomaticbsd vYFVwI/cRGtnGR24GovUTlNWdlA etLtJyFuvru9JU+EemnvwHNkyKQ 2020-04-20 03:00:50 205.185.125.145 42204 32903 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=314 +p reject 1-65535 +r MegaTOR2 vYOajhjpfghEMNk0K5S1Z2+Bo3M GQU+7uoKca7iZPmQcKxcdIf4cZM 2020-04-20 04:44:15 91.220.145.100 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2120 +p reject 1-65535 +r frigg vYctC5tHrwD+tE3KIShiv4WtZmY jY/XkubNRfCnGDFWdAbGLtoU67o 2020-04-19 23:22:18 185.134.28.79 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=919 +p reject 1-65535 +r miou vZO+6MUcEpI1Ngp512zmJW/5lFM eIS4SeGr6iIZiUL5DDHitqxqfdY 2020-04-19 20:15:39 119.59.110.192 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=280 +p reject 1-65535 +r GaladTor vb2UL+g++BQ/1vvlJLtTa+eYSsM H3befp0JCrIU/mUvttjq+7ZU0Dw 2020-04-20 05:20:42 77.180.67.152 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1070 +p reject 1-65535 +r cragg vcEXTHlLVWxHt8zmH/5l+xZye2w wQGmOVccKkn9qfs8Ze5BPDeWHsw 2020-04-20 09:07:48 190.10.8.50 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=140 +p reject 1-65535 +r GIZeStiC vcUm2igPoARLhMXrLcCmfJvhK6E bbNA7dSy2pe8Yk8ATUpnAb5vJ6c 2020-04-20 09:01:00 198.72.123.109 1220 0 +s Fast Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=249 +p reject 1-65535 +r ibksturm vdlLvH1BRHFEgW4t0xUMO/nW2UE 3Piihi1TZw2u0ICP4U80sPk1kdY 2020-04-20 01:49:05 83.77.85.7 9070 9071 +a [2a02:1205:34d5:5070:b26e:bfff:fe1d:e19b]:9072 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5300 +p reject 1-65535 +r TPRSVM01 vexWW4tePcy1fk58TCRe2nF9IIc NGHO9x8gEBRQ02q5YQ3jO2ZgRfo 2020-04-20 12:16:05 193.36.116.234 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r Endernet vgH8K+hKO7wtOZnL+olnvaQwM0Y Oy3XtBhKHwh0liB0KhFTd4yqQ1o 2020-04-20 06:03:31 109.108.241.143 9001 0 +s Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22 +p reject 1-65535 +r spinat vgrDtmkghTCMp2b54Dc20cqu1vM qngmzqcoFza3vuadVDUHjiIUo30 2020-04-20 01:16:27 109.70.100.18 443 80 +a [2a03:e600:100::12]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=63600 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r 123456 vhwQalcOxyRAFZ6tYZLXYaLoOow uhDyXvuXll2xfJABlbFHY+dkVGU 2020-04-20 04:18:28 217.246.131.219 9020 9021 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p reject 1-65535 +r ZogZog45 vjlOKNznyuGPqfGDIXceIQL59dE meRE+pYUjPX0rj7YNK3+TbI63v0 2020-04-19 19:11:14 90.46.62.49 9003 9032 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r HeeJin vjuQJKDrvnL/ISl5+2lfxhF+HvU lLlWdUDAjTJ+B1xYG6C/riDyZII 2020-04-20 12:41:18 223.25.69.206 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=605 +p reject 1-65535 +r wewillrockthatworld vkN9zejd7bnu9lrO9IrDonYwv7Q rEGUg3iKieHWp+d0RskYQGQM7Lo 2020-04-20 00:43:06 78.46.64.245 9001 0 +s Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p reject 1-65535 +r ClubHorizon vk8y761ZGTKWOguocPkTo8v+3T4 dorYD5FV4tkJPBATk2OVVF4kxtE 2020-04-19 20:14:11 103.9.76.92 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p reject 1-65535 +r TorqueQC vl0U8Ad+fKM8nI01eoyeXxj7L5A 0/gppzOcV/hum8L0yNbg55HY+MQ 2020-04-20 07:08:42 64.228.189.121 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=504 +p reject 1-65535 +r VTR vmV9XyV7iaFqJzDaY2NEO7IPLSQ QxO9bOF+MFzgHgK3ztUbjaR5ltw 2020-04-20 12:31:47 80.108.230.166 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5510 +p reject 1-65535 +r albin vmzyaBS9HzW3b+V2cC26lifugjc 3WYTcsw6G/vNmCtspS3ovjvcZDU 2020-04-19 22:18:53 141.255.161.166 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12700 +p reject 1-65535 +r king vn27xW19h3JdI4JMOJqoOBaFIlQ WO6hGGE0nIA/J5ewDGcyAGL/OVU 2020-04-20 08:34:10 51.89.200.126 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20900 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r MountainMajor voX5Leym7n0GeZdhnQ1/TUH3mdc UvltqZfPXrT+RqpJTrtv3kGZwBw 2020-04-20 06:59:46 216.239.174.171 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9970 +p reject 1-65535 +r Datalove voc3WX8ua0+AWJMgLJNRJYKakC4 cCDN3FqrQynovD3+QvlauXVpAdU 2020-04-20 01:48:21 78.194.59.118 9001 0 +a [2a01:e34:ec23:b760:5604:a6ff:fec4:58bd]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34600 +p reject 1-65535 +r fuckdaP0P0 vpsS+qt0KYQtZD4jCDkOzYlh4KE RpNkNppUJy9eVh2EqaX/pIrfqm0 2020-04-20 05:22:47 136.243.131.46 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=98900 +p reject 1-65535 +r AmansAequi vqfAWOzSe+jnOnbL4TqReoMZJoU 6q6GQhn7aXPej6fPnD2NZLogGyk 2020-04-20 08:34:24 85.145.193.79 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12500 +p reject 1-65535 +r sucuri vqhdEAZY9xlR7DUvrkOLYXkzbE4 fDWArlLBwpVRCZZbriFtx6jL1pQ 2020-04-20 12:36:24 187.181.170.26 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=195 +p reject 1-65535 +r TOL6 vrpSrIkEXW6taOl33z+YvPgzCq8 xdc8+MCPbwcLySn7yDLplSzLKU0 2020-04-20 09:53:10 95.141.36.127 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p accept 194,389,464,531,873,994,1194,6660-6669,6679,6697,19638,64738 +r Unnamed vshUJL1COXXhHtBb9P6rOnUmUQ8 s5n3YHziNzC5aKPvkLiX/xm8cJ0 2020-04-20 00:45:40 220.233.28.71 41623 0 +a [2406:3400:242:1::f010]:41623 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=173 +p reject 1-65535 +r himawari vtDIv0HBLk1WgfzS/tZZnZ89wSw nZGFFLW9i/+kP/UT+INptxjvxqA 2020-04-20 00:55:39 45.32.61.197 443 0 +a [2001:19f0:7002:22c:9012:56b4:7e17:27a4]:443 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=131 +p reject 1-65535 +r Wardenclyffe vtPHMIdJWororaBMVhYhCOa0oVY 2FsBihlgr755CoakPxcWT0bZSW0 2020-04-20 01:01:15 51.15.111.29 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39000 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r yuicat0 vvZdLKZRteSEuw49ox3RkpNf6x4 g0mELRyfx6hA2eAspO+fJZ5Znz0 2020-04-19 23:45:45 71.19.148.20 22 23 +a [2605:2700:0:2:a800:ff:fe64:64ea]:22 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2980 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r BatmanIsAGirl777 vwE3KgRC7xRTWWektKo5pnHK87k fhDaODSzSBIE+3g5P/1+YvSacAk 2020-04-20 11:24:13 45.140.170.88 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4950 +p reject 1-65535 +r blackpinguinDE vwkGKjxOcocyaMxoWYEy3zQx9D8 SyDk+Phof+oFCxfqvonW80jOIX4 2020-04-20 04:11:59 46.59.138.80 60002 60001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=906 +p reject 1-65535 +r quadhead vw+1guN/c4zTPDZREl8ncnBbuOg 3L3KBJP/fhCf58Gw5MdI0pT3sbw 2020-04-20 06:20:35 148.251.190.229 9010 9030 +a [2a01:4f8:211:c68::2]:9010 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=140000 +p reject 1-65535 +r tachyonbeam vxTsTtRsitVvu/WGlNiPAY8xam8 uOqVMWoYn8P/Er/YPqpICDITSpc 2020-04-20 11:12:08 144.217.166.65 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7900 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r erwinsrelay vxp3W3KC7DH8r444/JPR/sRDpWY x3rvuDojHvuTUswB7BvHorv7eDI 2020-04-19 22:24:22 82.77.238.6 443 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p accept 80,119,443,6660-6667 +r DigiGesTor4e2 vxtmLR2k5V9wDBMKxYV0tH+3644 +F797V3kyYDVvXcQdMRVXRlAwRk 2020-04-20 07:35:06 195.176.3.19 8443 8080 +a [2001:620:20d0::19]:8443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29600 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r cel vykHfZDdZdixWy38h20lx25QV/s fp1lXB6+oMmORBC52xtctValBiQ 2020-04-20 11:20:57 62.113.227.124 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7000 +p reject 1-65535 +r CocoBridge vyv5AWQ9O4vBvB9icFrGYepeDp4 eIBnGHSiRcdGYk68hf7DMvlO1pQ 2020-04-19 22:49:22 109.15.43.86 20 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1430 +p reject 1-65535 +r tor vy4uwa03EeTgaMnOhVaKlgvcWf8 CyE6zALzr+ygO+pJ0vr4yYpnSm0 2020-04-20 09:35:52 79.137.33.24 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.10 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2880 +p reject 1-65535 +r TommysTorServer vy6njk8CzFIeZ4Wo7EFpQELIh8w 5sYo4eOK8AO9oNiC9Ajd8XMC41w 2020-04-20 07:00:31 78.46.63.113 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=3030 +p reject 1-65535 +r snap277 vy/y1WK5+ev+DwluO2uQKAi0Hgo MXyWmNK3C46vZ5TuXkTYejD5VQc 2020-04-20 04:48:20 84.72.101.179 33415 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4900 +p reject 1-65535 +r HarryPottor vzdEXqKp89BPS4ffrGJK7yG1WdU MJ4sX+SbFw+qAJiT+g76QDa9M18 2020-04-20 08:10:33 5.9.116.66 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44900 +p reject 1-65535 +r WodRelay vz6bl9POQJn3OqS9cMoUtjX6POo wKLikJXEzRSjJOwnEfCQjWyn9P0 2020-04-20 09:05:44 70.120.126.172 443 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43 +p reject 1-65535 +r tripoli3 v0EUw8TMHoyInJ0PUiU7JpII/zs Dt0NNMgIVJv2TecpMunZUkj/xiI 2020-04-20 05:56:39 188.150.239.156 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18600 +p reject 1-65535 +r skullcactus v0WRwWf/Abiq4nSc2dBJE71nQ8Q 8Ea3eOw54Epl01QXPRu63pWts1w 2020-04-20 06:39:28 46.39.254.189 59001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=711 +p reject 1-65535 +r LupusreginaBeta v1Dgnu0luChhz5XhqqQtz+9T5dE UG13ufWmG/XayEH6LCGehl5ezDw 2020-04-20 00:11:24 213.112.89.78 6881 6882 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29900 +p reject 1-65535 +r Unnamed v1wMXTocZlT+ul/2awBzTfBz21A zLGjAetwrg32vO7oRdGc/IJbqv8 2020-04-20 11:25:41 142.4.209.31 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=14100 +p reject 1-65535 +r CryptoHouse v23cFomZDSr4LnMA18xjKEXW8Uw TXjF4jbyH0peXDhbsZ5ZiXj+qT4 2020-04-20 01:15:50 185.228.138.252 1080 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38600 +p reject 1-65535 +r lenny v2+EFaVyWb+3yHjElWxon7fssko ozyFse/DM0oF2QasNiYVQTjPs0k 2020-04-20 01:50:25 91.67.189.235 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2490 +p reject 1-65535 +r Assange018us v3FoYjrU/1QqnpQMTM9XXZvhYyM iAap4uD2yjoLBZF3WlV5ZZKf/N8 2020-04-20 04:00:05 194.242.3.16 9001 0 +a [2602:fe90:604:1::8ff:ad04]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4500 +p reject 1-65535 +r freeway v3NfZpSB7hzMNI8HMVUckz0eIng SQdTfGC79hgnfw5d2buXpDqVeCs 2020-04-20 11:01:05 212.47.233.250 9001 9030 +a [2001:bc8:4400:2b00::1c:629]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28000 +p reject 1-65535 +r covfefe v3opxnsFAs8wgrEzK7+8q6rFUNU Zt9P8LXHF+PWuMd1Gcjbf1PL8Qg 2020-04-20 04:01:49 77.58.250.110 9001 9030 +a [2001:470:5179:1::233]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3010 +p reject 1-65535 +r snap277 v3tSukloHQy797cG0QgZ7uC1dH4 pvMFOZveTU3fcG+PAMc0kHtI0lQ 2020-04-20 10:23:14 78.127.39.75 34161 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r weepy v3v8swlvyB+9C3raZhZEMex/0Rc IjgigtiMRaxNXUGHDn/1tfjL/T8 2020-04-20 02:39:30 178.132.78.148 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29000 +p reject 1-65535 +r biafra v5TaHT5bYWcQPckmCZKbJvJfZHU fnRJ/mOKBd+e137+uIUq4LqnPeE 2020-04-19 19:12:34 104.131.137.159 443 0 +s Fast Running Stable Valid +v Tor 0.2.9.10 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=348 +p reject 1-65535 +r stalag v6kF6hDf1Uo4oMEZ+uABgt5MFzs /JrkdybU0k6vFLM76rth7FKT2Ko 2020-04-19 22:28:26 91.223.82.154 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48000 +p reject 1-65535 +r Yggdrasil v7FLmt8fGeWSWMrn/NuqyZN7exA LU2lAgqLMRO0wk2OdFxPy75kIqg 2020-04-20 09:39:31 51.15.118.10 443 80 +a [2001:bc8:1820:192f::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24400 +p reject 1-65535 +r niftywabbit20 v7SvHneoNDQSgAQem2CMQHT1UTI iwTUOLyDTm8ZT+kakVQciroUEk0 2020-04-19 22:15:48 185.220.101.160 13160 14160 +a [2a0b:f4c2:1::160]:10160 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27400 +p accept 80,443 +r SEBO2000 v7qyLKMfbCNExp4F2uVbF4KtejY VuT6+dFbZFVK9MOlXIIqzCqw1Y0 2020-04-20 06:36:32 84.46.79.141 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r ncbanerelay v8EwXIs35RYcLjcTXfLU5TzDis4 pxTeGJZnXCxjMcmTQPFYoHLVawQ 2020-04-20 10:26:11 188.68.46.164 443 80 +a [2a03:4000:22:62::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=12000 +p reject 1-65535 +r Torrific v8Luv+Map4KUmqfUEARr8o6vicg 4nriD6ENIAe5hQREiGrLTApKuok 2020-04-19 21:04:53 108.18.247.109 443 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5280 +p reject 1-65535 +r tremor v8RzQ0IgnI0XKqzCg3UBFvdDWcY yZMMCaO3HJga0WIyfJHzofaRy/4 2020-04-20 05:51:19 185.100.87.242 9000 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed v83nxE3I8iIhaqz/RtPijXItMtM k9I9naoXtDSPKVx2bNwpLlswDww 2020-04-19 19:58:35 62.80.227.49 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2800 +p reject 1-65535 +r FOO v88Pvfqtg1zhGhIPc0UfJ7cTeq8 pTTSY5hz922TyvSY/zkBb9IbGHA 2020-04-20 10:11:30 178.175.148.37 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=12000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r joaobiscoito v9DdvJKddSt8WCMyXa4eA8rHGuc vlrMngRetSehrtxVg0PiNv9fYmQ 2020-04-20 11:12:17 177.189.180.113 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=687 +p reject 1-65535 +r ILoveYou v9J27Ek/PK3JA4klV60KqVYKzeY rdIYldVVlyyKxv1z2g8gaDHd0b8 2020-04-20 04:23:03 205.185.123.63 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2010 +p reject 21-25,119,135-139,445,465,563,4661-4666,6346-6429,6660-6667,6697,6699,6881-6999 +r Zwiebelring1 v+yf3NFc3FT777S8GLalfNGGs84 C7Hs3eOctLmkII0qNjg91wT48h8 2020-04-20 03:47:30 85.214.112.12 9001 9030 +a [2a01:238:423b:b200:e32c:fcf4:8678:d791]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11300 +p reject 1-65535 +r snap278 v/GKK+CBQEC4MF3Q40D54KiWQDU Usq69cUdQNMu45sW/6Z9A7dody0 2020-04-20 12:43:20 78.113.211.208 41655 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r IRON wADUcYatxcK52Qov+sdVHFpfjQo WtVqaTJpSvGe+RKtq+7Xhc5AdiU 2020-04-20 10:39:16 179.43.167.226 9020 8020 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed wAXwyzDNVMtF/wjtFRURooaxt84 B9qUfSQUDuBgeAOmTZBIsWSO1D8 2020-04-20 10:54:31 185.86.148.79 46140 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p reject 1-65535 +r Unnamed wAfB+HHtEDmc3gAX28ukvT++wvc 2NB4ZxkcI58V3Qvm9V4+/WwaP5Y 2020-04-20 11:11:49 51.254.87.76 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21300 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r gsrv wAmE6IyD+dIX6HvdZ8XqseM9b0U I/p/oDPMU2n6vJUmSqbvpnd32bQ 2020-04-20 12:01:03 84.98.214.122 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r nodemaxxxline wAprdUGpSRYpzurfEh3Ka+vR/EU g2lD6gmKrA7nqcSARAw5Lq2Q9j8 2020-04-19 19:42:44 5.253.60.240 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=950 +p reject 1-65535 +r niftybankvole wAwowrGn2AOFF2Js7Km8sjsKMdI 4ZsgPlOSHfgzkklSxt6/EmgfEYI 2020-04-20 00:13:37 185.220.101.130 1130 2130 +a [2a0b:f4c2:1::130]:1130 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33500 +p reject 22,25 +r Hydra7 wBP2p6Ipf6TNANBe9KHFIiuESyU oCqeVF4z9LJQwJ17nxeOAcNDyQs 2020-04-20 04:02:54 51.158.171.35 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36700 +p reject 1-65535 +r manipogo wBkv9D53clAIQXX05ZrBuiKQzjg Welu121JYhmw0BUdZNgO14aCUIE 2020-04-20 01:28:37 192.160.102.169 9001 80 +a [2620:132:300c:c01d::9]:9002 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15600 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Alexandra wCXYULNwhn3XBwREllSeEhjUWrw jhNoidO8Gn7Kb6+CtphtxtsC89c 2020-04-20 10:15:53 187.178.75.109 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r TransRights wCa4/KphW58MKI4ADKMh1LDyLvw vl2TOcvtRKPUkwML0nzT3KjUrFc 2020-04-20 02:42:02 95.217.142.228 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22800 +p reject 1-65535 +r nobodysawmedoit wDOWg6qLzRGySY0Zf8frnQd1if4 h26uXNTCgBZ8Dmqr1C3fPMGIylY 2020-04-19 19:10:39 82.196.8.13 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=93 +p reject 1-65535 +r C3WLittleGem wEhQZz9lWpH1rTwG4eW5BWxfouA b5w59A84cvbPK7TGZsh/0SHVpiY 2020-04-20 11:29:04 45.84.253.28 443 80 +a [2a00:11c0:66:1:45:84:253:28]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=799 +p reject 1-65535 +r endthefed wFbZiHyZno2dtDzzAOH3On4NHXQ tFmDMwOHx64UiehcTMvF04PKRPU 2020-04-20 10:49:45 46.165.253.199 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2020 +p reject 1-65535 +r uranium wFf7XgHUpZpKU3pkgO282WSiiXQ bXoLk/b6z09uQycUg0CZd26Ih5g 2020-04-20 09:15:04 178.17.170.242 443 80 +a [2a00:1dc0:caff:161::c496]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14000 +p accept 20-23,43,53,80-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r cdustueckscheisse wIBJE7tDHWTgYh5bzl2pfWJMrNE uzgtfL2Koi9j4VOGC0xl+q0e3xk 2020-04-20 02:38:29 45.83.40.96 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3200 +p reject 1-65535 +r schmaggofatz wIDRIAwdnT5Tjvd3pNwFx9p3v8Q y8LBxvTn602LgoYbYl3s64f2oVs 2020-04-20 06:07:35 178.82.241.4 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2040 +p reject 1-65535 +r PhantomFreak wIM9OV6B8Z7F87vGDYlHC+LxUZk tdiZ6QwSQAys5uvbLu3Pk9Hc4iY 2020-04-19 22:58:01 23.129.64.207 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8680 +p accept 1-65535 +r niftyvolcanorabbit wI3klljls8/G8qlStFPEtgjJoWo 1sWIaUu32cGMQLlZi5HO0oLwNRQ 2020-04-19 20:27:21 185.220.101.29 10029 20029 +a [2a0b:f4c2::29]:10029 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32100 +p reject 22,25 +r imANiceRelay wKD+tkc/PzGCK7jwCASXGMoBdic zHnWiHDKXKYYvnZn6vcDAGmc73A 2020-04-20 11:26:08 37.139.22.180 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=449 +p reject 1-65535 +r 0702c2a95433 wKzj1kXjYZ08WYdfowcOqshimhs FgCFvTpamgZ8aLYzENU8Eb1xn8k 2020-04-20 08:14:48 51.81.253.211 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r F3Netze wK6robVVGf5ThKpE0DEr6YIW2nE DLsfaQO8eTMZ4Y89w84k40wNeRQ 2020-04-20 07:04:01 185.220.100.242 9000 9001 +a [2a0b:f4c0:16c:15::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=81800 +p reject 25 +r snap278 wK+LZVTLpKpCwPy3QHzJjTDECCc YzQeK8rIRBxChtNsndjvyeTxJG4 2020-04-20 05:23:43 188.63.114.134 42699 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2090 +p reject 1-65535 +r twofish wLq5LdGP+D4xXMEUI49xz254LWY 0IrtCE1NvQppjz62orNur1UOh6U 2020-04-20 08:30:33 164.160.129.5 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=170 +p reject 1-65535 +r Dystopia2 wL5FViYIRuS612COHlrf+AiSwow 1CiTPW83+j6qAbDQ3sUXqES3zNM 2020-04-19 23:43:36 45.77.226.49 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=383 +p reject 1-65535 +r SlurmExit wL/AoDQb0Ck/CT3saWa5kDijG3k O6RNI40MHbul3U56GCMpI3aqI+k 2020-04-20 02:41:18 178.17.171.39 443 0 +a [2a00:1dc0:caff:9e::8e67]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p accept 53,80,443 +r toritounam2 wMTzOQRuuCSZn3EdF4Ry/fU75/U bPlI3ZJYEbWutPmfiYZzLh+CgdU 2020-04-20 11:51:17 132.248.241.5 9101 9130 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5000 +p reject 1-65535 +r RattyRelay wMu9F/hIyPmkkQSpbbSYATsw8U8 8LQPO92hp5Wo7OMmyzfjIj1s4nQ 2020-04-20 11:42:57 85.164.38.214 9001 9030 +a [2001:4643:975a::7]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25500 +p reject 1-65535 +r RichBoy03 wM7/17vBAwSQluqJUGvqtCvJxco f6SaOE84apEeZWWN2cJjt5PPgeQ 2020-04-20 02:55:15 109.136.79.244 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=780 +p reject 1-65535 +r snap278 wNlEdH0KTysmy8vLjV3PrBJWIys hKAtqLY9bJNIVWumNALPge5CK4o 2020-04-20 06:55:00 86.189.130.239 38279 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2800 +p reject 1-65535 +r mitsuha wNqq5e5GG74TlF/ktS8yq9xrw3Y dhynTlNKX6wv2qK04NJu2W2Yk8E 2020-04-20 01:52:15 51.15.246.170 443 80 +a [2001:bc8:47b0:1756::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14100 +p reject 1-65535 +r thauriiya wORGO1PzPT8m0RJ8iG7o/l41/Ds s16L/pyRM1KgrOdRqAhpcYUgRaM 2020-04-20 01:40:51 71.127.182.175 9011 7013 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11 +p reject 1-65535 +r FreedomForParrots2 wOamZwZDhbnLWmhc6wa4Xt2mqgA XhZ4MvuS96b6M04dvtqxuLpPHyA 2020-04-20 07:00:39 77.123.155.45 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14700 +p reject 1-65535 +r niftybephomet wOczShgRhKvQdpjQStwZ4V4+4YQ eWwbgsUVZAjyHd4KYmYmOfeIDRQ 2020-04-20 08:52:46 185.220.100.244 9000 9001 +a [2a0b:f4c0:16c:9::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40900 +p reject 25 +r TorThdNinja wOlAUxl/cewoMrquFXkaGvoJly4 QKspoFwjfcXdrjqjRNQ50wqyqvg 2020-04-20 11:42:43 51.255.45.144 443 80 +a [2001:41d0:302:2200::4673]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r rittervg wO2wjXVA0d08ppgJ7RfZefUbZuM DXBQh3tAfw+5xP6Y+i+Mgxihsuo 2020-04-20 06:39:32 97.107.139.108 9001 0 +a [2600:3c03::f03c:91ff:fe96:d927]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3010 +p reject 1-65535 +r noname wPPA74HYQYI3mqTKWtWlKJ0BEUU eGGIfMCr/CInjcLcawQYAIY3IlU 2020-04-19 21:03:15 195.67.191.210 9000 9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9580 +p reject 1-65535 +r flies wPUIraFK5+qfj2ZQrxSbjfw1tZg hOUHPSenytx1vo/zTxFPgNNMr1k 2020-04-20 03:57:29 89.187.143.81 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17100 +p accept 23,43,79,81,88,110,543-544,563,587,706,749,873,902-904,8443,8888,9418,9999-10000,19638 +r BobsHouseLU03 wPt8fthHiueIRrXFWF3WLhYiIuE WiZLUtzVNNL8+z9rezg+9zVv6qU 2020-04-20 07:01:18 104.244.76.149 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25000 +p reject 1-65535 +r Mognet wQLlNKHSbtKESs5q/URKC9SAAWs wqVM7fEZ0JWK1mXgvAlRk8tfk34 2020-04-19 20:27:12 97.93.100.43 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=498 +p reject 1-65535 +r niftyentry84 wQ2qjIowJf6S4cM34DCVBTbejeY HGqZJIgObCyZniQ/1FOncbftSkg 2020-04-20 10:51:34 185.220.101.224 10084 20084 +a [2a0b:f4c2:2::224]:10084 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16100 +p reject 1-65535 +r Unnamed wRrUKgTsqqOYgqYxQiSvXjhHqjE LEMFpeZSWaGbcEZCG/bAslLstco 2020-04-20 01:05:17 185.128.41.82 17497 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32 +p reject 1-65535 +r SuperFox wSiFWtVaGyMlivzV1p4PtrWKop4 1gdrJabN7/fy/xcMDXRMDwrKtvk 2020-04-20 11:56:41 51.154.53.96 9002 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7890 +p reject 1-65535 +r taine wTDdkUqNDkhOaNzGgbQ0oLoETZ0 ESWqw6ybqItptMis1mlaZV/I3H0 2020-04-20 07:58:42 130.193.15.186 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13000 +p reject 1-65535 +r Avvariik wTpNgJCGsr6tfe/hCPfty9JLpvg EbV6Y2kv+cnpUMkcK5bJ06Rl8Wo 2020-04-20 06:00:00 216.154.42.49 443 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=262 +p reject 1-65535 +r snap278 wT3fNTprJBDdNWCsreJZdMTocng v87E+WbHvbIgxJc8gTTik9qOEXA 2020-04-20 10:21:09 190.155.227.207 43275 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=170 +p reject 1-65535 +r myNewRelay wUABbUnMtnOm5P4ZMpOxoK5EayM UyPgpyC3XLYlc9DPqQLKlMQZrAw 2020-04-20 01:25:42 134.255.247.113 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=290 +p reject 1-65535 +r YankleRotaryEngine wUzmwhRWiLZA62RX85wcbh3GhNQ pTLSpuqNK30dOiKNH1jlPu1kQbc 2020-04-20 02:22:42 130.63.78.95 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=664 +p reject 1-65535 +r Britannia wXqtYuHc1g8ZmjL6yui4TPh2018 DRGZ5yBwJ5Yb6dzjIYdQ7iZQUzw 2020-04-20 03:56:16 51.89.150.163 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2650 +p reject 1-65535 +r soginet wYbkzXMwLCGOEuwiq2Q2cRSNlgk wbRzuWS82dNsd8treMctXKN72/Y 2020-04-20 01:40:06 62.113.206.33 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=432 +p reject 1-65535 +r Unnamed wYjNZJKc2Hxqlv6dBYqatK7SGsw GQXmyWT/AaoAI2XgSvU8FWE3vsM 2020-04-20 10:19:54 75.127.15.73 47001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=660 +p reject 1-65535 +r angeltest10 wZOdNmSd6YogJCljHY78cBKNX18 6Xyi4vBX8+DsaGyaYi0SA80UBiY 2020-04-20 09:03:09 178.254.20.159 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20400 +p reject 1-65535 +r PiratenparteiNRW wZszdYs6UUSJQjPsTJXXmFuf0QE 2nUYpE0rddsHhZQL6HlKPXWUB+s 2020-04-20 11:58:08 5.199.130.188 443 80 +a [2001:4ba0:fff9:160:dead:beef:ca1f:1337]:443 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30300 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r WAVY wZ9RSVoUk50qlC9LlbLAp2lvtWY dTs1jPUwICww3iHmYkExXjlkfaI 2020-04-20 05:00:54 83.97.20.84 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=610 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r fiedlerRelay03 wbUTu14VoYh7atyowBBjBzL8OJo 1RpIFo4AfababCX0W99RiCx2pww 2020-04-20 12:08:49 37.120.190.160 9001 0 +a [2a03:4000:6:b39a::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4600 +p reject 1-65535 +r fuckcensorchip wbecTNm3E7u2sFIhVbRqe/47+q4 T4X3vFiPeVMVzhOKacChQgPIo54 2020-04-20 11:26:39 89.163.216.11 443 9030 +a [2001:4ba0:cafe:df9::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68000 +p reject 1-65535 +r MapleCrew wbjGiHhnztJWRFQFj5CCMR+vGsc mKkfoPOvQCECwyBm6uP0MW1+DC8 2020-04-19 23:32:40 192.99.35.91 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p reject 1-65535 +r pros2 wbtn0/vtaNS61ADRpJxbeezjll4 rWUUWQ/keHWjA2D3b0MfzJFgG7k 2020-04-20 00:45:29 145.239.84.172 80 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9700 +p reject 1-65535 +r RELAY6969420 wb6WedoeIG5NEbd4wCBMiY1i2VY a2LC8c1+hZbXxtJEY8JHezqQN0g 2020-04-20 11:29:44 104.185.133.203 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p reject 1-65535 +r Unnamed wdjaLwdvrbljydpbXJ3oNSjU4xU GwUOKO+kguHa6ncIUc0itdYyJ1E 2020-04-20 07:02:46 195.123.226.53 80 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r satfreaked wdzEcMgPbXAsXtEVFZNkRL06AlU 9WSpdl9Vt/PTqb09orIVDVanV3I 2020-04-20 10:03:14 86.86.173.62 15025 0 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r snap277 weuB9GctF1udGRFG5awtj4Byfto ghCRbHqBWFQSd5OQkgu/9wvZq1s 2020-04-20 07:02:38 96.241.56.195 35182 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9 +p reject 1-65535 +r smell wf7WpdA4Jq6cmjF6rjcLZXhmLeQ Ayxwobwc2TtSMytv1CzT5NMrZYg 2020-04-19 23:26:51 205.185.123.166 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5190 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r ylxdzsw wf/yejjfjcizENB4wT4j8ICvKVc z91Y0qwVNHAtEfHgwQX4zG7vYs8 2020-04-20 12:37:05 207.180.198.205 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25 +p accept 6660-6667 +r snap277 whNEZ6nzXV05Xgohin7b9oBbT6o Svw82hm/VZCDqtkxGls6UCOppxU 2020-04-20 10:05:58 90.32.176.82 37601 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21 +p reject 1-65535 +r snap277 wikzbxoRdd7BjxxZmXdct/+TPzQ Wse9ZK6PWO46W0AjeOHhz/RO/7g 2020-04-20 03:32:52 2.30.251.196 41119 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1100 +p reject 1-65535 +r rickvanderzwet wiup7W3uBx0rN7lxjcz7alPq1eY 44DBla9cJFO4li9cMJANqGhPJGU 2020-04-20 02:09:19 80.127.152.30 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r FroggiePeppie wjmVLQyOTqvD5rCo4LYjaJF048Y WcsCraRKkkLjtGax3sRnqSMHDBY 2020-04-20 08:02:38 94.23.195.99 9090 4443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47000 +p reject 1-65535 +r AntifascistTorRelay wl5cYol7rLowlXHCVICEtFBQ/t8 eAjoiNG/1eh9cPsmmshqPy+3L6I 2020-04-19 19:01:31 185.217.93.92 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17200 +p reject 1-65535 +r erbse woIkhZfRyFIqKnUl5hyLd7vDdhQ oSWQMecnJme2ge4kiNyRuSFNOH8 2020-04-20 02:16:31 109.70.100.3 443 80 +a [2a03:e600:100::3]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=63800 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r EXBRIT wpERRkDqMzpqxYAbXg7JXAEt/ms BxiMqchKwnfPJUgKlvV6B5svCgc 2020-04-20 01:59:21 23.129.64.214 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4800 +p reject 1-65535 +r rochusberg wpOMo4DhLTxx84FDlvEtSVqXxdg UuitUnIGbniaYdvAObqwDR0IYec 2020-04-20 01:02:15 79.251.204.64 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23 +p reject 1-65535 +r torberrypenguin wqP0MV3sf04x0YgY4QArDGouVTU wpv7d+TshDN52jo0LgAnOcVKYAk 2020-04-20 02:42:31 87.72.73.231 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=594 +p reject 1-65535 +r Digitalcourage3ip3 wqqwiFVYUPxDTmiUP1UQcgQrhfE /DkriuQwy6V+CkAvYdiZHliBDgA 2020-04-20 13:09:07 31.185.104.21 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5100 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r bgsv2 wrG/dmuVz3uLOBNX9sN2RhtY3rg I3B7s9vdwLcjfvPVICyAB/gRPhs 2020-04-19 23:10:36 93.104.213.2 9001 9030 +a [2a02:c205:3004:1323::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3840 +p reject 1-65535 +r Unnamed wrIWxlPNIhGg6fR1jwPard0iplo ppbKXndKb9dNOYBevVCdwCvilME 2020-04-20 07:33:29 40.113.232.85 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5620 +p reject 1-65535 +r dvorakftw wrJVllkeBOdHol0UXmDs2kOSxk0 ylImIhbwZVgiWFgTTg6bsAUaI80 2020-04-19 23:57:00 185.103.243.74 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=194 +p reject 1-65535 +r t4cc0reTor2 wrRRmfxvmOIb+v4IMzSPKI+jN+M EGEbOMkH6gLwhsd1YvGaTqk8TQQ 2020-04-20 04:30:21 51.15.39.65 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26400 +p reject 1-65535 +r behrmann wsK4OfTP+l97ekDLC+hPfZSMtRA hZ75g4DaobdMseqs4/mXE4pnhE4 2020-04-20 07:21:58 46.28.207.107 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p reject 1-65535 +r nodvrelay15 wsiZ6R96VQNRQ3d2kAiDvJeb7s0 Zyrc34F70sBnu2HmmcQA0vVo9SI 2020-04-19 19:14:01 45.62.227.240 9001 9000 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3800 +p reject 1-65535 +r AugusteFriedOnion wthbxUk2Fxf9766JYH9KnfLUwOQ M7o5PrDYoozhhsw9hF3Vh72sbrc 2020-04-20 04:26:08 5.135.152.66 4443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9090 +p reject 1-65535 +r RunningOnFumes3 wtpaBMvipklhyN6NA+WNnPSKc6Y deuDju6ci8uV3GIAWeFgY7NqXwc 2020-04-19 20:21:08 185.175.208.180 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-79,81-442,445,563,1214,4661-4666,6346-6429,6699,6881-6999,9001 +r Bastard wu5A7oRR8nwjV+ix6h6Ob2Qic+s TC4hwcfLKUvj4/Zn2fCaSd3gYbA 2020-04-19 20:58:04 217.197.86.173 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=769 +p reject 1-65535 +r Knowhere wvZTpc7jDI1XE/pK5/demSpHkZY YFeOUCACtRxojuTaMvTnYl+jMeU 2020-04-19 21:40:43 51.254.114.134 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16500 +p reject 1-65535 +r RocklinTorRelay wvs0bs6kj8mArUQrrbfNEOFOU6Y y3ARkeKrFjVL4YbP8PLKry9ORtY 2020-04-20 01:41:51 76.14.151.174 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r Fission12 wwMDj9zHKAWhYP9k6ZQzOkns2nE xuK1+7thQdLL14c/BJ+51Z/DqlQ 2020-04-20 02:25:05 54.38.219.251 443 80 +a [2001:470:73f7::7]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19300 +p reject 1-65535 +r 0x766c6164 wxQTwyPbK9VbQ3Gl1GiA2evS+oA 7PnoaaegfNwC0BLGtSH8DGsgMJg 2020-04-19 19:30:07 5.14.156.124 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1850 +p reject 1-65535 +r t4cc0reTor6 wyY/S06SEnt80V6Pl0a0OCIzQko wHQJW4L9DQ2i8XTSUI6fQzJHiv8 2020-04-20 00:36:25 51.15.91.7 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37000 +p reject 1-65535 +r mistersixt wzJQ09E96rsD/tzu71HPCXfy0Eg MbnqW+/4vKgNA/OO/qGOsipW8Vo 2020-04-20 10:01:30 94.16.114.254 9001 0 +a [2a03:4000:28:365::1]:9001 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=56 +p reject 1-65535 +r UDwdoN9 wzPFbqrUBKzd4vs6Z1xfXaRqgeI WAlM2VeMkRVa9SQEZhMZ4Twf5Iw 2020-04-19 21:09:38 185.22.173.122 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18300 +p reject 1-65535 +r Cir0X wzs229V21N4UFEPSgSJXXaFZ0bM XSrdPa+eBEnvTNLEY7h1DwKQLP0 2020-04-20 01:24:35 37.120.178.124 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=563 +p reject 1-65535 +r smell w1HCyzdXU3k7QnUzffZUhY1OoCs G3KOkMoYdWWol5ocmkQGlGpsLM4 2020-04-20 02:03:30 137.74.153.6 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6530 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r jmarshall2 w2NuyktAkABWWQqn2/xu0JN5hS8 bFS+gxrBQLSPFmX/1hNFfa4uQrY 2020-04-20 09:52:57 93.92.205.248 9121 9140 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7340 +p reject 1-65535 +r theia9 w2pDTbVMZuGpelZThYzjYCQ1LE0 REiog9DJ46UlKGMGiX6pxTwJN74 2020-04-19 22:57:55 50.7.74.170 9001 9030 +a [2001:49f0:d002:2::59]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8400 +p reject 1-65535 +r unnamed w3mQVLx/DSAft8D53jG/Hz2Gijc J2yQxTdCTRvOf0G/GtDjQNB4QJo 2020-04-19 20:19:57 54.37.200.155 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18600 +p reject 1-65535 +r pataky w3+HwBJeJuas9UNm+iGYIJ6Far4 tcQp24mSeL6GFS1KDD5v+lCyadQ 2020-04-19 21:42:28 185.80.222.164 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p reject 1-65535 +r Solarhost w4RgsLWuRDlAgn/zCGAuX0oStcQ e7l4rrFR9Vvh2HXZLW4fyS3u4dk 2020-04-20 08:22:16 94.249.192.203 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14400 +p reject 1-65535 +r fckafd w6DkL9VWO5S+7gwW5IoRMoHrLMU MxaFsMLbAxlnUO2q7AANDwGC9MQ 2020-04-19 20:05:22 138.201.158.239 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2220 +p reject 1-65535 +r ALF2 w7XJOR42Yxq+qJoZwkdQ29/3zsg DowwL6QzJYiVzJNzw6fzvAtwgBY 2020-04-20 09:46:23 212.199.61.5 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r strugees w8/Mm1mTpvDRNJhYxZjEp4r+Ufk 50eMzJ9qcCx65SfQJEpGozTVtjM 2020-04-20 12:01:00 165.227.47.169 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4310 +p reject 1-65535 +r Logforme2 w+Dp6h/z/Pwn6Fa/5hUzAg3X8JA lhKC+jyppy5byVGPHJEG8fA+w78 2020-04-19 22:23:39 85.228.136.92 444 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45400 +p reject 1-65535 +r jaquerespeisNode w+/a5FlpLMItcYH+8PCleRVvQ8E 86nzHb6f/YJCeR8VQDYmgCflcfQ 2020-04-20 06:52:14 201.196.17.150 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=283 +p reject 1-65535 +r diezwiebel w/L1KrquvSRFQQvZwfzqSdMT00A +9VqAgOavvpraYmZl7OEqeoLzoc 2020-04-20 07:25:08 83.135.205.48 9001 9030 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=346 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Digitalist w/P6QnPiUxLdITFRGTfU5rv+aKA 6UvzsFSkddxyWFvSOeTAOlQTeqY 2020-04-20 06:36:02 81.10.144.74 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=508 +p reject 1-65535 +r Magica xABc/D4sec9QcnfhoX/yo87jRcg 3gPVgn3g9xetsZ3eUTOFAqkIOdQ 2020-04-20 07:34:31 45.119.203.171 9001 9030 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=121 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r tor4ever4 xBEHrwvWQT4NphS8UfNJoyD5MwE xhlbuPvRPSfumgutll5qpVKDSuI 2020-04-20 04:07:27 45.62.230.216 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r zebra620 xBTyj9K+wVUwJCmbMdTnJr6454g I7FMv3h7R5AjXd6h1GYFmvqOogg 2020-04-20 02:24:18 188.138.112.60 1521 1433 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13800 +p reject 1-65535 +r Seccom02 xBreIpWYIB+RNCbpxrlkcJiu4o0 /aNVwPL2Ll/amfcLdZfWXX+QwgQ 2020-04-19 22:51:26 51.83.254.153 443 80 +a [2001:41d0:601:2000::16e5]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14200 +p reject 1-65535 +r avanixRelay1 xCL4hpnBik8pnYNDkbFfB9vmBiU ddgfdg83/9oqIFsu8KWglyAVx84 2020-04-20 05:41:55 51.68.137.123 9333 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2120 +p reject 1-65535 +r MEGAusa4 xCvVGk7Yr1VPeBWRVSp6cgJpRA8 eD9IrQUfo4XuBoyd5XEAFe1sLZA 2020-04-20 06:07:35 195.123.233.5 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7750 +p accept 80,110,143 +r Raptor xC9WYuFUdskpUrooHvF1hYaMOM0 Qe1YKWliFaRGQtxeEOldkWXUWTU 2020-04-19 20:01:32 187.178.25.42 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=744 +p reject 1-65535 +r Unnamed xDANPAO7QfX2K66Pxix4rA6Y0bw YoDWul4gYh8LhCiXC2NPa2k8byA 2020-04-20 09:27:28 78.94.141.202 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27 +p reject 1-65535 +r PAPRIKA xDC+7nAkj+CA6P3oVkN5F7MUzTg rsGTr3vo4EtpUMFfBYFtX5HIWyo 2020-04-20 03:09:42 91.219.236.223 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=749 +p reject 1-65535 +r OpiumFlvour xDNtdcEh0wbdT6++M/gmrVP61Q8 1MTTfd3jAk8nxKxHpg76l+eJy3o 2020-04-20 02:49:21 149.28.174.234 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=89 +p reject 1-65535 +r snap277 xDSJybwTSQ6CrDxj1JUJphad0r0 qVHRTZiAxOyeeOIiplBfdSHjSQM 2020-04-20 10:58:31 176.109.171.140 45825 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2760 +p reject 1-65535 +r jerailNode xEIxgYiHPZQbGcJibsbmUZErRts uVJ8qYUzds4hVE5hY2YlMBgx9L8 2020-04-20 00:25:09 76.68.55.240 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5400 +p reject 1-65535 +r Unnamed xEzGS+2ScDGls7Cnzfap4o8Fiz8 cUke9+3blqeOuoVnmzpBV954dbE 2020-04-19 21:46:41 172.86.148.10 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1710 +p reject 1-65535 +r Unnamed xGMnY9vQPNFfEUZcWkc8VL/w7Gs B/DO4ch0XETQUGLSKMIJmnfpHRc 2020-04-20 11:13:47 167.114.89.206 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r whvger xGSutAig4x8HOFqwe2mzqNdckLE E+OgdEHlJ8L1qPOz4b+ygcD53BI 2020-04-20 04:07:57 46.142.239.159 9001 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=530 +p reject 1-65535 +r wecoev xG4dLk9Od5EQNVdiWn34b2V/Cvg h7mYtfRHUrsmODMGt3yYAfaGNWk 2020-04-20 10:32:12 95.222.96.172 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=113 +p reject 1-65535 +r KaaTorRelay xG5nKZS1MZJzcUwrrgdBHLTvWh8 gRkpSWdsNsZ1dbAXJrZW9AR5qHQ 2020-04-20 08:03:37 82.64.197.25 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6 +p reject 1-65535 +r PercontorQuick xHKxv2ynhPGos6VqB+lRkmETzN0 bnRwHmqffOQpy8DL3GPgQYFZbRI 2020-04-19 21:34:16 80.85.84.72 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4520 +p reject 1-65535 +r uname xHWEd2TmHsHXGlUisJpwzGy7LcQ 3uCTj2yCQa8StE2/6UEjgbWAbG0 2020-04-20 10:35:49 86.57.149.13 1443 9130 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=4210 +p reject 1-65535 +r niftywabbit3 xH6PAlZFxiG+i/i19shWSkEln3s N+6pdkKzgGhDSxp7ODVSWVUyYME 2020-04-20 02:40:46 185.220.101.195 1195 2195 +a [2a0b:f4c2:2::195]:1195 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=61800 +p reject 25 +r snap277 xILUgpzi3GICQ54w47JHdeqX+z0 /G+A/5LIO4uNRQv8G+XktmySgUk 2020-04-20 01:41:26 5.159.107.232 43585 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1410 +p reject 1-65535 +r Unnamed xJoXdRDKplPaZye/Dgf7f1ag8J0 5FoOC7+zl6pUEu06b4drnDS4K34 2020-04-20 11:41:45 136.243.70.198 9001 9030 +a [2a01:4f8:212:24c4::12]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47500 +p reject 1-65535 +r Assange028us xJ4+NFkRcqU0Ch035bTj0LkeDxU KzkcSfKBf4EbcEpFdwufJjUrawE 2020-04-20 00:39:49 194.242.2.25 9001 9011 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3000 +p reject 1-65535 +r mistersixt4 xLDbaQ4zYz9qBc9oWNGD9/b5P6k E6NI5gUpA/9W7JIZDTvljv/wbLo 2020-04-20 09:15:48 37.120.184.82 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=732 +p reject 1-65535 +r DjMiddle xLIaZrJ+gv72rJfOrv5C3/XHURw PxiFKfcowfFkMM2IUbjWpfIZbIQ 2020-04-19 21:24:24 173.249.57.253 433 80 +a [2a02:c207:3002:8283::1]:433 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed xLQm/ek+BJJXrq4FpY6ZEixvbpA RCNCxGxJ4RmB/mCTtfPxvP9DtVQ 2020-04-19 23:34:39 5.9.157.117 30334 65079 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=347 +p reject 1-65535 +r torrible xLzwDFGPEgaL7j/A7uXrnGAx7UI lJYRmi4jnZFtkHv10f1L6qhd44o 2020-04-20 00:18:00 100.37.9.108 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1270 +p reject 1-65535 +r alpha1 xMG1sK9sfLtOen99P/FWPJo5sQE 8IjN/fVw+wyfmAmltB3YLPDOK64 2020-04-20 09:17:11 94.158.244.60 443 80 +a [2a0a:c802:0:1::43]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4320 +p accept 20-23,43,53,80-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9999-10000,11371,19294,19638,50002,64738 +r 00was00 xMcRiplGndq4tci7Wlf41s7wdl4 hu0KxR1craZuApcQEq0l0i8KMTM 2020-04-19 18:52:04 45.95.235.55 9100 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6620 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r 4dfd6315e32b xMv+mvn9AM9cZJqsbhnUIR4KnJQ HXc4HRedZGERYTJtX1dbUG9+qc8 2020-04-20 08:23:28 51.81.253.197 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r grace xM/x3eWkN0mpCvKDR2C+VKsIuQo tUBoT+O146+4Dcocvh/VYAeMU5w 2020-04-20 06:39:45 167.71.153.179 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=784 +p reject 1-65535 +r Uwantsmooke xNQ+wYF597LoGH1+KE1tVHIXs54 eVKfROMpSNjAZqSiI/uXjpqPAmk 2020-04-20 12:07:52 192.254.79.138 31337 29031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3060 +p reject 1-65535 +r artservice xO9t+4o8RCsab5o8vmPZcOdxv7I /9HUPVM4Rn4EoUCtx4aVR54XDtg 2020-04-20 00:47:21 91.221.57.179 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4690 +p reject 25,119 +r EhRelay xP0kA8ySkpe1WaSeWCUWlE91xqk fFnX2Oi1JOj60d1+jOgOtlq+BGE 2020-04-19 19:52:28 165.22.236.251 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=250 +p reject 1-65535 +r Unnamed xQz4XL4KMn4y7noAEWHEe7s4znY PLvdINJTM310fH75Zh1UJ3WKM04 2020-04-20 03:25:03 87.123.76.245 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2750 +p reject 1-65535 +r pasiphae xRFRed66+AoPtZ69pyoqRMxM7cY bmivmYe3XdrfBGbEP9r+1ExdJuE 2020-04-19 23:39:20 195.189.96.152 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=66000 +p reject 1-65535 +r ThereIsNoCloud xRcBkQ3qmY9PUSh6cbfpREmj6bw a7jk9eqW5VMo21lbiBBAfD5Zu20 2020-04-20 07:46:16 5.42.141.211 993 8080 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=994 +p reject 1-65535 +r TORTestRelay90 xR5sZ/lsdUzzPE9YymwSO59IqCw wjg5xJNMkBud5aEfLzPYtUEgdPw 2020-04-20 10:53:34 188.193.97.115 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9 +p reject 1-65535 +r Unnamed xS96AmSufGUJdhZuoTmCUB7IEM4 lodBpB6oOtfJ7vPftivV9a83+W4 2020-04-20 01:59:43 188.165.213.156 52743 52345 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=9100 +p reject 1-65535 +r chieBiT0 xS+QxDZnb+Rz86ZoPvAHXoiI6SI QDrATjye3RPAjjpnophRyUCbQ/M 2020-04-19 20:36:24 176.32.33.221 9443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p reject 1-65535 +r meatloaf229 xULUUtQtvQGgcdLaHObuFa9A9cI YzIfgbGBfSB3db5IgEnbSDLi0mw 2020-04-20 00:45:56 67.163.131.76 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=97 +p accept 43,80,443,636,706,993,995,1043,2083,3690,5228,9001,9030,9418,10000,11371,19294,64738 +r Echalote xUXtO+ApsibXSz95gjWVHS/u4+E k61pIBVSqdC2kzcEFIfTmZvPXLI 2020-04-20 07:19:59 212.47.229.4 443 80 +a [2001:bc8:47a4:1c28::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=48800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 xUkSGZA5TAGzGdnTe/8rERzWrw0 4IhAgC3cWFsLOjJiAgmGjzv60Uc 2020-04-20 05:56:36 88.151.72.60 44145 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=34 +p reject 1-65535 +r DefCon xU6B6wR9fsHgWwrG5yO+G/XK9SA SWbzcDl2HPuqHpBZ7xEO0Wh/Qo0 2020-04-20 01:32:20 94.220.77.213 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12 +p reject 1-65535 +r zzz xVlN8y/uxuxDgWImW74Mnj9ZL2E kKNuOhcXGnbp6IRqjz/JdesM6N4 2020-04-20 08:31:04 93.174.93.216 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42800 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r tropby xVrEI4xmzo0Ag4Vy1WOihNvvAig gYJKNlH5Ob/btLNlvJOK1CZj/OU 2020-04-20 02:11:06 46.232.248.80 9001 9030 +a [2a03:4000:2b:4e::dead:beef]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r pochath xWS2W8iX/ArM6MKdNSC64TxaIQ4 Y7JevPTWaydRmRTG+TWhdPTAjeQ 2020-04-20 01:22:11 37.120.146.42 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11900 +p reject 1-65535 +r balsak xWwez/DFkFg8GycvrzFtRAz8BZc toUbXxOh16yW8gyH/1lG4Y3RD4Y 2020-04-20 12:16:39 96.35.46.11 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1050 +p reject 1-65535 +r torrelay xXfFbq1lTIKdH/L4YTP4mhpZqok ycaC9q8V/ypukMdXfXgxqt8FRu8 2020-04-19 18:56:24 185.163.45.253 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p reject 1-65535 +r ihuhubhd1wya xZbYWrJkG+yWEGrmLl9yx1G3viI ZCRj5rykmjfufuSdkXN3C6Em7/Y 2020-04-20 10:13:58 52.119.113.195 443 0 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=39 +p reject 1-65535 +r ibibUNC1 xZ4HlDc0DjrRTmeFwKkaW28yhWY nWTWq74tX6PiHQphz+Xnb4u8Tdg 2020-04-20 09:21:41 204.85.191.9 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Quintex17 xaU7zBdO+P0NyyI+Sqkp+lV97bI o1jn4B5WhbWFly/SkZZ+YDQC/+8 2020-04-20 10:52:40 199.249.230.107 443 80 +a [2620:7:6001::107]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r jivin xab+5bw74Z9bnrCGypXa05PYpPY AEKiU2caO5/Kk+3hvxobH2T47wo 2020-04-19 22:57:23 103.28.52.93 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=95 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,10000,11371,19294,19638,50002,64738 +r pablobm007 xa8RtZW+IR5C0aEhq+yJUV07DLw KB/B88KVzXAAr7+clxClwma1Z+Y 2020-04-20 00:44:39 159.65.10.189 9001 9030 +a [2400:6180:0:d1::509:3001]:9050 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=600 +p reject 1-65535 +r thecodename7 xb0Lecw/oIV39Cf8SDSzZbe5Lio OCeOV4WRWoRh8dHH2qbiNQ7c070 2020-04-19 20:42:31 171.244.33.189 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1 +p accept 20-23,43,53,79-81,88,194,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r stoychev xb8nVg5LAHNl+6ltMvnnRhQhjI4 Ixrp1y7+3rBYRp9AOzAb5mL5024 2020-04-20 09:37:36 104.238.167.111 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43000 +p reject 1-65535 +r ohsally xdVdEfJsUqa/7o3SPCUFSKpn6aw rj1ca4CpO568/rHDwmxPMAQBjtY 2020-04-20 11:00:50 93.95.100.166 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4080 +p reject 1-65535 +r Aggie xdXmNdEVySHAYJKf2+oI8hQokZg on4D2+CwYRXOSYYACsAUE8ecdQQ 2020-04-19 22:06:16 107.170.219.188 9001 9030 +a [2604:a880:1:20::24a0:1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1830 +p reject 1-65535 +r gnosis xdkbddm5kftTxBq2lNl8lh03tas BVAUqYUBM74URzjq5OCXs75H9yg 2020-04-20 05:08:52 213.251.237.184 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r HSB xfdqe0WaaO3SVWgDJfY3C2DgvDw 2IGq4P56vERzEn554V1cV8PKJm0 2020-04-19 21:31:55 5.9.82.76 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3060 +p reject 1-65535 +r SubspaceRelayAlpha xiKvKh4Pc/hgQ3XtE9UesG7UlIw igsD48gWlAOX9G/mNTMpw047vJg 2020-04-19 23:18:09 70.113.147.62 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1470 +p reject 1-65535 +r Unnamed xjEQvdhzbSwqcz/5YvWNWP3mOi0 OoSj13UstiO5DMPIVsCLYWPzH9I 2020-04-19 21:00:25 148.251.192.160 80 443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=84000 +p reject 1-65535 +r tORu xj9Ox0Nxk71gcNXL0Oq7thDdAqo 2KTkju45RHJdRg2ZnZ/KNZ+j/wU 2020-04-19 22:18:00 54.37.138.104 443 80 +a [2001:41d0:601:1100::218b]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4060 +p reject 1-65535 +r marcuse2 xla0Gu+0ChQZZ+v0nW5pYDybShE ZNZC+06leVwMqkPARAQ/ml1CI08 2020-04-19 22:47:49 178.20.55.18 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r TorExitVIF xl0+G6J/DznC+EzjHSBVm/Kjak8 HZ9LLYgkvnHcsV51DfRnpZaBa3o 2020-04-20 02:12:46 216.239.90.19 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8280 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r theseekingchild xl3kpzgLrKyUeFYZWdxZ3R/14bk w7af8ZdohACKZWLpcLz3CN/wyQ8 2020-04-20 01:49:28 103.102.46.57 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=304 +p reject 1-65535 +r JohnSmithSrv xl3txh9oaU819ipYbAn8QR5NPDg xKjiEUa2lvSVF3pqJ/c1fTVqdi4 2020-04-20 02:06:04 104.244.79.68 9001 0 +a [2605:6400:30:fa31:9050::]:9001 +s Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17 +p reject 1-65535 +r TrickDepression xmBNRXrDGeU9wxS4Hw750Wy5N6A fgoWvgT+vdPUsqrKgLv4dX5DtBU 2020-04-19 23:26:16 8.209.79.125 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r 1505192200300605 xnwzx2zcM91y+qd1NbSNfpbABtI tu81XmWd3Pxy8wVT7WRAhWX1mPk 2020-04-20 04:15:53 5.2.72.101 9001 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p accept 80,443,8080,8443 +r badgercomb xoBxim9RqPfF1OaCae1bLAf+Uxs h14jO5CJSPNmI0lVMRg7PMQ1xz0 2020-04-20 02:33:13 66.228.33.44 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6590 +p reject 1-65535 +r bartle xpn0CzNE0008WWeRp+vGfkHGKgs y9rEQ2964YndXBmCVdhvAyVyyBo 2020-04-20 01:58:13 50.7.179.251 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6600 +p reject 1-65535 +r Geheimschreiber xp0k+TU+FthegrSp5Fcd+vbc9TE Di33lpyDPgtJC9xfBr2C0H/VDg4 2020-04-19 22:04:45 86.186.247.236 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3630 +p reject 1-65535 +r RunningOnFumes1 xrHeDg/cAAgKurTweA81aIXJu4I QedC5MRJ/HP52uGQuzzLTF5jThg 2020-04-19 22:10:01 185.175.208.179 443 0 +s Exit Fast Running Stable Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=990 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r JAJTorBits xrZWumvBbjERWhstVjlqUxZfNAg /r537X9j8TnEBVkSNlJEOcalklI 2020-04-19 19:22:52 71.60.192.20 543 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=320 +p reject 1-65535 +r Unnamed xros2kArZo+xRve668CdBuvvuHM FlZOgN7tnEJKkdTfcES7nLhpXLg 2020-04-20 06:36:07 51.79.86.181 9001 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12600 +p reject 25,119,135-139,445,1214,4661-4666,6346-6429,6699,6881-6999 +r pdxcomcast xuFFO4yveW5M9l22qBKDvd1yL4g jrMh+Bt2BOsTUV+rCwPs7aUcMyE 2020-04-19 21:05:11 65.100.46.164 9001 9030 +a [2602:41:642e:a630:2a05:d264:4e14:cf93]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1020 +p reject 1-65535 +r niftyentry85 xuGEwJg8aLfov8YhXnKJ4J6Xqg4 23t2zEJcm2j6vlu3UkMtanz/91s 2020-04-20 10:52:37 185.220.101.225 10085 20085 +a [2a0b:f4c2:2::225]:10085 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r Assange023gr xuORDLrcptLX6TKrMaA47dam+3k 9RuFI5AQH+GhTUTnjUe9kDc9PJg 2020-04-20 03:01:28 185.4.134.104 9001 9011 +a [2a02:c500:2:110::2d49]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r lxoliva xubyWD9KJRL3Na0Zq8xUEtEHM0I nSXgFXpVHHXrFdaBCpZA7iFwYNo 2020-04-20 06:46:05 177.99.135.87 9001 9030 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r niftygrankhul xu19N6o8yqWGsi4KMLOVpeWCRAo zILCUchVbSzHWga2EKjXOtC6AYg 2020-04-20 08:53:11 185.220.100.244 9100 9101 +a [2a0b:f4c0:16c:9::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45200 +p reject 25 +r LSRodentNinjaRelay xu8RXZlzF6MseErA+ZRK4Fgco34 KCOWYu8v1npZEO9XLdGjhQYpssw 2020-04-20 08:03:40 52.47.91.150 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3430 +p reject 1-65535 +r LilypadRelay xwXEXPJKMMXZe2HrNdbX5CRtVqA Vpyt4BpAq74yMrdSeAHaqtuVpoo 2020-04-20 02:17:48 68.115.26.245 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=230 +p reject 1-65535 +r Unnamed xwo8s5K4BU6KRB8HQFMMwXa7Ck8 iHWE3z9MdpmdVcN+fb63vDvYB5g 2020-04-20 03:24:35 185.246.128.30 26778 3432 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=939 +p reject 1-65535 +r TorOrDie4privacyNET xxBvDGp88PWSy6/3x5vYEVOxtfU wcO/WGnk5ZxpWPfxtJSsQpM3nHw 2020-04-20 01:16:18 37.157.254.113 9002 9031 +a [2001:4ba0:ffff:58::3]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36500 +p reject 1-65535 +r HomeRelay xynXaF6NNzR5GiGctE8dEmXHeCU KwJaUwgwlELLEsbEe+wsI8NWAO0 2020-04-20 07:04:57 136.49.179.248 9010 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=310 +p reject 1-65535 +r Hydra15 xy5zVmyzN3quWEn1kmrWYOSvgqI P6bxITiyyRcadc480E5WVcUWLho 2020-04-20 02:41:53 89.34.27.37 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p accept 53,80,443,1194 +r nunyabidnezz xzJuHmZcLnc2U8AdSbJXpWpIccs aXTiAveiCGb6gnI/B40dJoDbeBk 2020-04-20 10:03:44 98.201.42.132 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120 +p reject 1-65535 +r niftywabbit19 x0Rp7AR4fMRY+x3N9FbFCSzwixk CmcJ9MNRbpvzv6QtV3rn0plknl0 2020-04-19 22:15:39 185.220.101.159 13159 14159 +a [2a0b:f4c2:1::159]:10159 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22200 +p accept 80,443 +r cosmotor x0ZTr7hDSlWlAlZ6cFIBTGz4RQ0 eX31MynbPQc005CvukeV3akWOOg 2020-04-20 08:36:59 78.47.98.200 443 80 +a [2a01:4f8:c17:251d::2]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1490 +p reject 1-65535 +r nodetechnoweenie x0tgJPLgdufJ2+wk6eNz/lVpLA0 mfUFUprnusnVO7W+UedTQkJtBvo 2020-04-20 11:47:13 34.221.76.150 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8 +p reject 1-65535 +r freakonion x04sf7URhhpInGD3UDpv10wScj4 45iD5IFj2AYxpe+1zneq14OkNek 2020-04-20 00:35:48 5.103.132.68 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r americium1997 x1zdgYMWq7yDn58N2uyHP89gw3A clMvXf1cRpnt/qrBFt8UwSIvNaA 2020-04-20 12:15:51 51.77.136.241 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20400 +p reject 1-65535 +r snap277 x1+880LA1h3wr4GFq3nMPm54Ftw jk263agpayq8QWYIyulzsG2KZi4 2020-04-19 20:46:37 2.123.60.221 43115 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r ashe x2ET1as/xzHWeKQI63W8BvRGX04 UwbFdKeuyqHj4W6wxI9gcTLGm3E 2020-04-19 20:22:05 198.16.92.157 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4160 +p reject 1-65535 +r snap277 x2ypbmVmMIcV42C28p+g10dMJfg z5RAOVhcULWJyNH5e/XNwtf0/+g 2020-04-20 10:52:10 37.115.200.247 33219 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1360 +p reject 1-65535 +r tormb4 x248R32MI+CvgrSi9mQerAuLYQg lJr/8VFxJwYk0fhG1+bbVI66VYo 2020-04-19 23:03:54 13.229.73.242 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=260 +p reject 1-65535 +r MINJUS x3jZJ2ahu04gand7FN3XJZ+x1zk eqWz0wqbL14Oe2b1KyP/wgSZ92o 2020-04-20 08:32:05 95.211.118.194 7002 7003 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43 +p accept 80,443,1194,6667,6697,8080 +r Unnamed x4DZGMg6Y8iuXTeOMslL/ODelVA ZI5d9LItWGBoNt0lLq0Vj6Ill88 2020-04-20 06:37:45 51.79.53.139 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12400 +p reject 25 +r MyNickForTorNode x4QQNpp6sR4GzvqjJCzNElmkGMo mQK5Ov2X3SOg9Cg5l8XjDeL97yU 2020-04-20 05:28:09 79.165.92.148 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.10 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r FsocietyLTD x4g+GU20XFUneLLu7ka/wJKqqaQ gtHP4LLKnw+x/4bJDbcru6fgqxk 2020-04-20 10:28:01 51.15.1.221 9001 80 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=108 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r Quintex46 x4r/7uMg6g+GCWF2PmE/0vrIVfU nawXMMzDYE+dr0MGJ4obN4OHAfI 2020-04-20 06:50:53 199.249.230.69 443 80 +a [2620:7:6001::ffff:c759:e645]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Unnamed x5OjPyiCbR8YRQQxLGaOqBV67yg wLgwhYgfmr4J0Q9LE1Lz6wlHfqc 2020-04-19 23:30:01 217.182.95.221 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=704 +p reject 1-65535 +r ori x5OriFZd3TyeTG8VzLnYx++WTOk UohqWpEql02J0kRpXcjNaSu7Nro 2020-04-19 20:39:33 85.248.227.163 9001 443 +a [2a00:1298:8011:212::163]:9003 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48700 +p reject 22,25 +r t0adwarri0r x5RtmhkrvkTByKkmqLE1rEldZjY uGl88Okm9BpRl6XI167e3u6WS7s 2020-04-20 07:04:49 198.50.238.128 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4830 +p reject 1-65535 +r Zeilentrafo x5gg8rNIWyWdQIUWRitwDpkASHI nBLikUaGqmW1kDJL87iD77N4VLw 2020-04-20 07:48:02 94.199.214.229 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1800 +p reject 1-65535 +r snap277 x5iSbS8Ppq42VMbMyB3MaiQOoR8 GZdQQUc6L3zNYvlGEhLJq8AQJ5M 2020-04-20 11:21:25 197.2.132.14 35889 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r TorOrDie4privacyNET x6AW4fhc991zkUrkD1W3GD0RuP0 GLYGrwGgd0h1ehBAQP4IADFFGuM 2020-04-20 01:16:08 217.79.181.90 9001 9030 +a [2001:4ba0:ffff:58::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38700 +p reject 1-65535 +r cryptonanus x7Xj1Q2R7w97bGWiJwoisqfdrHE 1z6x0gUHL4+pL+qsdImocW3EcYs 2020-04-20 11:24:12 80.211.192.151 9001 9030 +a [2001:15e8:110:3f97::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8260 +p reject 1-65535 +r flaus x7aht2tkdts9qMlg4mLMdCW1xfg LRyeeQuSEznbR+51oixskPR0FSE 2020-04-20 02:44:53 62.109.4.115 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8940 +p reject 1-65535 +r Unnamed x9SozQvojWjDg1/LDAXKdoai5tA M8cV6y+1vF7Xb/ndE0VHzfnfkTw 2020-04-20 05:46:45 92.100.37.98 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=52 +p reject 1-65535 +r okamoto x9Z8lFrhin9TKZ4wooTg47yeQwk q4UKaVue7pNwketFWhuYpGCXbUI 2020-04-19 21:12:44 216.24.242.34 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6300 +p reject 1-65535 +r pizzarelay x+UNe3aw52Ft/gfrg03rAgSmQyI HoKNJZtx3NCX9V34AsKcfqnmwms 2020-04-20 12:31:51 90.224.11.107 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=25200 +p reject 1-65535 +r Unnamed x+fYxIUNak76hI98OSL0yjRC5ME IEihCk01HV6ZhAGNYBL8thnmoJk 2020-04-20 12:04:15 54.36.103.231 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=742 +p reject 1-65535 +r MCdrKNe2 x/9gbVnH9r7KijQdPPEbQj84LV0 ygGZo6DyWwF6/mCwUanZXHEOoXQ 2020-04-20 12:08:37 94.16.121.20 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r nazara yACAILVQFZSSVLdJoqp4CqIrGKE 9ek3a6w1PbOW5Wf5mmhX2uvAPNE 2020-04-19 20:45:43 167.172.202.31 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=2000 +p reject 1-65535 +r Unnamed yAS+j7HHxC1DxKXiA553qg/zqLQ Og1G8cluItH299D8xrM+3226vs0 2020-04-20 12:41:00 192.42.116.161 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=819 +p reject 1-65535 +r Unnamed yBEZfTrk7rKCIkCLMJRuLH3W7jw rG3nsc1+QNWhGCbAOs9mHqN/on0 2020-04-20 12:01:18 205.185.113.57 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=883 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed yCojOoncPZTPMh4WItmlOOEmwhY soVJ7HmorqRVNT2D194gMHMxc4k 2020-04-20 07:51:59 212.47.237.191 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3460 +p reject 1-65535 +r ethentry2020 yC867g33hdnH9AeCyb1ePd/uOqU 6JgFnDGomaU2UXeu6sF926FZh+E 2020-04-20 12:28:53 91.54.218.198 9001 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=753 +p reject 1-65535 +r ToTorOrNotToTor yDu4rj9xLay9aCkFCQSqW7QN+Vg 3ZPIK6CRUL+jYdiE4q4FQ77agjc 2020-04-20 01:15:43 77.224.5.241 443 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r FOO yGuYTmzaHWgv/DgVZriluqv7QAc zt3Ytp9pjJQtPjL/9xLXweLe/C0 2020-04-20 11:08:32 178.17.174.224 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=12000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r charon yGxTjvCiTgEDQvMNvKzCp+t8qDM 3G49/m3aIWuuBWuL3SZr92vCBlw 2020-04-19 21:38:29 173.249.8.113 443 80 +a [2a02:c207:3004:1074::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21600 +p reject 1-65535 +r newton yHHJFImIbV4ulME+oaX9xLbcUgQ 81y24MocQYU8U39+N/2KklwL4yU 2020-04-20 07:41:47 76.95.175.223 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=879 +p reject 1-65535 +r theia4 yHpNi1NPeP3w9GObVfEhQB/vJZw EkC/C+NW2KhJBU9V8TYSbEGz4Uk 2020-04-19 22:57:54 50.7.74.173 443 80 +a [2001:49f0:d002:2::54]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6700 +p reject 1-65535 +r snap277 yH65OrN5Ic25GBrZ5QhcdpTgs4w GBmqf3hptvUuJyeHC/W0wPgHF3c 2020-04-19 23:19:24 179.93.39.123 35117 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=363 +p reject 1-65535 +r laxus yJHgb3RADZKpSWxq018ZszeTOrY M8rfOT3RWYMEaLL7Ectx2RzFziA 2020-04-19 20:13:36 107.181.161.182 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=458 +p accept 43,53,79-81,443,531,873,981,8008,8080-8082,8888 +r freki yKsbKvDLquNhGoFLTH043ODL/rQ MoI10ahhNgs5a/K4klH+zFuo++c 2020-04-20 00:49:12 185.100.87.207 9001 443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50200 +p reject 25,465,587,4899 +r rucola yK4m1IGVBNAVetTF3n1aCn4ZDRA 1fWwiQou1VDAxiqaCpox9E08kf8 2020-04-20 02:18:23 109.70.100.9 443 80 +a [2a03:e600:100::9]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=82800 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r mayforth yLDHcBh08LWvzasLriMf4wPIIo0 iOKDaznAJyWWv6hDerN4zW9DmyQ 2020-04-19 21:13:26 43.252.37.14 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=433 +p reject 1-65535 +r dustsandstorm yLNPwxnjMBhZ/bvCOTNwgTAviY4 1ZD+wOyCaXKM5ePDwatOm2ccHgM 2020-04-20 11:18:51 202.157.177.224 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=403 +p reject 1-65535 +r welladjusted yLaW1dW5K70O0kPgSgzzHpP8U30 VxUnKAG9WOsc9jyB3OMq+G511y0 2020-04-20 01:32:50 176.9.180.47 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=72 +p reject 1-65535 +r cressington yMO5oRgwMUwVOM8Zq8OrJljtaz0 39E/JOT66fkgHQxlMK+4hPhs4EU 2020-04-19 22:36:38 190.10.8.68 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=933 +p reject 1-65535 +r Broomer6801 yNxrKOQ5ePu+IXMjyQGiw1Yy0uc 7g0Y3d1gH+bp89Wd/LwAyNTxVr8 2020-04-20 01:36:38 80.101.143.242 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=601 +p reject 1-65535 +r pros1 yN4m0tEZvn9Qnmcu4aPV+yXcupc cBM7kLeaXAfs7DH6gr8qqUADuv0 2020-04-20 09:32:21 145.239.84.172 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10100 +p reject 1-65535 +r snap277 yODXQWbrB51SXStbdDwB3g3bc2Q 9rpsP8ztn49aNg4yUKheueH6/vo 2020-04-20 11:42:05 99.250.141.16 43715 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1350 +p reject 1-65535 +r relayzy1 yOIuJxj6kWY3j4cnBUsE4Quuj7w P2369jmgFKH+qjqx61IsKFdeoL0 2020-04-20 01:28:36 108.26.186.82 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p reject 1-65535 +r Unnamed yO2Gu/Fl6NvM7cwUQ+GutYyx7QA dScrJ7fdwPDw6d3/CbSAHcYmG8U 2020-04-20 03:57:45 97.86.53.120 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=920 +p reject 1-65535 +r miko yPOIyOh6DMxmlTpgtqSUIyUFXEw Tybwh9cZ02lFspBq8AgSsac+4HM 2020-04-20 08:54:35 140.186.10.163 443 0 +s Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1390 +p reject 1-65535 +r Assange003ru yPQC/fieW1HYYq1o2MF9+lo3G6A mgjvZdxfT/7NTsf0Jx2QwCn1xms 2020-04-20 02:49:32 185.22.172.106 9001 9011 +a [2a00:1838:36:29::9001]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r niftyguard07 yPb2wYNEVPHpJ6SgXo5U62I9S3M xFTZ18RrkxDwcz29iUaGpjWK4LY 2020-04-20 12:45:38 185.220.101.216 1216 2216 +a [2a0b:f4c2:2::216]:1216 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33000 +p reject 25 +r tuasorella yPt4twSmLwHNvJAAR4PTwieHQCg 7Gu8f7n9dpWYaWovgKVqmmCrXow 2020-04-19 21:05:05 69.195.146.158 8080 10001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1050 +p reject 1-65535 +r cowcat yQyjt/4BoUa4Jo1Wl33EosAkueo Jg2qmQVwxV4DZTDLDq0juEmrG/0 2020-04-20 07:28:38 192.160.102.165 9001 80 +a [2620:132:300c:c01d::5]:9002 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14400 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r torpidsFRonline1 yRECEx5rnOz8VsSimtpOY414cvc DpbE8319l8vMOEGBh98OAgEk4e8 2020-04-20 10:58:40 212.47.254.236 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5320 +p reject 1-65535 +r nobody yRzc4FpKMycjuyGJjhvFX77eWRo UY0BxDK1iY69HUNIX004pnOKQ+c 2020-04-20 03:15:24 89.14.119.60 39617 32825 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1100 +p reject 1-65535 +r eddie4nl yR3/auRc+qch4SE0IZHCaHcR8S8 dG9r0a78dfxDQM/+xO0JobN7ClU 2020-04-19 23:10:37 37.187.96.78 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5600 +p reject 1-65535 +r netzhub yS9p7ldWIA8WDM+v6cPJhNPm1WE FfjGnHsg+oct4Tybd22e/ysogxs 2020-04-19 20:03:13 195.201.20.82 21 22 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=30900 +p reject 1-65535 +r punasipuli yTAAp1TxknrNO2BzS9jUF4aL8EM 7Eti8tILKNYFLqAiR211Ox1k8T4 2020-04-20 04:05:19 94.140.116.25 9001 9030 +a [2a02:7aa0:1201::6eb7:1743]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r Unnamed yTZGygIX9zRS/BcHKX6tTFcxv6A KAl/csSjcND9Js47n+DUT8is17c 2020-04-20 11:37:52 167.114.92.49 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r lewshlyhatupaladeb yT+eCmw18JZaX39uKGIo7opC/yY pGvc4DCeEJ+OGI69+xz4I0RimAw 2020-04-19 20:09:40 195.123.247.40 9001 0 +s Exit Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r Unnamed yU0T9uTWPHvKJwEeJ99wTRnMnFg 73Jw6bliAoTuubNSjno+DNIZ9uA 2020-04-20 08:34:29 103.101.129.72 40806 38425 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5 +p reject 1-65535 +r talyn yYV98mwnRz9zONYTgyycKZq/d74 NbWuzefCGCkPI5t/Ivn8a9Osidg 2020-04-19 20:32:51 79.137.79.167 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18100 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed yZAWWXPjofJ+drGkKd4V4A9TgSw fCoD3ZPaxGtIZ/1nJw7Zxea1xGA 2020-04-20 06:17:45 185.246.128.157 40628 43290 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=140 +p reject 1-65535 +r ProstoVPN yaghx2ygctfU02jgTN3aGVsfXE8 CHbxqiK/4IQ5JRP1hMMsTHrN4Lc 2020-04-19 20:07:08 51.15.54.182 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r CedarHill ybFrXTf1McjGwCgeTsTwVuhFQdA WwV7/r93cQFU1FjW+b1r3bw/MkI 2020-04-20 08:58:22 45.33.27.210 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=623 +p reject 1-65535 +r Charles ybNKvyww2la9AGt7QmEAmAcr70w 35h2naKcQ4PvHtBf7sx7e3uDTJ8 2020-04-19 23:48:10 54.93.77.70 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=62100 +p reject 1-65535 +r sybaze ybaMgCyiDD5PpG13FT1u3IDxPPU 5wmTSEdBedOjzSYOFTUGApTYVLI 2020-04-20 09:43:30 92.243.0.179 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.1-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=381 +p reject 1-65535 +r angeltest25 ybyEHhgLNfIp/UdmT4TPiorbP2g PjH4Bgwn5c9/o2VLf5oyKj3J0wA 2020-04-19 23:45:10 185.118.164.41 443 9030 +a [2a03:a0e0:bad:bad::61]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=360 +p reject 1-65535 +r DaVinciCode yb2Y31K/j3bB/KQBBGV/K8mWrio 5K6l/ooKz48kfHL+La3PLSZnhGU 2020-04-20 12:15:49 81.67.187.21 14586 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=7040 +p reject 1-65535 +r bonvoyage ycXBhLLoegUxnfE6yGQjefFh/ww EdHpzVJV6zc1kPrIgGPITZ2ORLs 2020-04-20 12:19:31 220.245.147.170 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=72 +p reject 1-65535 +r cycasctornodensu ycbwRGzxDbba5YjpGGpuedwUank hH4LNsrrwOX2/lG1nJvSNpujfJw 2020-04-19 21:47:58 46.5.93.128 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=740 +p reject 1-65535 +r 8af34cb1 ydArFkS9R8E243n9+vSXPRoc4Hw An2R2REHKD8U2KI6dexay1fUqNY 2020-04-19 22:36:37 193.111.26.37 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23400 +p reject 1-65535 +r TorForEveryone yduMfvkBPVpVEjlBSsxAsGDhFNY ckjEvdKMpUrLRq7XSqv/wtlQheo 2020-04-20 10:50:20 86.81.82.159 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2790 +p reject 1-65535 +r DefconFurs yd85qr9ONDCeBOHlbbn6bPN64UA /j75TZFsaDLBDNWhkwB48ARwn6M 2020-04-19 23:00:54 23.129.64.190 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4540 +p accept 1-65535 +r VolkerKeyWebExit yd9kr5JuLlhONF0TvOSpfCMaNr4 2WbEAu81Cpab1P+Fbt46qpuVZFs 2020-04-19 23:28:25 87.118.96.154 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r wommelator yesjrRyH4tg4pxJK2zqoIgQcpIs Th+0xEFpPLe4oGmh/3xkM+nI1Ow 2020-04-19 19:43:53 89.244.76.1 443 0 +a [2001:16b8:5a00:5f4d:e86c:661b:a9e4:82c]:443 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3800 +p reject 1-65535 +r be0d2ef2155c yfrhHCgBpCazkwi07MxCYtVz/9E hghRjnprrhX+vPsFkWObD3zVtxg 2020-04-20 08:09:09 51.81.254.11 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14800 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r alkalal yg5ys42X18xof4ja4TamBQnPtt4 g7NMUa2ctMbBuU3Jg/plIIFFO1Y 2020-04-20 02:48:35 195.254.135.76 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10300 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r pbx yg9ZFvIUd+rTblP9ej0O6l/aL6Y gxzdLyWbp0FDJs6PKqcCKDQJJ5k 2020-04-20 00:03:34 94.140.116.167 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4920 +p reject 1-65535 +r snap277 yhppu2zS6TNek6j9PwZbXu85ZEg 5Q6vhJPpFAWFf6ym7fdCp2YkoIA 2020-04-19 23:59:28 78.221.28.59 41043 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r OnionWindows yilgP+IUPJvwav52q115QBlCccE GtfnjP6cOeq19iefaV5EuHEopgo 2020-04-20 02:46:52 80.211.150.177 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4320 +p reject 1-65535 +r niftyjackrabbit yjfNRnmUSdg7a5i4wixkmQYweIg 9ccB5XJp0c3V6k7J+WqsAuBHo8w 2020-04-19 20:26:23 185.220.101.4 10004 20004 +a [2a0b:f4c2::4]:10004 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49900 +p reject 22,25 +r PaRaD0XTor yj7gQE7t8IFyPSoPcxPaUMyrI6Q VrHaH34Ygw1J41/tWM+VRtUoYXk 2020-04-19 19:21:17 84.141.36.228 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=85 +p reject 1-65535 +r privacy4every1 ykLZWUf/5f29pRE5+vgJtDUu/+w hcyBRIIbkrZSmkMYXd3t2FmOcRI 2020-04-20 03:08:49 66.228.51.207 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=2740 +p reject 1-65535 +r 1blupowered2 yk6d/ofeh+UC87UD0H7I78ruJUk bSzVFxyRvqpvCC3CQNCOJkwtPeY 2020-04-20 08:19:18 178.254.23.142 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=70600 +p reject 1-65535 +r FOO ylW41x/SUbCWBIoiU3TE/W/k1gU Wrhp7GF0q8h/paf77/2NDGPNgYE 2020-04-19 21:19:14 178.175.148.35 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=14100 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r phasenraum ylsRJUIzN4ME5YPyjcW6OL8Ev3s yuoJ8wB84wv1OaeT29gkqDtjtD8 2020-04-20 01:20:09 79.254.1.69 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13 +p reject 1-65535 +r bentleywashere3 ymGLj7j98cZwunE5sePvziV3FVE PkoxLrO+1s+uZfrs9J10M6/GFXg 2020-04-20 04:12:12 198.199.90.205 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6170 +p reject 1-65535 +r renewablefreedom ypRwQhcmDnSD2ohxnKzXqUxWTVw Rboqu/x8b7NdxGLNRvc3umezYx8 2020-04-20 06:35:24 185.220.102.8 443 0 +a [2a0b:f4c1::8]:443 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3128,3690,4321,4643,5050,5190,5222-5223,5228,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r x55378008 ypWzWExE3tgQevWz2MJcVizGTdQ ibQ0A7IVT9yKiOseYO3KD25fQ1w 2020-04-19 22:18:41 46.4.49.62 9002 4443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=83000 +p reject 1-65535 +r androidd38589bfe28f ypnmi32Qp+mB1gNQA358mZHIntI JlZn85dUb2x0L0SPN7keGUD6UHo 2020-04-20 03:01:16 87.74.191.26 8080 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=62 +p reject 1-65535 +r Heimdall ysHusyT4ztrpxDLpnOj0Ld9MtJA TkgrcWrD5BIYoOn0zAgdjhcaYps 2020-04-20 09:51:57 51.89.23.157 9001 9050 +a [2001:41d0:701:1100::2896]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19600 +p reject 1-65535 +r beroal ysWQO6dL61hd2UfrZXsZWOJfbMM usN7a4NDw37S5sC+JSg0RN+rCEs 2020-04-20 12:27:15 192.162.141.53 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1250 +p reject 1-65535 +r faficzu ysmYUg1LgyYopgeoO+OoecGoLiM P9XlymP4lBpp8kJMsOVM4hBcqtg 2020-04-20 09:26:39 155.133.16.199 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=171 +p reject 1-65535 +r Unnamed ys2dY7dZs1VV2Mllo+AQcenftEw mGzFmqZoVxszNarIDSXTfJAd2uA 2020-04-20 12:34:57 188.165.255.84 4443 4080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42000 +p reject 1-65535 +r niftyentry94 ytFHbSPNOA9vDpgPvl9e9KH96RU XnwLKazI+NzgG4xmYlf36v7WQj0 2020-04-20 10:51:53 185.220.101.234 10094 20094 +a [2a0b:f4c2:2::234]:10094 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11900 +p reject 1-65535 +r Ironforge yuHqMyM9ztaedrQZMG7Qo6YZ6EI rjqfJD7kVwL/vNB0MqkbUlx3eds 2020-04-20 01:25:59 87.143.147.201 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=700 +p reject 1-65535 +r thematrixisreal yvV+sw/Rc4mVTJ8rQwJnNPgOOcA vUP+IVq26CoRlXpYcC1WUNLf6UE 2020-04-19 22:53:19 83.212.100.100 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6960 +p reject 1-65535 +r torrelay0001 ywQIRsZH8zjuGVDGzAMmcQIIjFA zp0DSczj6PgOpX4xWvIyvn0Yvd4 2020-04-20 07:12:33 153.126.128.94 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=501 +p reject 1-65535 +r OrionX ywylNx/OAJ1RwqXQmPm/gikPkGw 55hF5bZSBy8EORc6V7pNqwrRI8M 2020-04-20 10:25:57 82.140.239.164 9001 9030 +s Exit Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7200 +p accept 80,110,143,443,993,995 +r pkswitchcph yxmsb/rBO0waFDtCOITt6kOB7S8 w42tPKeJaENxg/wS46MHIVvSXvY 2020-04-20 10:47:06 212.237.100.250 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8340 +p reject 1-65535 +r Unnamed yx7EA6czH+JvIY0XjfiQgBTMT2U bEeeOlyWLtyHZkaILb5Db5E0t6Q 2020-04-19 21:08:58 95.141.83.146 443 80 +a [2a02:f58:4:300:216:3eff:fec2:a0f9]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21700 +p reject 1-65535 +r Unnamed yyF1bSE8CYEu0rA9wRHN6Tc4f50 36fTDz5vItIclMDrofM43xoSMYo 2020-04-20 00:58:59 192.52.167.71 443 0 +a [2602:ff75:7:5de9::]:443 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7400 +p reject 1-65535 +r Hydra9 yyiSXaYQaaQ1hAMNJhBHHx/9QQA SZCnQIwQ8/PoOqysOKqI8iQ3DVc 2020-04-20 08:23:55 178.17.171.197 9001 9030 +a [2a00:1dc0:caff:129::4938]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6200 +p accept 53,80,443,1194 +r apunkt yy29stlCLVethRSO+VEa9M5NYFI tMwTVbZX+PKuKS411VdJvqTYVRo 2020-04-19 19:20:41 185.242.113.242 1234 1235 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2100 +p reject 1-65535 +r Unnamed yzie+Pom9AwJJaNIc9jx7IJVKXk CIz0WW6Fh3dqzc6x9PB0sj/8pVM 2020-04-20 11:43:57 102.37.10.202 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=350 +p reject 1-65535 +r smell y0OLQwGLlmlQu4C7Pw9Vpo9KWps rCUBk7WBLr1Cz57ppyFLNJu0wJs 2020-04-19 22:22:43 45.9.148.218 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r doutreval y06+nEdaYKXyzaksg84JO9lF2UA gb8RiShpR4cyyqwKfGHFutgqT5E 2020-04-20 10:33:23 141.255.166.150 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r Tohru y1bLqC+t4t58DL0Z7Pd2x/8Fhr4 zRf2l0s7i0Zlq+H6D+3MZCTDvzc 2020-04-20 02:22:01 144.217.240.161 9001 9030 +a [2607:5300:201:3100::753b]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10900 +p reject 1-65535 +r 3a07dbc8ceae47a08b y22bax7T4BhuMBnvqKo05+V5E8A B1F3OHS4OCHPY0AFdYwxsLsYXM0 2020-04-20 09:13:29 51.38.125.129 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r callisto y3KnToGX3zsz7moIleW7hx0Qz5I zEpwv01Jhdmf4HV8d5S/Y/WQIT0 2020-04-20 07:27:35 54.37.234.66 9001 9030 +a [2001:41d0:601:1100::9eb]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11200 +p reject 1-65535 +r bem007 y3kF3+xxymWiry8/Ro0GEvJQ/X8 glOqxjtj0GPuO9o5vs9yycjtJ04 2020-04-20 12:10:13 178.4.239.238 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=960 +p reject 1-65535 +r QuintexAirVPN25 y3wNhB/jdu9D94Rf8gGwKQwKI54 2wplQaG1tgVwXJdOCwtsyuredxk 2020-04-20 07:34:40 199.249.230.78 443 80 +a [2620:7:6001::ffff:c759:e64e]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r ByteIndian y322gVdty0N+I7RYmyFvE6tqVQM Ty7EM9R8p42eVbX7MybVlWwa+Ms 2020-04-20 06:40:01 163.172.151.47 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8350 +p accept 53,80,443 +r ididnteditheconfig y4PDZhvNGpKYOteJHUkBY9AaU0I Y1DlsQIts3c80USGJddwP2gafqk 2020-04-20 01:09:01 77.6.180.228 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2170 +p reject 1-65535 +r alienstargate y51ftt/w1ePig0RsS/wxuIogpK4 5Nopx3oviSXEHFUJ/GJCCjo1q0E 2020-04-20 07:08:07 217.100.113.174 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2350 +p accept 80,443 +r tor4ever7 y6UOslZ1OqpEujQG+2xFzrFYPKU cX5VEpsc0q65cZF+YGpSaSLJ3uo 2020-04-20 03:26:20 45.62.230.60 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2320 +p reject 1-65535 +r dthpulse y7WuN+KSepFdcPpxVy0uogPwPoM f1TMSL9hT0jaKCQ+gN7xTe0CW50 2020-04-19 21:20:41 81.0.226.3 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21000 +p reject 1-65535 +r GrmmlNott y7pA99nyhPR6JD7iwIHpZoJ0HSI UQFf2D3C3UEUOhOYkekeeWmCCvg 2020-04-20 03:18:40 176.9.39.196 9001 9030 +a [2a01:4f8:161:36c1:a62c:457:6b0c:a1f9]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57000 +p reject 1-65535 +r niftywabbit18 y8BbDEt4ntFi90czwP/C62q01JQ GrY1WSGSrH8v7WbwGo8JCq/5MUI 2020-04-19 22:15:36 185.220.101.158 13158 14158 +a [2a0b:f4c2:1::151]:10158 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40000 +p accept 80,443 +r PacketPusher y9AJWKO4l3dOMz11wk5qdfUiDcw TkKEUPu1UZEk+s/tQHRbghhayxI 2020-04-19 21:10:14 185.165.240.126 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=46200 +p reject 1-65535 +r UV74S7mjxRcYVrGsAMw y9DRvREOxSljCC2DmsaonQriQ+c Dddx/YbnWkrKHaWD3rRTfAPgfeA 2020-04-19 19:56:42 176.31.103.150 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7840 +p reject 1-65535 +r sheikah y9hdSfnIvC/KsSVcfRllJP6SZlk 1k/bJjMkLJyOLiWhKLUxvb21iOY 2020-04-20 02:20:18 198.50.196.138 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10600 +p reject 1-65535 +r bananator y9xW01RSnRzZaIJ1DQsqNEitBBo /szCcr7PA9hOTThslAOFUJw/I10 2020-04-20 11:02:30 84.172.212.108 9005 9035 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=533 +p reject 1-65535 +r niftylaogzed y/DM2dgNei+C5Pthw2+2iYpOulA 7skLOi9ZeNwyk2obBS559ASyjlw 2020-04-20 08:53:19 185.220.100.250 9100 9101 +a [2a0b:f4c0:16c:7::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59000 +p reject 25 +r Unnamed y/x601UrZrq7bp/+AyLY0/kpEK8 F6ji13vKO1t9Y97YdZgV0uwtILs 2020-04-20 02:31:49 141.98.215.123 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=190 +p reject 1-65535 +r KagamineLenAkari zAnfsBYIGtUGhtrJZEC7LW80MlE aALJWhdhqdSi7+5EdtcihgYE0WE 2020-04-20 00:32:35 51.158.148.128 993 0 +a [2001:bc8:2dd2:1000::1]:993 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22000 +p reject 1-65535 +r Unnamed zBANwBeiXiRMNclku1GOQwhBWsw SCII/PPAHQntB3G5zgMpcIrh8AA 2020-04-20 07:18:56 37.191.205.53 8443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17700 +p reject 1-65535 +r Quintex38 zBTJfx0j7pd2aCj8jthYLiHhFmU X/MANUD3jal++urYwTVsJuHn/xA 2020-04-19 22:41:00 199.249.230.87 443 80 +a [2620:7:6001::ffff:c759:e657]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14800 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r silentscorch zBTVc1mFUpC9gDao93NG3LhfWFE czxVfWo7yI9OirQIE21XvYfI1ps 2020-04-20 00:07:52 172.105.120.162 443 0 +a [2400:8901::f03c:92ff:fe60:8e8]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=739 +p reject 1-65535 +r tornickname zBvec9SN7zICxoihWNBxjIhTYNQ GlVQoIfRzOu94S7BNLF0leAgCoQ 2020-04-20 05:32:29 51.75.200.9 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8170 +p reject 1-65535 +r Assange019de zCF5qX1OxVv6VrJ/IwDFMWLOu24 iF4+j77GXDSmswb23BT4KCXV5Uk 2020-04-20 03:03:50 51.89.126.22 9001 9011 +a [2001:41d0:700:364f:7::b9ae]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28000 +p reject 1-65535 +r giano zCLCYNGonUtbOoTNyftMs8ckI1M Yjo4lEGwHs54Zq8uVXK/LDfZ6Rc 2020-04-20 10:03:56 151.76.163.50 443 8080 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=991 +p reject 1-65535 +r Orr zCpXPpBJ/vDTmCYnwouHzYdspig nr7UmhC6usoLdf1UyeVFwEb+Fa8 2020-04-20 10:46:16 139.59.16.5 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=570 +p reject 1-65535 +r memoryalpha zC2MPCpOXsqvAn0MkCLGa57VgzA r/SNjBNtmjRiyPXqb80JzbQ+qmo 2020-04-20 03:17:19 188.192.197.141 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r Panier1 zC42hL5dIEGn+BzoynvvvG4GdG8 VsgxCXoPy13EoUV7E8MnhYfJXLw 2020-04-20 03:53:27 35.177.60.68 443 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 +p reject 1-65535 +r kokopon zDKiB5zuP/3p+OKcqzaawgwrXwo nL9FZy7IFBYxrnmGMhKv3ULeVVg 2020-04-19 22:51:07 91.222.247.27 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=821 +p reject 1-65535 +r QuintexAirVPN4 zEo66WDjYX9Jv5iHt5GGwUy6aBM NSYI+T01AWi8OjJBIk+alX1b/XE 2020-04-20 11:14:20 199.249.230.115 443 80 +a [2620:7:6001::115]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r shelob zEwstYUn6hxkITMO8+/jNE4NSp4 5MnCJSKtOmRPZ83cV1Rmmstl0d8 2020-04-19 19:37:39 38.109.217.107 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1470 +p reject 1-65535 +r snap278 zFFtR+z3w771XG+ZVr6l1r9CwLU sf4O4OOQ0Hu2UyxsH3pDoxnPE5U 2020-04-20 12:18:04 151.84.113.157 38495 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r PwniesRUs zFkRrKkGsqKgDbw4rlp/j3uCof4 psFfmg60G0NjgI3WuiCqpZvB9iw 2020-04-19 21:41:11 51.79.85.48 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r Th3S0und zGUadiCoEpIJv4ZcpuzB8JAj3Sg dMLUpAXhvNvlH20phBCC4lL3kjA 2020-04-19 19:14:06 84.39.180.193 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3010 +p reject 1-65535 +r Piratenpartei6 zGkQzyHRfBvWj+IkznaFvrQlWKg 3kbLgm9sAcV+h8kj+aTqFWVqV+M 2020-04-19 19:55:48 188.68.39.83 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=25900 +p reject 1-65535 +r idolprocess zJHd4YwWDsE34E7B50UIGHuudwc 8eB8MlMdDdXxqqVJPpvBAd5Jlx0 2020-04-20 09:19:58 76.244.38.127 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3800 +p reject 1-65535 +r fumed zJQ5npDpZbp4vrIv1OeDZXjLPNs 5c6O2RMJiIgXQkJZHBN5ZOFB3H8 2020-04-20 11:07:06 124.109.1.207 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=95 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,443,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r KarlRanseieristTot zJd8rHkawDunQtYbmkB04aB1Caw 1hELydGbBSqUN2AeIfGwMRc3h7g 2020-04-20 02:43:37 87.140.73.81 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=117 +p reject 1-65535 +r mikrogravtor zJ0QGsa5Od3kM6maRCtfYiMv9uk GIOvOSOfRV5D44wozuuzcaQYz1k 2020-04-19 21:50:14 45.14.233.11 443 80 +a [2a0e:1580:1000::11]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29700 +p reject 1-65535 +r Unnamed zJ/jUIpBlKhZ4/wD4Lm3kzApWiA WUoxHHb+YS8oEurp2rana+ToST0 2020-04-20 11:07:29 131.255.4.214 32671 37564 +s Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=71 +p reject 1-65535 +r fr3anonAF zKVUcqIiK6yxuJEDUljCF5DMpAs +SFaCCeJrBSR0bMoAsBU9+NJZAg 2020-04-20 08:17:09 95.130.9.90 8443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=28000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r guthard zKpiDVyrNM6V/jyGPZ5lIMB0Udg +I99zvQfdgen1XD4zGuKGHqsPjE 2020-04-19 19:32:44 82.118.242.147 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22600 +p reject 1-65535 +r KevKosay zLIy5aoQzcvVTpGarqLQKIMiOrU Ky8A2EH3yTxukgFlCKIDah2/RUA 2020-04-20 08:38:05 3.106.77.224 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=96 +p reject 1-65535 +r snap277 zLkSK0J0MCaOqX8B3ovz1DH6tEU wjfm1nm5q6+sJg+tN6N6KPKDhhM 2020-04-20 06:05:23 90.157.173.234 40871 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r phillymesh zL3rci9uf4fHKg/m+8ukpQU4BAs WnEVH2MXTdMLS8U9eYKWnKqIf8A 2020-04-20 11:56:40 146.185.176.36 9001 9030 +a [2a03:b0c0:0:1010::1a7:c001]:9001 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34 +p reject 1-65535 +r schattenbahnhof2 zMsBlBAToF0qmjpZJskBG0J6GJY r02mTHpMtqZn1gQgqqQjFl0KqEw 2020-04-20 07:20:26 188.68.53.92 993 9001 +a [2a03:4000:6:e34b:7cf3:194b:368:22d]:993 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p reject 1-65535 +r trustn00ne2 zNZbhGudXLJ1vRjWf0fH9iwRb3k ovOEkTTNFt6NuM5Ex3jhZKiBkUM 2020-04-20 12:02:15 87.248.7.41 9002 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5560 +p reject 1-65535 +r orwell38 zNh57l+8X+dYyOwJjUA3LHyCxcA PoX9feSzivUSyAivX5GNkaEO4Zw 2020-04-19 19:18:14 188.68.37.135 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18100 +p reject 1-65535 +r b0f44cbab55f zO2liUrtaL2Og9sgy219UK1YGW4 yu+0hGmWzetlai+efBYY0Yayl1c 2020-04-20 08:14:19 51.81.253.213 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8260 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r scator zPKLyPsmyMFy3udBcCBWkU0oSb0 SD+mlwYKk7Fca7UJtVISV6APDIc 2020-04-20 03:24:26 163.172.141.10 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15400 +p reject 1-65535 +r YTrelay1 zPL9AEj8yahCvogUcs7BSLtO9Fg /uSxDexHLHroZg/HHkWp7CtEbws 2020-04-20 00:10:46 212.114.110.143 443 0 +a [2001:7b8:60c:1:4:47:59:1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5680 +p reject 1-65535 +r Neo2SHYAlien zPUg4oKycYDvBWoPOJ0IRvu0XXw r/YKsNts+g/dDt0Cgj9bi7d1ZUI 2020-04-20 01:03:47 89.25.33.13 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r oj287 zQUt4oxceQ0EPJZXGl5ms8Ks2+8 GFHq2nr8AO3dv9UMZOcZ1WUveCM 2020-04-20 10:23:42 5.228.129.223 9443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5200 +p reject 1-65535 +r alemator zQcUU2r/HFHEk1nWol+fsnC1Ebs FoaZn0Em5bwFKE9JK5nwMZW8FcQ 2020-04-20 03:06:21 80.219.124.59 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=760 +p reject 1-65535 +r niftyeltab zQnNfH+IFbNyEMfRpihZnHjSLW0 /mU5OAzD9B9ry6IyutSMvLsAogg 2020-04-20 08:52:46 185.220.100.249 9000 9001 +a [2a0b:f4c0:16c:6::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44600 +p reject 25 +r wishosting zQ7uEuYOaG4F3DtzC/pTtKItvM8 P0qQtew4X/I25MSwdxdiWou6Mdc 2020-04-20 07:12:29 46.105.55.153 53601 53602 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16500 +p reject 1-65535 +r jaures4 zQ+aoaUGRDCx3o5kXLp6UCsn7V8 cpuTHBT+USClW7ZPYAubU9SRR1w 2020-04-20 01:15:08 193.234.15.62 443 80 +a [2a00:1c20:4089:1234:a6a4:2926:d0af:dfee]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=580 +p reject 1-65535 +r geheimkaisx zRC1KsyKCtfRtMQLhJdxvR0N/0U t1z+wjI+bzlJkFpvN1QOJQL01b8 2020-04-20 02:05:15 5.181.51.51 8080 8090 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13400 +p reject 1-65535 +r chewbacka zR/k+CVpszWEqFf2nNxKnpd32o8 bPTeB0gDI7wv5miIQuyAzcyQzgE 2020-04-19 21:52:08 178.174.172.173 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r Hydra10 zSG5l689MK1xnAZsOMf6jI/oPHA +N/yBdmGYKqFdizy01Jdi0UAUqA 2020-04-20 03:30:06 178.17.174.68 9001 9030 +a [2a00:1dc0:caff:54::a46d]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4630 +p accept 53,80,443,1194 +r order66 zSScwTtq3TQm1gO57VtR/HG41yg yMJyWkBSOebUAQyDYtB383Kd4h8 2020-04-19 22:27:29 185.86.148.90 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15000 +p accept 9030,9418,9898,9999-10000,19638 +r vr241tor zSTncTaCREMeHaMGA/8RoxfbIV8 XxsYblEM7uLytyu76pKPu1Fh+IU 2020-04-19 21:35:14 89.144.12.17 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=58500 +p accept 80,110,143,443,993,995 +r snap277 zTAhzH2ns9HDym7eiMCsr1e4zI8 Ic4/NN59KBguIX1KqQpq6qd8ggM 2020-04-20 01:53:06 76.26.67.12 35949 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=410 +p reject 1-65535 +r Unnamed zTlZ6e06Z57uKIP65UCg6l4/plE yPblmYgmLG+vcvP3vdZ/MSz6Kv0 2020-04-20 12:07:44 167.114.89.199 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9790 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r normaray zTnCWCZbJeqkq6T9yy35gQTKo2I uEczAVBQha6whIEtTBr+hFQ6SJw 2020-04-20 00:45:59 94.130.200.167 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=130000 +p reject 1-65535 +r Somone zUBqPLzzE7CwaGkMxwbBQkhM4pw TFW0uzQcoou8rICXUB3Xq1wWinI 2020-04-19 23:21:52 46.246.43.138 443 9030 +s Fast Running V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=1060 +p reject 1-65535 +r neurans zUbN1GQ/owrBDRejhytWC04X8Eg zK+2qagIyE6Q776lOSzBarL/zic 2020-04-20 07:19:01 45.76.25.11 443 0 +a [2001:19f0:5c01:152c:5400:2ff:fe70:da49]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=436 +p reject 1-65535 +r uname zUlCYE/V6jem7BiCtNjVTkup69U /JqrxamMUecr6PPI4Z6RqB5TwII 2020-04-20 09:21:35 86.57.149.3 1443 9130 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=3240 +p reject 1-65535 +r FOO zU0u0LElA0SWPwGtR4vkgqZr5HE XM9PgsMZxEafCJkzRPPrBcf2wFw 2020-04-19 19:50:26 178.17.171.115 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=9440 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Assange003ru2 zVMWp1VUwtrbh+82JOldhIwwnOg SXDJHsPSzIrIr2qpGPDdY1z0ITU 2020-04-19 20:49:41 185.22.172.106 9201 9211 +a [2a00:1838:36:29::9201]:9201 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8800 +p reject 1-65535 +r AllieRoscoe zVzxJf7Uvl2l8ln3WvPU3RgsVNA CbbyjZogwin0DKTrQ2PTHG3mm9U 2020-04-19 20:45:13 217.12.203.242 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r lairofthesnark zV+F2znFSWVYBgMFrgtxW+VLeUs m9k+h4U1WK6pwwU1KmLSfQyqz5Q 2020-04-20 03:14:25 50.193.143.42 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r TRFIAntti zW6MVIcE9M5UTNcTZdRvEQUY++0 WItRrSoUW0qybGmArjbvM85COPw 2020-04-20 10:28:04 95.216.140.159 443 0 +a [2a01:4f9:c010:49b::159]:443 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18700 +p reject 1-65535 +r justsomerandom zXpRjEeKWGr8jmPjLKAVX/BeQ5w ulB2aeF2Lta8zFqx3JKwGUTyxW8 2020-04-20 10:16:44 51.75.18.244 9001 9030 +a [2001:41d0:305:2100::714]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1160 +p reject 1-65535 +r CheenaTorExit4 zYccraFb1UYKtlutHDBqyHCmpCc MZpxHd7CXNICv7a6CkOWPHIbeUU 2020-04-20 08:22:08 185.222.202.133 9001 9030 +a [2a0c:b807:8000:c93a:ff51:90ac:0:1b88]:9001 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2990 +p accept 1-65535 +r EgitmenTorFreeExit zZI5l00EBf5BtNLEBvrjQ3l61Oo CAecVCRE4b5nLo0CkwhR44/URHo 2020-04-20 07:23:01 185.86.5.223 9001 9030 +s Exit Fast Running V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3590 +p accept 1-65535 +r titanium zZVJ7VplW6R0J6d4NcVf8A7B2iM EXW6nmn9k6ZVOhZNNB/tkfM9HAI 2020-04-20 10:39:12 179.43.167.227 9020 8020 +s Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r niftychionomy zZfdCEKnkYSn0FfsrO90CMI5xxA adU+MLCdvq+4qY9jqHIHGad0HOk 2020-04-20 09:14:02 185.220.101.135 6135 7135 +a [2a0b:f4c2:1::135]:8135 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44800 +p reject 22,25 +r agate zZikufUNGJF31PiDn/pym1Jd8SE 1nON8TPhKPQfnVgKGzVXNiuxnTw 2020-04-19 19:07:54 94.142.241.138 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=297 +p reject 1-65535 +r mcKitty zZv+MJAQd41k7V5V1e6qkrICDeg B/w2H4nz2iFm8VTWQZ37dF3fuas 2020-04-20 10:55:34 173.249.48.86 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p reject 1-65535 +r 2fjsaf2ja4da zaLDNq2H4i3wKYOIej90shBw0C0 lBpyL/vWE8//FadTNZwQ2yTGIsI 2020-04-20 11:46:36 192.145.46.247 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35600 +p reject 1-65535 +r niftygerbil zaLqMm4icsV6yyZ3PXJSwhF5W3g mZC9whV+8Y9QNh2KqbldBTK16iE 2020-04-20 00:14:19 185.220.101.143 1143 2143 +a [2a0b:f4c2:1::143]:1143 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=55600 +p reject 22,25 +r jonasBebe za66RY9hKXdmQ3UZNAdqUdhRw0g ybcRcqe1yeaU7OwvDypmfq8PUog 2020-04-20 07:22:23 95.216.53.157 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33200 +p reject 1-65535 +r Hairytrotter za8LdMRf1bGVUZio2SyKUYpT0Hs mWfpn8AGUtnCDYZ0anzcFTqBDyQ 2020-04-20 07:51:43 136.243.8.18 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=96700 +p reject 1-65535 +r Unnamed zbBc0OcIilqbaJqEQlK0xoG3TzA cjVSEP0UVOQi7xy2E7FBaFcP5LA 2020-04-20 11:04:56 95.84.140.36 9090 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1920 +p reject 1-65535 +r 2mpdhack zbJgXSvSjaMcyRlW6LrRR7ffivk d1yaQkKU4GVwdnbR7aMJPr9STXM 2020-04-20 07:08:11 24.147.232.251 9001 9030 +a [2601:19c:4500:1012:ae1f:6bff:fe02:95f0]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=518 +p reject 1-65535 +r YellowHouse zbmOJyLHfw7Ap/UWepLacENuaHE CH/nIzzeovMLagq0L7XzsFOGTiU 2020-04-20 00:31:00 84.118.98.18 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=190 +p reject 1-65535 +r PUUK4W8SKJNW843 zcTiZmh2hu7GUxPUsKXT+hZTAV0 N9r7XR8aBmU7nWnJ8stjNPmKfZA 2020-04-20 11:49:36 158.69.153.242 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p reject 1-65535 +r 48f16fea51aa zdWewpwirG8lZAPwSd/PT0TUrTo AuNFTH6Nkz3nEbVDNB/0+Fu8B+0 2020-04-20 08:10:24 51.81.254.10 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8980 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r rotorstator zd7DzEsP1QVMmbLShD3otgmkyro To67L5PuFn+BZkfXe1EOtvSMXuQ 2020-04-19 22:11:56 74.91.21.2 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3700 +p reject 1-65535 +r noisyyanky zeQUnw3GWnvhrkQDQL4cehgTXik zSKw9EY0+aTT/Rr7xaAqPBPKO9Q 2020-04-20 02:41:32 192.250.236.130 80 443 +a [2607:8b00:0:96::2b87:498c]:80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4730 +p reject 1-65535 +r silversurfer zeTF3J1jnpFbmbRh7iQwRPyiZLY sCWhtqoJb9STrcZ24z2+zcBh9eA 2020-04-19 22:21:10 178.17.174.211 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p accept 43,53,79-81,88,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9999-10000,11371,19294,19638,50002,64738 +r DuskyHusky zelVA67Efx8/fqou/UJsL/+zwqI nx1rxFYDU80Vrs6AedEHIt6YMWs 2020-04-20 02:22:30 73.225.111.191 9001 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=564 +p reject 1-65535 +r TheBlackH0l3 ze1hWtHMz3DBGIe9ipGNPQs5KQw rCVRKhSHK0RKxQ2ElUmntO50jQ4 2020-04-20 08:05:35 95.208.52.79 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=132 +p reject 1-65535 +r torrresdemorte zfNksXW89jqQM1Tl9XdktMNB4jI CF1iTy4YOYHv2Z+/fD96tZwtn4A 2020-04-20 00:19:13 77.1.94.65 8080 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=131 +p reject 1-65535 +r BananaBoat45 zf0/2kKZXXnu9C9YBn3/hifnwXk EYvnd/cAZO7f2lCdG1eQ1wvNoNI 2020-04-20 08:01:04 75.110.46.136 9002 9031 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19 +p reject 1-65535 +r Unnamed zf5Hj4w6Jrzq7CqWkLzv3qiSxuE cFOGMzCGndL1BlWLLTfnebKxz0s 2020-04-20 04:38:14 172.97.214.219 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=111 +p reject 1-65535 +r snap277 zgJPa+ZFwkWvMviJ24ve6IrjzFc UhN1fYuyiz+qvWfKBV0S6eg+H2o 2020-04-20 08:13:24 88.89.236.250 40347 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18 +p reject 1-65535 +r Miniworld zgNceUbO5oQlzSNY5iDkCKnII/0 y4YChmn6b4EnAMeP+1qWyVj02NU 2020-04-20 12:27:45 193.106.31.2 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9200 +p accept 554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r NeelTorRelayB zga6HqRf0yp56vf+ajsZGef+WFs VGhZP1oiylxXI+ogcpt04oU9uv4 2020-04-20 11:03:24 174.127.242.253 70 23 +a [2001:470:b:1e8:af1:eaff:fe86:ad09]:70 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5010 +p reject 1-65535 +r TorFakedOrg zhU+PIExhaUWw0HPjCvmvvun064 b6OZkVIc9XMDcLkqZ9FsN2UYlVw 2020-04-20 04:28:25 87.128.111.190 9001 9030 +a [2003:a:37f:ef4f:dead:babe:b00b:beef]:9001 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48 +p reject 1-65535 +r EuropenSheil zhb8xoqO+w0dPg8+e6Kk4ZUCZuk Xfd2ei6qh4zHLxTyZG450ADYLkY 2020-04-19 20:24:56 47.244.148.197 9001 9030 +s Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r dobbo zh/XZZ8t/pK4gwg8DGyXRhbRfz0 Hh8llQF9XGptFbrJf+nRTcP+fdg 2020-04-19 21:32:06 185.15.72.62 9001 9030 +a [2a05:f6c7:62:1::5]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r swgpitor ziQ3Sw1TuFRPwg3+poETyAtoFV4 xF0R3flIXze3hqKFh0YCe8z/Hbo 2020-04-20 06:02:49 62.178.138.46 9001 0 +s Exit Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18 +p accept 80,110,443,6660-6667,6697 +r qki ziVI+93l4wHDCawHWjGYwHVRIoI ldJgnbbcp3KY4D9FYkjVaQOQS0k 2020-04-20 00:21:51 172.104.126.109 9061 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=686 +p reject 1-65535 +r freezone zjTy2lt7QZ2dEmUw3OhuqH1tE+4 ELe1diX8EJL64FFWM2ccJS3lC78 2020-04-19 23:44:30 37.252.188.16 9443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24000 +p reject 1-65535 +r dpvvdt zkLRNOIjyCCQUq/fxTRAiKy6ko4 TvupX+Mqo4vV0G+qTAM8ggzTjq8 2020-04-19 21:17:38 77.37.160.18 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8 +p reject 1-65535 +r BeastieJoy61 zkfwNW2GzwoaIAjZdiMhbVYPsKg 7erjZ2/mXLzfd+JHJ31u9jPeuRk 2020-04-20 09:28:33 85.25.213.211 80 465 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p reject 1-65535 +r rymndbjcyirjoytu zkn5MpvxGKHB1CAVN1qtKYRPkwc nVaWeiahOGuyUwcLOX1V/FDzpqE 2020-04-20 11:22:34 45.78.205.127 80 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=60 +p reject 1-65535 +r WindowToTheWorld zlVHVOJF9z0HdbTHkilt2uFuIoY OylIjQ6vfmWqtSmb2vJ14FFdbyA 2020-04-20 04:09:38 45.67.219.13 9500 9501 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=70 +p reject 1-65535 +r tor4ever9 zlZPQ1KbvFp42ARJa2Vul7+r5mw 3qoTrfSKWqJgoGwJh8wVG1aAQm0 2020-04-19 20:29:21 45.62.229.190 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2100 +p reject 1-65535 +r guidelli zljPZm8gmFdQL86vHLUvY4r/vWM wnCWXOg6u4eM6xzMFhnn4/7EwG4 2020-04-20 07:01:09 194.187.249.116 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8730 +p reject 1-65535 +r armik zl7TRTmMwC1XM0fC8jj4CxjmgO4 72MzZ/TLDjv6NL4AlrKxgukX/PA 2020-04-19 18:12:32 178.140.193.198 443 80 +a [2a03:e2c0:bc7::2]:443 +s Fast Running StaleDesc V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10500 +p reject 1-65535 +r itsyndikat zmgT/qJW7mO80qF45FMgK/qmT6c jY4tkMj5q4N1z0loXRk9/KxLoZI 2020-04-20 11:11:42 85.10.196.35 9001 9030 +a [2a01:4f8:a0:6171:0:ff:fe00:12]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10400 +p reject 1-65535 +r UenoStation53 zmlLqNAZ7mDY54OMwXfmic6oJeo WhjLgCzmcoMHTTVUOgVkyU4Dymk 2020-04-20 05:57:59 51.89.143.153 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13500 +p reject 1-65535 +r updawg zmmRYqd0leh6ivNztnTaNsHqc5c CghuSpDRXPMM21Vj8MsRmM/IF8o 2020-04-20 11:56:07 45.77.151.38 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=664 +p reject 1-65535 +r snap277 zm8IWxUuohXPASiBRS2o4mExSHw oulrc6C2sgBgrph4Z8kgG/tMAh8 2020-04-20 00:08:15 73.139.34.219 40007 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=180 +p reject 1-65535 +r murphtor znf2pTf9HszN/w/o5ftEakOON1Q 1Lxuj3hqo5yxDQ8sZ9PXsQ68GZM 2020-04-20 09:26:24 185.251.165.74 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1610 +p reject 1-65535 +r tor4ever2 znxcAGfw6lPFLEXGlq+8PESNEFQ enoAugqwDCIJwZRLu2H8YwseVEQ 2020-04-19 23:43:12 64.137.178.40 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6900 +p reject 1-65535 +r mj4 zoY8Iq1au+r2Bq41oieBxAnYleU MYJOxw9Zd+04mpB7kdYZPGiQSeo 2020-04-19 21:15:37 93.115.86.4 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21800 +p reject 1-65535 +r Unnamed zopj5wSUNXDIjZUQUcH9VCA4DmE HNLMvPVlyUcqJ4ydEu8N0T2BE7Q 2020-04-19 20:13:10 5.252.152.207 47018 31843 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=103 +p reject 1-65535 +r tor4thepeople3 zqyjSHTq0QPSfKanZQsWES8Ssgk tlrgWARJxI+j9TLZm5NlozNjEFc 2020-04-20 10:57:29 51.15.43.205 9101 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=62800 +p accept 53,79-81,194,220,389,443,531,873,989-995,1723,2086-2087,4321,5222-5223,5228,6660-6669,6679,6697,8008,8332-8333,8443,8888,11371 +r snap277 zsDuoJsRSrEuYUlmFsKdToBxc+Y 0gc+b28PRxB4Wn8/R/3LFtIMGbs 2020-04-20 12:48:23 93.126.114.216 43949 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=100 +p reject 1-65535 +r boardwalk zskvO+ii86RtPAQnIda9vy9A9MU iqLslQ4b3USMaP84HiqavGgkcpM 2020-04-20 08:29:14 82.192.94.125 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18400 +p reject 1-65535 +r ndsrf ztUtqvENne2uA2Jy1dAFDxIfPt8 ENJ6/d8wpn3MVoS2dqXolwIPsHc 2020-04-20 05:52:09 78.30.49.180 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1630 +p reject 1-65535 +r FSF zugE+gOoemXKpryzolC17ZI8CL0 zQKFCxcOjRQXkZHGOF68WwRakr4 2020-04-20 05:18:30 209.51.188.48 443 80 +a [2001:470:142:5::48]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3820 +p reject 1-65535 +r vautier zuz7uC/EhAUeiXGcSdyAP2WqvHI zfPCnfpijy/5tcZpVNTrzV64/rc 2020-04-20 08:43:00 5.135.65.145 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7990 +p accept 20-21,23,43,53,79,81,88,110,143,194,220,464-465,543-544,563,587,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8080,8087-8088,8443,8888,9418,9999-10000,19638 +r Arav zvL9Dhlz6gTRRE3a7/GwvDwMObE X7IvTU4MQE5wSJjwWYiL7iEOAqo 2020-04-20 01:02:10 80.92.223.69 8443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=577 +p reject 1-65535 +r apunkt zvvLX85fs3eErUibzexG8dWcBss G2pRjCs/f3LzhmfM1mA/6A8gttI 2020-04-20 03:08:34 24.134.229.209 1234 1235 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=650 +p reject 1-65535 +r Assange033sg zwUdRmy+sxkl9IqTLiqg1/IDEgs HgijS4U4IG+4vAgBYRfGyKAEikk 2020-04-20 00:25:53 51.79.158.69 9001 9011 +a [2402:1f00:8000:800::1225]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=861 +p reject 1-65535 +r Garlic zwkWqCS8aGWdox5AFrX8DKap4pg +aCIecxxFVPQ8gJ5XJYsCjp8JWI 2020-04-20 07:34:01 46.19.141.86 8100 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r uoaerg zwzGneHn51otmV/Y2fp9IJg1Mdo FUQWLj7jvOChBhRyw2yGnp5m8ww 2020-04-19 23:55:21 137.50.19.11 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4840 +p reject 1-65535 +r 26resistance zxFY/n3xnfyL+EXhotMf6Gw0T+I 7b6FWCXmjaTd7k2mkNvcN/OKkX8 2020-04-19 20:25:59 80.211.89.207 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5130 +p reject 1-65535 +r Unnamed zx506e7qpDArVcyiJ3cVgt+TtC0 nF4CcEr5fUSeApQTXEH3oQX6uvk 2020-04-20 11:25:14 104.215.50.137 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=74 +p reject 1-65535 +r bmTorRelay zyXGk9nabwBcq6nDal7RyJyBjpQ Ude0K7y+5jwX7wgrwgsUWjtHYQI 2020-04-20 08:11:59 45.33.77.218 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31 +p reject 1-65535 +r SEBO3000 zyhTznTKhdtDPAU6b0U0kgpRT90 2eF9Or76V8SFtFnnwqtIMR08TmA 2020-04-20 01:46:16 5.9.173.33 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=44000 +p reject 1-65535 +r Unnamed zzuMpjsilBvVZUyIwzOB1xEpbk4 pt9nYmnPmXC25CWhjRQNKbQQtOA 2020-04-20 10:15:40 2.60.3.68 33333 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2760 +p reject 1-65535 +r DOORtoTOR z0NYCHKXVNdqmHpV4UODylovjE8 SAIxlLIn6hoTImQuiIWJ1X4wZvI 2020-04-20 04:37:22 34.91.138.230 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11900 +p reject 1-65535 +r fleischkaesesemmel z1VmU+cE97YZ4bvAroao4uGFoX8 NXdlzdQGaTHtjFzSTr84tiwuP0Q 2020-04-20 12:34:29 217.254.44.68 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=481 +p reject 1-65535 +r beepbeep z2mWxoud9ubnvsCRNyDabsuAEdM fG56WyT7RvFnyf1uBTBGKHZHfGc 2020-04-20 03:01:59 174.138.18.84 9001 80 +a [2400:6180:0:d0::2b9:1]:9050 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=485 +p reject 1-65535 +r cryzrelay01 z2pggAkbshCqOJL+/i9qOW2gjfM hbMxeGMm/SiFlP88t8hH7gJ0UXc 2020-04-20 03:30:46 82.149.227.126 8080 8443 +a [2a01:440:108:11:82:149:227:126]:8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4840 +p reject 1-65535 +r Assange018us2 z2ubadrB+FHYBzsuG7P9elDbUH0 0WHL1FBFrdF/9IDgdI9CnpyJJzA 2020-04-20 01:07:59 194.242.3.16 9201 0 +a [2602:fe90:604:1::8ff:ad04]:9201 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p reject 1-65535 +r Faravahar z20Kr7OFvnG44RH8XP9LR5I3M7w MiKaq2aqkuOBCcKNT0sm/vGE/aQ 2020-04-20 07:51:15 154.35.175.225 443 80 +a [2607:8500:154::3]:443 +s Authority Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r lader z3c94LT1N7uA2jVkMplAO3vxGvo NMotKAlpmUPawUNs/qF4cc5JwL0 2020-04-19 22:34:33 125.212.220.60 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50 +p reject 1-65535 +r BuglabsRelayFR z30rS+zRfgT6DWBCKYiPkdFmXAE 1oD5ex/SbbmAiRk6t132uo5J284 2020-04-20 04:43:08 92.222.92.10 443 9030 +a [2001:41d0:401:3100::2229]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1530 +p reject 1-65535 +r snap277 z38TeIEbVS1Iyaux/g9O4rHPpXY 9AhHWaMvV7B+HXaZt0oHdQcflNo 2020-04-20 11:00:59 181.29.103.47 39385 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=217 +p reject 1-65535 +r Assange034us2 z4zEdjKY93/2Ta80DSbRu/M2LFs bwT0IB8nypwqtQkxIW2zD2jaSMM 2020-04-20 00:56:28 162.212.158.82 9201 9211 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12200 +p reject 1-65535 +r giant z4/Ud57tdaD7nbjzOifVEGSOCyc z9QDwT32cxsn/3/9gDeWnh7m7x0 2020-04-19 20:03:11 185.132.133.30 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p reject 1-65535 +r MollyLee z5exIeURuAEl7Y3/J8pAOkgMsgo gYHpaAjnZDQJkIZARymzGI7Nmxg 2020-04-19 20:19:31 43.251.159.144 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=930 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r PeeVieh z6RaRzn75HfYxlAINLWfQadJopQ 75NP5RRI911HAuEiDcukjE1Glcg 2020-04-20 09:37:38 103.119.112.78 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r serv z6dEfGanCZMvA4/uawKLhKbmdug wwdFK0u3NByONXTDDNe3zEyhfzI 2020-04-20 08:07:11 134.119.32.208 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r snap277 z7BhYtQPnUaJmb1I+wG3luDhsZg 4QbdA2Gw136w3QHX+B1bHJOeWtM 2020-04-20 11:45:59 90.252.155.234 33033 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=667 +p reject 1-65535 +r apertureRelay z7FsWCssxAhPA2Sbknn0euH5bJA 0WvH3Qqfs+sZjaLFLrtCiITB/H8 2020-04-19 23:33:13 178.39.127.53 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4260 +p reject 1-65535 +r Unnamed z7GCuAzuZrxwHKEgduNyH6hAuag 7lWNFFob6dJwwGYRevvxe9mRwSs 2020-04-19 20:09:29 213.243.172.46 9001 9030 +a [2001:14ba:1f00:0:1117:e76e:843d:f803]:9001 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50 +p reject 1-65535 +r omue z7vUV/pqolBWSogt3BGBDdMmkWQ 3BVnrAZ97ge64QTeUgpkIgmL2qU 2020-04-20 02:18:07 92.116.198.74 9002 9032 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3820 +p reject 1-65535 +r cl30p4tr4pi z8FeQLOfzLnFtc7T0vGErfuizJg cYitjcNKeOgw9F3Lg/0PJlWbCrE 2020-04-20 02:18:32 87.15.198.59 443 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1840 +p reject 1-65535 +r BraveLuxor z9NLHhxP4TY8ORadZTic84VoELE kyKwRpVGp8DE6Bm8QC0vwbVE3vc 2020-04-20 04:32:14 65.49.20.10 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9600 +p reject 1-65535 +r UlhasTor z9+Z7hkj2HAyn42uVDmP1FQJ8B8 nv63oPo1+gEPgZtGL17KlBho2mI 2020-04-20 07:38:07 212.32.240.165 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=990 +p reject 1-65535 +r nikomo 0ALAYfVstv5v96J3R+wqc2mrupo vel3pUnMIPlDYflP040hHbl8RWw 2020-04-20 02:38:30 91.121.76.207 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r TORmany 0AfFs/wBWtT3CMotu0Q/n7WRWYc iDBtNAJdVXilj4OZZQfhNQuP6U4 2020-04-19 23:34:59 89.163.225.145 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22800 +p reject 1-65535 +r BFRelay 0ArHzZGy8TRerbATLYI5Z+Jkbd8 McrHux/XlMmwVVCQRm2TRDJ6EVw 2020-04-20 06:02:17 212.47.235.180 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3660 +p reject 1-65535 +r snap277 0A0qKdBEmNZvCfnl4tihTu16rRw uK6+9eqjo9rniqNQEhIZ35lf8u8 2020-04-20 10:21:40 82.235.204.11 43197 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6 +p reject 1-65535 +r k21hermes 0BlWtVW6WdQi2ZTUGsljQYOXRZc 5zq6FAq4HIAXXrlYdAu/nxfaFpE 2020-04-20 05:52:55 95.183.51.126 5831 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=171 +p reject 1-65535 +r Kimchi 0Cc8hWbMmuzkx2I3bJsGb+Dx2t0 prq3nLxLQhIjLOjD9gCgBpa0T+k 2020-04-20 02:19:42 54.36.120.156 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68300 +p reject 1-65535 +r T0rly 0CyyxAt4bvqBGwX463+8zt6wWjI EkdYK1pIHAMSaAScH+rM6kkFMqs 2020-04-20 04:14:33 81.36.82.56 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=512 +p reject 1-65535 +r carrefour 0DVOLCHZx9KIImL/La81YY7Vjbs jEMAwB+QjVMYvZJD/HwoyIZD19I 2020-04-20 02:00:06 81.17.30.44 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3700 +p reject 1-65535 +r itvara 0D7MknhrQgBfVwFPPJRDlgf7yGs 7qEVwygBMz7z5h6q597OFVDwooA 2020-04-19 19:57:14 119.17.131.40 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16 +p reject 1-65535 +r snap277 0EI6ZTDdIshSqU/cUThxO56hoPo pWO0Guy/67epOsq0M/G+oum5w0E 2020-04-20 01:51:40 73.197.100.48 38781 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r ajourmag 0F9By3igAxHY7Eq7TpUVgugpjQw RCib18j2FAEnJwau6fF5Iidd5nA 2020-04-20 12:01:47 94.130.181.104 9001 0 +s Fast Running Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=22000 +p reject 1-65535 +r ULayerDrake 0GgdqqvDIDELhhaVHWwZ9p93im8 h/8eEmTqh36oubn8r23ZVsMoXQo 2020-04-20 04:21:33 152.89.244.251 443 80 +a [2a01:367:c1f2::694]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10900 +p reject 1-65535 +r snap277 0G78z/y1o84Fj3BJD8gnoUtJRjo LeDQ9UFCtp6wZXEEBwKBy1s7Y1M 2020-04-20 04:23:22 80.234.118.215 42937 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=47 +p reject 1-65535 +r Skyhold 0HZWF2n1yT1ih3fj4F1GM9eD644 Oaa7FyHjE6Grf0ey/YhwwfcUu5c 2020-04-20 02:02:02 93.41.149.117 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1400 +p reject 1-65535 +r beerbox 0HnWgYkmaExZecGBcfsYhipKV5I QQJAsN4T4pE3X3Aw4W8RR09iNRk 2020-04-19 19:36:13 5.79.79.133 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=67700 +p reject 1-65535 +r Unnamed 0HpkH5andn1rNFexVZEezg3nFOc hFD8lqwYGWijql1GlxebRVZOiVw 2020-04-20 10:41:52 91.219.236.127 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4980 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r SNTor 0IZgttcLYkmlfYm7eo8uoslSvTU iB9XYpDR5lHHs5yOEyuPNi9v070 2020-04-19 21:47:41 130.89.149.57 9001 9030 +a [2001:67c:2564:a120::57]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53900 +p reject 1-65535 +r TheBeSharps 0JWwwntX4+/ujNuNRxtWAwops5A TWWeEHYQ6kBh4mYCJgcwnpvciMs 2020-04-20 08:06:46 51.77.50.168 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3800 +p accept 53,80,443 +r wingNutM8 0JlHXM3XKguhyP0TnYfy0qkx08A 9yNc9PO4iYl281Fw7AR6k0lN6NE 2020-04-20 06:00:57 51.255.173.98 9901 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15200 +p reject 1-65535 +r TierraNorbu 0JqYK75loWK+eW1XDyV46oJES1Q eLanGshYf89bqNuatjkBDKdX1aA 2020-04-20 11:46:12 81.19.7.75 10009 10008 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=100 +p reject 1-65535 +r UenoStation58 0L9qZAAIHaYDFTbs6tWfeb2r62U +kGK12f56s8I1dNQXogc525yYGM 2020-04-20 05:58:57 51.89.143.158 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11600 +p reject 1-65535 +r Unnamed 0M3JPJfI1MJ1EX9tRLlfiQmgHpY GOF0ewzqDwihKyXNvSozrXRMdD0 2020-04-20 07:56:05 144.76.165.136 42570 50178 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=120 +p reject 1-65535 +r toritico02 0M6JixUwwU+fzifhRJlBV5YH8dY dZIkS+BsbPX72uTjESm5Kts23HY 2020-04-19 21:09:34 143.202.161.75 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=927 +p accept 53,79-81,443 +r OROGOM 0Nk9XotGvXK2hhe0AuLbwW+KoEA Q8xA2a66G0MU13qzBYF+DBpO/lU 2020-04-19 20:30:16 50.7.8.29 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6060 +p reject 1-65535 +r moses 0OGWKyRgulTYHhQmMA0Jcg5tQ+s 4l2/pxIUsPDPweP5XaZxomALZvA 2020-04-20 01:36:49 69.164.211.18 9090 0 +a [2600:3c03:e000:34:ffff:ffff:ffff:ffff]:9090 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2100 +p reject 1-65535 +r fulcrum01 0Ofz0fWtxi5zUTfUtqpdGSSPeE0 1j7KvNYi6a5C7ZUQXheX2Fe+kCU 2020-04-19 23:04:34 92.3.146.135 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=43 +p reject 1-65535 +r misi 0OnKAVbiXhThjLFWemB/GR6Rm7E prLz5C/FE0SS3CksmFGMCZniYCw 2020-04-20 03:22:53 50.7.178.146 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5010 +p reject 1-65535 +r CHIPrelay 0O3Fig59f+KKGl42YmCoCu+b1Eg 00ACQ3ja4XXdZJDutAcboaGBEhg 2020-04-20 07:34:32 107.5.24.181 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=113 +p reject 1-65535 +r snap277 0O5IEFe3U7slwxCAZChCdX7Vtic lkNyzmhQmIg3aDVGX4Fu13S5feM 2020-04-20 05:37:33 188.255.65.216 40373 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=586 +p reject 1-65535 +r PeaPossum554 0PCfpD9o4TS55WdDeX0ED2RxdNE F+qCVIFel0ip9fcPuC5EwHZ0TEk 2020-04-20 11:12:17 193.22.133.92 9092 9093 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5600 +p reject 1-65535 +r CoolcomputersTOR 0PKILYRFD0fD/JItX2omKrE5XW0 oh5PcOfnfiJc9Zs/JsBWne6MZXQ 2020-04-20 00:24:10 45.20.152.171 443 80 +a [2001:470:1f06:488::2]:443 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=460 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r beauvoir 0QuREuWd6qTG+lB1IeYeuG0sKn4 sgHiiffgJH2FCE9x4Ftl7+ZQfXQ 2020-04-20 12:40:26 91.77.162.130 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7890 +p reject 1-65535 +r Unnamed 0Q+hDBrhMz8qxpU8hjGQyBYonG8 7TbD1t6HEuve5V3/nVFjkV+CgMo 2020-04-20 06:21:17 90.110.121.217 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=47 +p reject 1-65535 +r ca0akatala 0RHKkoCEqQfYvps/Hh0FInpfu+A q7zO4h51/auJhC2KPIZBVUYttko 2020-04-20 01:03:41 167.114.144.152 9002 9030 +a [2607:5300:201:3100::397a]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r Assange025au 0SAy9FMowG8FOSFHnPdwogg3i58 D0OnQOxbAH7baNSfhDGGTtfbCTo 2020-04-20 00:30:33 139.99.134.27 9001 9011 +a [2402:1f00:8100:400::6c9]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=358 +p reject 1-65535 +r bmwanon3 0SPA+PVigEaTxH1oxheGAjspXpg SdfuCp0dqFLJJ5/et4uNn6VbYs8 2020-04-20 02:15:16 176.9.1.211 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r zahnpastaschaf1 0ShWykpCoWIBMMvTqD+aY7j05Gk C0riKG8XjEl/KFs5gYq6aO2IluA 2020-04-20 01:11:57 2.243.81.224 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=130 +p reject 1-65535 +r dliwdiffipca 0Tj7Afi9qhzduLpKTxk0IEoRExs W1ZaeguRZLDH7rfCi9AwaDPoH4Y 2020-04-20 08:45:44 207.224.178.213 500 4500 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4 +p reject 1-65535 +r ThoridalTheThird 0Tn4/s3RGEsYChmvmORCFYbmz2w IZaZmkVWghWw2tmv9E8CLlzMWLI 2020-04-20 01:39:53 188.32.247.50 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3460 +p reject 1-65535 +r snap278 0UW7XpdNAHxZLaUermoD57R+0Io bEbt/ISqZJMl7P3ruT/nKvnhPAY 2020-04-20 12:28:47 94.158.124.173 37637 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r snap277 0Ubc89QEtjQRgGmtaE87sC+JD1s F/D2g9LpROA0R5+Zf8QpfmHqapk 2020-04-20 12:47:33 46.159.58.223 44403 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=26 +p reject 1-65535 +r nxaat 0WFiMRgiURRk6cbOL8YuSKBUiyY 7bNO4nyV8Sx9CLszb8Y5kDYduE0 2020-04-20 01:25:03 138.201.92.183 110 0 +a [2a01:4f8:c17:3e7e::70a]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=895 +p reject 1-65535 +r itandme6762349 0WLhGzPvTRuNDP+x0tKs+pTYZKU /EgxGePiAtsAJ15L9DCRDhHzOto 2020-04-19 19:05:57 178.128.9.8 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r notanotherrelay 0WhAT77soq6XUXLvcXLV+1LIZjM F5DvfZwY9uk1gKWAtjfRqIJu9Tk 2020-04-20 05:01:53 46.101.107.139 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=157 +p reject 1-65535 +r rem0231 0XRGskmIRDaChKDDDfrFFd3rq4w l0LIq49bBuemLA65nNnHyO0KKxY 2020-04-19 23:42:11 144.91.77.179 9001 0 +a [2a02:c207:2030:4712::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=261 +p reject 1-65535 +r caae76d10377 0YLshpbztybSeiY+aYk+qn2V68Y wH3eL6B4ODTziP5Zojq8nac4jv0 2020-04-20 08:19:05 51.81.253.204 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13800 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r OhNoAnotherTorRelay 0ZXlzorne6yRZz5s+3vQr1coFkY esu+/2fuK3+wzUlzx9BLFOAwL50 2020-04-20 10:00:10 76.91.204.161 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1400 +p reject 1-65535 +r fastoberargrelay 0a5+g432NesTZ/ICuElG1zFCza0 ioXNoDlj4pdUbAPAPGx3z/SjNjQ 2020-04-20 10:43:08 80.208.185.34 40001 40002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8100 +p reject 1-65535 +r theia2 0a+/MRezCLbRp6p2KxMV/YamuK8 NTRE2RH8D9u3m3SFvtzw44B9AVk 2020-04-19 22:57:54 50.7.74.172 443 80 +a [2001:49f0:d002:2::52]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7800 +p reject 1-65535 +r Icicle 0bGlUP7joF5xypCA0UzKO3RsDBc jzToJM30haMGgVkhr5UGazq65yY 2020-04-20 05:37:46 51.77.52.216 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15600 +p accept 20-21,43,79,143,194,220,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r endif 0bSGI9+CncAPuA0etT2pM3xdaOk /ODxW56AlNVOpWAoEUuK2r7iAkY 2020-04-20 08:02:37 95.179.214.37 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=78 +p reject 1-65535 +r Unnamed 0bYIiDROLv9jF6JyBh5CbR+1S6c 3Iw5titj+N5PMBWY0/Ge089PKHE 2020-04-20 11:58:45 216.244.74.42 443 80 +a [2607:f8f8:630:b34::2a]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7700 +p reject 1-65535 +r 0xdeadbeef 0bhT7Sfk39yjpU0/LiacTZRnf2Y outXB4JdwoCb9ZLjrBzq24t+LvM 2020-04-20 02:20:13 37.187.96.183 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5470 +p reject 1-65535 +r Piratenpartei1 0cX1+Pr6L5ioR1NBa/g7g/EoITc G95+YCdRwTJGVrHeY9YL26kHazw 2020-04-19 21:37:55 81.7.9.33 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15800 +p reject 1-65535 +r juggernautrelay 0cYPm88tugendZePZsmSfTqUkLs AfodZqwHvCO0L6VtMsW00EdCNSY 2020-04-20 11:47:45 46.232.250.51 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21600 +p reject 1-65535 +r Magratea 0dS6IeorGVgmZW4jf97Gacq6TVw zlR7l6YXmYkd5/y1ws9KuYlBK5Y 2020-04-20 07:21:48 185.66.250.40 9001 9030 +a [2a00:f10:121:a00:1c00:62ff:fe00:17a5]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5390 +p reject 1-65535 +r bunchacunce 0dhEAJ0B7f3KOZ7H2ubAhy8vegk FbhyDGupPWlG2h9wjKPFB5ui5Ng 2020-04-19 22:11:07 77.68.42.132 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=9050 +p reject 1-65535 +r bradpit 0ecGuQIaC/jpZj2yB9nZ7AOnDaw L8P3QEjtqTjwdeLbGyJcZkm2N+U 2020-04-20 11:12:53 217.160.141.52 8443 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.1-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41600 +p reject 1-65535 +r snap277 0fEdLE0/LeP7gsrmAaLbQh4hmV0 d2hFvfYyKkvBfgQl221BGCPGXNA 2020-04-20 08:12:12 83.97.250.144 39413 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1060 +p reject 1-65535 +r kriefukegtai 0fH1qlvPXatExETe+CghuL7GYUg Pt2HfR8/VJyODTqMiALnWir+hgM 2020-04-20 04:59:08 181.119.30.26 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r t4cc0reTor5 0fLFyCCz+WvmFEy/uE/d+dDsCBA +uZ2zanubBkTqAOJHGdC7QrSkIc 2020-04-20 00:25:33 51.15.81.148 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35200 +p reject 1-65535 +r Unnamed 0fZ7f2okEy4o2ybl5tHmwyDt4P8 jwtQMN3Q/qTESeM9HuzNpNmrJH4 2020-04-19 19:01:47 95.211.153.12 58154 47694 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=78 +p reject 1-65535 +r Unnamed 0fmmKIfNB9XPBYCnYc6TcAqWMMQ DxzAy3vI7A1PFMECXaQqdGHlkvU 2020-04-20 12:03:27 91.66.103.94 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=856 +p reject 1-65535 +r curvedpin 0gDhbCeuXD9cL4hs7BhZDcbCUYU pqVTurKH+LUe1mGuM88Grt4Fce4 2020-04-20 00:49:56 217.69.5.20 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=3560 +p reject 1-65535 +r Unnamed 0gpeqmc40z/xN/b31GtDB+vDXb4 cZ1XkHv6CqhXkTVf/rOck3k4LPE 2020-04-19 22:31:21 73.133.91.197 9011 9010 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=76 +p reject 1-65535 +r StopFossilFuels 0hC/CRYgYsBekx9xuuzZPdkQLxw Tso3AWyUAdHGAlUR6McZSvfjlHI 2020-04-19 20:24:33 192.99.69.17 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7200 +p reject 1-65535 +r king 0hU1liVL17JYnBMrw5U1/RhkF7I gRzneNJnxEh45vvxpiz/674ZEEA 2020-04-20 05:09:26 51.89.147.74 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9700 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r CIOforTor 0hiitguvK5Ep2dCbjPtELFrV2nE wGvPlco6GIIy8W3jrXauLbco1Ew 2020-04-20 10:16:18 149.28.68.142 22 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=775 +p reject 1-65535 +r lpf1 0iiuJlyWbKTpqMS3RqMKlzcGCjI iVQ4+R5vrQ+1Syn6kXgfKZtLnS4 2020-04-20 09:14:22 78.129.186.28 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=75200 +p reject 1-65535 +r UntilNoEnd 0i4TKIbRey3eby70SWh7Q9qBcng cySc2FzkhpI4+oNjXJ3Gp32MVjo 2020-04-20 06:27:48 104.144.123.149 443 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=980 +p reject 1-65535 +r mesrouilles 0jI3YZuAZCv2U6dNCRKmHPiqTW8 0t8CdpFcKYk2X5+GSjdBRjl4fRY 2020-04-19 22:18:54 109.24.157.46 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2400 +p reject 1-65535 +r natividad 0jZB/RTqqsL+N5W6vnFO5lzPLcs moC5wxiSzCW8SJ9xcB0SFZRsSMU 2020-04-19 23:07:34 113.20.31.45 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=80 +p reject 1-65535 +r squigglysquirrel 0jfi8f5kykf0BUTLU0A6v49Rw9g Ytv3whuUnRnQo2Ze9RKjU2TaqhA 2020-04-19 19:40:27 46.38.251.7 443 0 +a [2a03:4000:b:24f::1]:443 +s Fast Running Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23800 +p reject 1-65535 +r tantricsnake 0j9Is3Um+QTuyzyO0HR+8lTBG7Q CS4m9qTGK+e5DXy9hYs2mOF0rg0 2020-04-20 03:16:32 31.165.50.156 19927 19928 +a [2001:470:26:819:222:15ff:fe47:96b5]:19927 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=826 +p reject 1-65535 +r 5da24675192c 0kKVgY41w9ZT+S/8FSacfODiVXo mFjm4QcpVUC8h5r9fe3apSFUpp4 2020-04-20 08:12:00 51.81.254.0 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11900 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ULayerWong 0kXD6CRFaUXGdZWZy4oFRxNaBm0 gITjXxC9Bk+Xn8Oo9lhUnoOqdiM 2020-04-19 23:14:46 107.152.35.69 443 80 +a [2607:9000:0:28::847c:1d8a]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r kukuruz 0k0MKKtIdoz4t53XYtYdtP0BVnc 2MYPB/aWR6XUSzB9zW0BhOfeFvM 2020-04-20 11:17:40 109.70.100.14 443 80 +a [2a03:e600:100::e]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=93900 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r FreedomPanda 0k+3FDRdS5Bhzqiay600MIHxSSg V+TbRFEBgHuYjrqIW3bF6vn7D/o 2020-04-20 05:23:29 93.190.141.26 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14000 +p reject 1-65535 +r QuintexPhoulRules 0lIQzgfEnypPK8elBusPXqf14sI SkwbvM+1HP4Kl02U5siBrJBTSp8 2020-04-20 10:36:23 199.249.230.112 443 80 +a [2620:7:6001::112]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13200 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r amaterasu 0lQXwEAHThok+/N7gjNkNzHw26U c8BPh+C5/g9i/polhlqCbEb12YI 2020-04-20 01:17:07 84.198.103.245 9001 0 +s Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28 +p reject 1-65535 +r AccessNow004 0lUmi6y7RWJVTPIBR3Mb2g2MRSs qytZcHafWvayiPt3B1he/eEkAdg 2020-04-20 10:33:14 176.10.99.204 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28400 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r ymybe 0l1BnBZ/PMjU0FzSp+KUW7KHk0w FeNcoIr4Q5y1HnTufPzadZ90MiA 2020-04-19 23:12:58 46.80.137.189 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=790 +p reject 1-65535 +r bogustorus 0l7pIRbRY1pBpvfkeNk/bQjAN7Q AmVeTNbriPsC6wcLCq+CSGi1Ghw 2020-04-19 19:33:59 162.253.55.248 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=589 +p reject 1-65535 +r bf6 0mDy6hfTdYFNe15miQTFLyGXAVY bgFq43bsnY1+q5Y24r8dAfUBO60 2020-04-19 19:53:10 185.11.146.95 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=165 +p reject 1-65535 +r HazelFox001 0meqoANNFKlh+j27k734xW7Snmg 7jDKhYNtcdQTJ9DBrfocnQUwuAc 2020-04-20 11:59:27 83.15.29.198 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=211 +p reject 1-65535 +r niftytelicomys 0nIIiBu9tepW79HReZGHUZWR4yU nTO8OqddcfK2EoVV4tJIWlL015g 2020-04-20 11:47:41 185.220.101.137 20345 21987 +a [2a0b:f4c2:1::137]:27666 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24600 +p reject 1-65535 +r zlasvegas 0n1IQcE7h6FA8JJG1TIemcaCS7I aNoi75gohW/cyS8q0RG+3utn1Us 2020-04-20 04:22:12 209.141.41.103 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9500 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r roubaix 0n126CfpKZesa8s+h/9uYewHCZQ JUmXtGAP/pt/DSbLkaPrOxwCRNk 2020-04-20 03:05:35 5.196.73.184 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=297 +p reject 1-65535 +r niftyentry64 0obtM/yyg4W62do9axKmBMCDQxM OgvSrNMaShP6h38cIRanfv06Z5k 2020-04-20 10:51:55 185.220.101.204 10064 20064 +a [2a0b:f4c2:2::204]:10064 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r niftywabbit11 0opfG7uCzVmAf6+aEmBCIJJ3XaI H36uoftwjR3AGNGV00pgDVmZhoo 2020-04-20 10:52:12 185.220.101.241 10241 20241 +a [2a0b:f4c2:2::241]:10241 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38000 +p reject 25 +r BourbonKid 0otQb5a53bte4dOAWgBjAHY7ZwI 1Ak1ly+ZZR4C0R/eNW3QDLeaCWA 2020-04-20 12:05:11 217.160.29.199 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=653 +p reject 1-65535 +r Assange020ca2 0psx/bXt0tG5TNMcLxO1z0EbEmg zQ5OX4lpNPVfjiuf+o+eJ84DLYI 2020-04-20 12:40:45 162.250.191.15 9201 9211 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6490 +p reject 1-65535 +r Unnamed 0p1riFKvopTA5ALfeHB8wXXs32k ZBBVPS6LAtpIboGR0qybETiGZE8 2020-04-19 20:25:05 70.44.88.31 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=107 +p reject 1-65535 +r hubulubulubuhu 0qMm2ALhYmHyqHos5E92ZObvMG8 m4LD2nB8smpb5fAcoIN7LvTQ12o 2020-04-20 02:28:52 84.157.51.118 143 0 +s Running V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=70 +p reject 1-65535 +r BiochemistryClothi 0qYJV4u+aaTNfB3sEEs81wQCNTQ K++HhfSE+Khbn/BYDmN+3qe9cR8 2020-04-20 09:01:09 8.209.93.160 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5440 +p reject 1-65535 +r JollyJumper 0q1nVEi/oHS6jwE3URqzBqMnH6Y Rm+pXCvVTZD5XlhyocbRQ3lqdtg 2020-04-20 03:18:11 162.243.194.203 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=79 +p reject 1-65535 +r k0nslNET1683 0rGZVXu64qfe6A/LBO9ceRp42xo uDRtbTd47f5xMZl2We3/K4VeLro 2020-04-19 19:33:23 198.12.66.114 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=23500 +p accept 20-21,43,53,79-81,83,85-86,88,90,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1043,1103,1113,1194,1220,1293,1500,1533,1677,1723,1755,1863,1883,2082-2083,2086-2087,2095-2096,2102-2104,3690,4070,4321,4643,5004,5050,5190,5222-5223,5228,5287,5675,6880,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8502,8601-8602,8888,9418,11371,19294,19638,50002,64738 +r FreeHrvsk 0sB2qJgzeqL9O4qwChkDEvNAXxw P52tOTb3pG9i6ZZN3x4d7TfrEzM 2020-04-20 06:29:40 45.95.168.146 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5360 +p reject 1-65535 +r snap277 0sND4VY9QOOH3S83mWz3VqrB9EU PX+a4/nB0hAcZ3zl6VfnozWhGMw 2020-04-20 05:57:07 109.20.87.190 40085 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=954 +p reject 1-65535 +r Unnamed 0syo+ite55U6d4WEsPlUi981B3A IA28FOyans9a7MY6aTx74ldPzuE 2020-04-19 23:47:15 139.59.67.16 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=270 +p reject 1-65535 +r torthegrid 0sy68GZO9cA8j+l3ZuEj+ctbNkU R0dUiZ8aVSI7IS1ACus2BlmXX9U 2020-04-20 01:44:21 5.9.140.188 9001 9030 +a [2a01:4f8:190:14af::b00]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=96 +p reject 1-65535 +r snap278 0s4GIuWm7y9Qs8NEwDWxwt9HmIY 9zoqzqXWhWGt36aLiaTnQ1gfPdE 2020-04-20 12:21:03 41.142.109.112 46237 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1 +p reject 1-65535 +r DeathArmyRelay 0vFZHga32ze3gBqe6IRj1rYBhKM eLxKBcAkCftQoFTAVWP4ZrltMWU 2020-04-20 00:26:12 176.152.45.213 9002 9031 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7 +p accept 1-65535 +r cairnes 0vTaxZGLsIKlz6xSdbKfrJs5mys JnYIwzETvyjVx7O1vSxIhUzpvuQ 2020-04-20 12:31:22 95.211.210.72 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19000 +p reject 1-65535 +r Zion 0voCi/dqq691DSZIEwim+6BVFDM EXUm7VDa3IrrjDxVMqXu/Pdm058 2020-04-20 01:12:00 92.196.159.81 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1020 +p reject 1-65535 +r Dibbelabbes2020V3 0v0BkxqdjbGJ7tYcddJ7fXESBFg oWNVocafxwkIqVEYJtXTcHzf6ok 2020-04-20 00:40:59 95.88.24.67 9040 9035 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=44 +p reject 1-65535 +r 327c865b2922 0wvOwO4TWfVX4ae1dAZQuZK5fgQ nYA91wO/6TDjUGmaxnI9SrOUiGM 2020-04-20 08:14:46 51.81.254.19 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9980 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r mine 0w6dTWOQaGEdbZaGHJXCCZFAuAU XzAbsqGIeqAyniEWVNThEfOqtmU 2020-04-19 22:26:10 46.38.237.221 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8890 +p reject 1-65535 +r ISNJRelay 0xFcIJ4yDz93yDU4aDxHQQoQ0ic CTXJV+qoefs2lB4uMeSDOJ96GZc 2020-04-19 23:32:42 173.214.162.70 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10700 +p reject 1-65535 +r NYCBUG0 0xfHiJFi6exKHaGhCVwqDzd1Ntk r9fw0jf2Z9oAXTnsDo3GhM3aEDQ 2020-04-20 00:50:35 66.111.2.20 9001 9030 +a [2610:1c0:0:5::20]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r Eliise01 0zGMfH7IRHPmlHvELSvKeOAL3jw vy9G3n4ouRu1WqCBRIS1BIjfT/8 2020-04-19 20:38:29 185.195.237.24 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8170 +p accept 20-21,43,79,88,110,143,194,220,749,853,873,902-904,981,989-991,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,8074,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r QuintexAirVPN2 0zKS/t4k3UDyOFKD5VyH+FwJQ7Y taLEKXKvv5+ajXKwBeyrDa9vr0M 2020-04-20 00:53:39 199.249.230.121 443 80 +a [2620:7:6001::121]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15600 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r mytorboxrelay 0z5UcuZxDwRvRQC282eiZiOB1P8 jrkcXat2tcVRb/68Ds9IS9Jx84w 2020-04-20 08:57:12 78.210.254.127 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=769 +p reject 1-65535 +r BraveKhafre 01aCq24p2RqgMOA6m+tCcA2Woe8 hM8m6z9OUr7OXv8YSa1rsK/6FIw 2020-04-20 04:27:24 65.49.20.10 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r rot1 03a4R8DB/VV3vnz4Kuc1wolQnjc BmUK1iTXRPQdsBX2de6j4njIR90 2020-04-20 12:38:37 195.62.52.239 443 80 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r jello 03uPw6kPphURmj3W7f91RPYyuAA KcHG2jqU/0//htIgMvHQGaX+Kuk 2020-04-19 23:04:10 79.140.41.13 12345 0 +s Fast Running Stable Valid +v Tor 0.2.9.9 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2920 +p reject 1-65535 +r zinthrop 04DFet6P8ZifZ9IgVc6q1/FomtU R5UIBBNScNqs7p5TC90ebvN5mdc 2020-04-20 04:06:16 31.184.198.183 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1300 +p reject 1-65535 +r Unnamed 04qlYmK8d2UOFtrlvYESz+Q2c8k Vs4MoSvDia/kZ1Sqzr8xfebFVvU 2020-04-20 09:05:42 52.155.110.95 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=870 +p reject 1-65535 +r 558aff2634b7 045qAmBYIqxwCtCPBVEJOr7VC2g 0LZMQB4+jIROLqEJzpC7rof502c 2020-04-20 08:09:27 51.81.254.26 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13800 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r jersey 05Mo0urjgW+cXV0bsZ0cFOLnlII qlmPjsp6M75a+Tj/nmRAAB7r97k 2020-04-20 03:44:25 145.239.0.204 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18800 +p reject 1-65535 +r Unnamed 052aO0Hp2hKMVVlkYeaAAvAy6NQ nhfwfmYn0WDav4BhIP4b0d8qdLA 2020-04-19 23:00:57 52.246.254.204 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3530 +p reject 1-65535 +r FuckGoogle 058s2Qojb5SmG3Zha0hzMp2neIg nv7gXiG0Xvt+vT6lzj8UErajr6I 2020-04-20 06:24:20 87.118.112.136 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7740 +p reject 1-65535 +r 3zpzl3mnsqzy 059m3kkQ064cNBXkUBIZ07meGE4 Q7E3HaqxGeKaRBHLsQZXPxwWIhQ 2020-04-20 01:41:33 45.56.90.176 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=520 +p reject 1-65535 +r 5fd833ae 06j+uIFpw7WFnZvDjiykZSBkdcc hGX3IaFpJjg7OpIyEdIi2mbjzC0 2020-04-20 10:10:41 95.216.51.174 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13300 +p reject 1-65535 +r blockchainsociety 07cq2i8+7aK6mPZF1iDKHEBgqvQ XfcgrGZL1erM0o+oNGO2zt6/340 2020-04-19 21:31:03 51.38.185.201 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r piriti 074MT+w6xZVZktM257+Z3B8mAgw +/e6Rsu4AbHmRxXddJWwHYoDDVE 2020-04-20 04:09:37 204.13.164.107 9001 9030 +a [2620:13:4000:6000::1000:107]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5890 +p reject 1-65535 +r gGDHjdcC6zAlM8k08lY 1AX8zwat7fiY3y8pyTSNy2IwMbo WBeh8/5fqNXmxRn1Bb90xqm8PI4 2020-04-19 22:35:58 5.45.111.149 443 80 +a [2a03:4000:6:2388:df98:15f9:b34d:443]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r quetzalcoatl 1BBTdpo4v63m0G9LurmIxrNN/Fg zRa8ExcU7YU/4eGNNGs2jeZYnZg 2020-04-19 21:22:33 213.152.161.35 15804 15803 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=430 +p reject 1-65535 +r gare2lest 1BMAKVK23gcDu43GbSI4yMSxGxQ zKbGRU+DKWE8KBqS3jo855YKESw 2020-04-20 03:37:46 86.243.64.232 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=455 +p reject 1-65535 +r Unnamed 1B8JJDa1yKoQvXGEr2TC+Yt7Avg ZwhlPi8RYaaKwGmzZyhtY6SgSLk 2020-04-20 03:22:22 92.116.150.250 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=270 +p reject 1-65535 +r BigMacTorJuan 1Caz9/8USq4krs1y7ZaCDdszgFU /j5uvWkxPICkhpQCmuOoUlGa7Ew 2020-04-19 23:32:55 173.240.255.4 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r Akira0x00 1CyFFKHdeuGRJmqBF7++iTPsWHM LqYLXIWX4Y7mPg0GYP+f23Xneuk 2020-04-19 23:04:21 80.211.133.241 1984 0 +a [2a00:6d40:72:2ef1::1984]:1984 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=908 +p reject 1-65535 +r Eliise02 1C7odL0F6vHt/EgF4PkLJNdMa4A hwkclOkNhTkyixTXnukR0VDkgso 2020-04-20 00:31:58 185.195.237.118 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 1DJlwOHhY62fSCbkE6iBdTU0/v0 Auvjtb0Efv18XP3lSHBF/RUxjHQ 2020-04-20 01:55:25 72.133.210.70 36187 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=720 +p reject 1-65535 +r Osterei 1Dn8O18KgXlvRiIyAZepADLK5Ns RrubuDEXhgHaW7KrP2wIZIFUrl8 2020-04-19 22:32:00 109.106.57.91 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1000 +p reject 1-65535 +r ZeroCool 1D7zF5n9zlojXR529DJMAPaASwU 0EPXn9GOW2kn7bQDHpu1Rj7h9ik 2020-04-20 01:59:14 23.129.64.217 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6200 +p accept 1-65535 +r korff 1G82j9z7k2Oiqbgnn/wjMbVAvQ4 iXaRhSPi+ncRfrjVdptMA1ZlKQE 2020-04-20 12:42:08 188.214.104.146 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r bridgyvps2 1HL72cizuZroopKY7BZbl0xcPRU SS4y8sjUzdRz4lrXg3kBKoxstQo 2020-04-20 09:44:49 136.244.81.197 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=942 +p reject 1-65535 +r Unnamed 1I3CKoEL9H5mxnimOqVHFd0+mHk YFBsDTEONXDaxamLD3LLGR/MebA 2020-04-20 02:55:06 51.158.111.157 9001 9030 +a [2001:bc8:47b0:20a::1]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r cepa1 1Jkb8Uv31LtoTlarAqRKbKY5FgY u+GJauIpq+2R/BmU+tB87B9Ooxk 2020-04-20 03:28:05 185.100.87.41 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9990 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r AllCreaturesWelcome 1Jt2WLgm5QfME4ru/NYTWzIcCW0 VSQVQxHOLG4a3fIKnn9ARBMeHfk 2020-04-20 06:07:40 173.212.221.10 8443 0 +a [2a02:c207:3003:1795::1]:8443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p reject 1-65535 +r Layer13 1Ju3UUx49oMD2HmvfD1dZxSPWZs 8vSA/VluNmDnASMnOaMeXymAtgU 2020-04-20 03:52:25 51.15.232.19 21 0 +a [2001:bc8:600:2340::1]:21 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2560 +p reject 1-65535 +r Unnamed 1J0AcdkjbvxqxScpKJSlohQ/gV0 NUEFjAA2ap3TPS7XUUiYApvWemY 2020-04-20 02:49:07 185.244.128.21 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8200 +p reject 1-65535 +r Lubuntor 1KR2eOWObjj8kPHYD9Gf3+bFjZA qyMNFsi46Dc1Luqry7eUmULzSPw 2020-04-20 08:13:56 2.233.91.176 19001 19030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2830 +p reject 1-65535 +r pot8torelay 1KguIfbCf+CL0hrmZJH0Ly1TRvE bPqzUI+ilO4hsraOiL9z7xu8/iM 2020-04-20 04:30:39 129.213.118.101 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8480 +p reject 1-65535 +r MokshaMedicine 1Ku6qZpEYKUfS44xO/3ukRkTrFM HE/ETtGo8nY470957eG6c/soChc 2020-04-19 22:58:53 223.165.66.57 9001 0 +s Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19 +p reject 1-65535 +r Unnamed 1MFnMudl61LrC3Sds13BTI4N+ZY N3bwdSymkIQAtQfc8clsdUJk6Gc 2020-04-19 23:18:01 144.76.168.36 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4710 +p reject 1-65535 +r snap277 1MZnNicgnx2erQ9LJ5582P/AUPs GXBzNDfDVwjEOcVpEZnHXrJmXqk 2020-04-20 08:18:58 87.222.10.14 43789 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=149 +p reject 1-65535 +r Unnamed 1NEHaAsIl9/+5QDmJamKqoBgx/E paW9aHRPZC6pA3yNTua30DSvKaM 2020-04-20 07:36:09 168.235.67.30 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=97 +p reject 1-65535 +r micheletor 1NoO2P+xd74EPwliiq7dz5PIYJo 78CyHq+ri3QQbJsBshlxepXfeXE 2020-04-19 19:45:50 91.68.43.163 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29 +p reject 1-65535 +r NotNSA 1O6AFsIEMq5H+14MK2D+YLC/IPM ko+/Zt2BeNrqst3rlubVJ0OeSnA 2020-04-20 08:04:20 172.93.48.197 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1470 +p reject 1-65535 +r ratatosk9 1PYTSNyS4isDEMHWAoOXlRZmXNs Px0DlNOLVK6IZW+VlUhHnCx7nrk 2020-04-20 00:20:34 193.150.221.63 443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=460 +p reject 1-65535 +r theia6 1QEBoqvQncJF9+lsCBjQA83WI1E xZ1FS2gK4EAarZS5klFAF3Q5Q0U 2020-04-19 22:57:55 50.7.74.174 443 80 +a [2001:49f0:d002:2::56]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9000 +p reject 1-65535 +r Janky328891 1QOeHr/ZbZo/mEa/meyfde3ekCo yo0GAWTfFwc97GumKkicvBtLDDE 2020-04-20 01:24:57 37.187.115.157 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4000 +p reject 1-65535 +r morha 1QP7sZvmn2PXrKqbZ8qirHtEixE wz4vi8ZRs+QRAwsha4NoYyp4/BA 2020-04-20 02:06:52 188.120.234.26 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6400 +p reject 1-65535 +r insula 1Q33aYLw0r/bKKdTB5zdY6GSwy8 5JpaB/fqMGOHWb7SxlEd8gGeWQg 2020-04-20 02:13:50 178.79.134.196 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=542 +p reject 1-65535 +r comeandgo 1RsoFNaygpX+pIc0OzdnrooHVCE 1CZe8Z5PS8fETXf7FUYFL6fRb5o 2020-04-20 09:49:27 204.12.225.70 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26 +p reject 1-65535 +r SmokeAspectRangers 1SKPpaqf2zgl5vGZr6n55vlSahc oob6oQF67BiSbqw1NmVP1UPnkJA 2020-04-19 19:40:09 82.221.128.191 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9460 +p accept 20-23,43,53,79-81,88,194,220,389,443,464,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Waldmeister1 1SoWAwPGONn7A0Y/imt5NNV4f0w hU430ITPfEkTh3bU4iKOTjZLkN4 2020-04-19 23:50:00 145.239.7.168 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57000 +p reject 1-65535 +r niftyguard08 1Sugd8rKkBl5Ncm//DE4hgYT7M4 C3SxfS/DXBKgwnF6v8hqQl8/deA 2020-04-20 12:44:40 185.220.101.217 1217 2217 +a [2a0b:f4c2:2::217]:1217 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 80,443 +r GottaGoF4st 1TfoL7mBC1+d9XVm4/dp8SzlUhc MdjkX+UoPJesPNMXiJWiFVGjVj0 2020-04-20 06:28:12 24.208.7.160 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=281 +p reject 1-65535 +r node01 1TrhcL9mUKLGZASE/htd0cCriVs gdBgWCx95GWR9cwjCw/JNgT9Y7E 2020-04-20 11:44:56 84.245.10.24 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r ididedittheconfig 1Ts5uZ7bXqJhzbSQzfMOn4NaUUM LKB7FoA+jlR1X1o84Jh32ZPIc5Q 2020-04-20 02:32:52 193.148.70.201 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7040 +p reject 1-65535 +r Unnamed 1UlQtL/q8zhzgpND0jYKUbSPQ7Q JD6yuQ07L2ZXkC/dplIf6awo2XY 2020-04-20 07:46:05 52.231.51.79 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=320 +p reject 1-65535 +r MyTor4U 1WB63R/dtldILiPwmrFzMQyAJZA CkaVkakAJ7AXFQQG/Jv0BOIyQHw 2020-04-20 01:28:01 5.189.142.118 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11200 +p reject 1-65535 +r nicotrack 1WjqoqcBevzT+61kERySy4/TpBg vzFaAK4Csut8ewJRFW+HnnqmsXY 2020-04-19 23:52:31 212.74.233.18 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1640 +p reject 1-65535 +r snap277 1WlABqIaXCfAzTWGVP53vbeXnz0 UbdFKXOA4FtKo5Bzohlv1ADtUk0 2020-04-20 12:44:31 72.191.35.77 41803 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=639 +p reject 1-65535 +r sTORch 1WqY04/Dx14DR+7z3ZwSdJr3x8U YSn5++9JbD8uKjYoZNYXVvjGCqo 2020-04-19 23:19:09 217.182.196.70 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=110000 +p reject 1-65535 +r 3D2XP5F7V7GXBQ9 1Wt8wJ6VWY5k7Nr0PJ+eOBC0rDs yvCtuoIl87DcZ00PXMe8TSXayQo 2020-04-19 19:30:35 51.75.222.161 443 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10500 +p accept 80,443 +r TOR2503 1XtX8DgXCNdFfYIWAsxGo9BWaTM ADGri3PC+FMuchGHAl1fmdI+tIY 2020-04-19 20:19:16 185.38.151.56 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=380 +p reject 1-65535 +r angeltest16 1YErq1KCCk1Ejl8W7jY6D0zu9pE LYqlHK7pLoTGPFFpH7wNi39nhUo 2020-04-20 07:43:32 195.123.238.164 443 9030 +a [2a05:9401:0:acdc::191]:443 +s Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=44 +p reject 1-65535 +r bauruine31 1Y2jKpeP6twSYbWodjEm8+krCEk DP0MehY5VLI+nOfjd/q9s/eMSyo 2020-04-19 20:18:45 88.198.17.248 8443 8080 +a [2a01:4f8:222:30ca::1337]:8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=123000 +p reject 1-65535 +r CTFlyra 1Y6ll95tc+70KuhB5kUFTgCRrPM TAS0is/0HqvIw0QLGEnWPXrfvBU 2020-04-19 23:39:03 188.40.63.57 443 80 +a [2a01:4f8:221:485:188:40:63:57]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2450 +p reject 1-65535 +r Enflurane 1ZjihlFkr22ZWPyaN9glwoOoDDs I8QTZ5jyVfOWKhmIaCvRdlj1KZM 2020-04-20 07:17:25 2.80.76.66 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4480 +p reject 1-65535 +r komeru2 1aKzrh6ARwF6C7xyCf1iTbhNR84 DMsP9uawN+IZnTsjz+nNloHex4s 2020-04-19 19:52:31 104.244.76.184 443 80 +a [2605:6400:30:f99f::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r Unnamed 1aiYsLn7bES0jYDBo0Mo9a+RlfU 9g41uTF/T1WZlcl+r0vL7srTx70 2020-04-20 05:02:36 51.81.253.219 443 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5930 +p accept 1-65535 +r revopaste 1bGXTpAZfNDbOmY/gDDiACE1SJs /btCY6rfdWRBYhrf0NkfneubBGA 2020-04-20 09:07:09 45.142.214.107 9001 0 +s Exit Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r Unnamed 1bYs2xyFcpI7WgP/COM+hbmKi1c 48SWQQrPN981ZFMmuMONTuT5NpE 2020-04-20 04:11:02 82.64.154.215 9001 9030 +a [2a01:e0a:1f1:f6e0:a01f:2cff:fe07:60d9]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p reject 1-65535 +r afdstueckscheisse 1bbAUbi8UGfXWSiQht7CBeqfYxk z88WYLrKilbYrjCd57tyhGqzLFw 2020-04-20 06:06:40 209.58.160.36 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=570 +p reject 1-65535 +r FastNode 1bga7zh/P643oIhHWpd3Gn8kb9A z9987EM8g7RBDQkffqlSQ3w+MRw 2020-04-20 04:45:23 5.252.224.98 9001 9030 +a [2a03:4000:40:41f:3873:21ff:fec6:753a]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=60900 +p reject 1-65535 +r nx1tor 1cM/PiA3KO34Nh6oaLKTnMxD+vs CP2zdRePiW8r5ngMj5Kfq8z0P14 2020-04-20 06:42:12 12.235.151.200 9029 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6600 +p reject 1-65535 +r skosh 1cb2Kl0bPHEcpeb503cqQy6W9sI gLQsheQ5H8+P1rrqNDw3qDy4eMQ 2020-04-20 03:49:34 94.130.40.100 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=73400 +p reject 1-65535 +r Graph 1dSVdheISA0JkGVPTEtuW9ESang QGniRl8yA5kfPZ3h87LHhzZG5a4 2020-04-19 21:58:37 5.13.219.75 9001 0 +s Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=31 +p reject 1-65535 +r CheenaTorRelay3 1djDHh+EW0ZWSxEiM+7PtTkGCRU 9PjHH9V30MfpuoUe/CjztvdjFMk 2020-04-19 22:21:44 5.135.158.162 9001 9030 +a [2001:41d0:8:d8a2::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12900 +p reject 1-65535 +r che 1fLGX0ExoUaNW2eog4qbftjASeI EhB4Fh5F5YuuMwvJPo3EWsWv7oo 2020-04-20 10:53:07 158.174.122.199 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49500 +p accept 20-21,23,43,70,79-81,88,110,117,143,194,220,389,443,464-465,531,540,543-544,554,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5269,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19350,19638,23456,33033,33445,50002,64738 +r CloudSigma 1fVQLBdioLc3qBpr23jdv378dyU 8GH9AwZjq4Pp2lWJrRjhvbseBwI 2020-04-19 23:33:19 185.12.6.234 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7800 +p reject 1-65535 +r llama 1fqsQTgnK+4p6kuj8ZgbJctrb18 NXn87FvyOSxEizPEjIZwLHlXoxs 2020-04-20 08:46:22 66.42.63.19 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=163 +p reject 1-65535 +r 0xFE31x00 1gwtherZPSPxwAh00zS7+Kls1Sk kQ8CI2UUznr/dQjpsf0f14mFw7A 2020-04-19 20:38:52 51.68.186.59 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10700 +p reject 1-65535 +r MrExit 1ij2uyMws/eNu0vtRmsKWG10eC4 vtap5GbFWqToc5iCxxnMiG23MJg 2020-04-20 08:16:30 144.217.7.33 443 80 +a [2607:5300:201:3100::c20]:443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10000 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r tordebain2 1jdUF5VAx7RzZKBwh5GEzP3JQ9s V6DWyTt9z/9oABMsaETqoYZi3xs 2020-04-19 23:43:13 95.216.222.158 443 80 +a [2a01:4f9:c010:4bc6::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2880 +p reject 1-65535 +r ByteIndian1 1kyWzQd7tB+uhHuP5B/xll08hys +TSXRMgdm24BB/dmAgxFNZ3c8aE 2020-04-20 05:25:04 163.172.151.47 9002 9031 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7920 +p accept 53,80,443 +r nickesrelay3 1l24S/HrTdIluaHNnO/Ye1laMPU S/f3e0MTQLsaHe5LqgnxzREwTsk 2020-04-20 05:16:19 193.11.114.69 9001 9031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20300 +p reject 1-65535 +r drogo 1mcPtUshgYznwTUkqgAyWLjjXTg B1nY8x4fRhGVxMImtst/8P1athc 2020-04-20 12:41:53 94.100.6.27 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6800 +p reject 1-65535 +r Unnamed 1nEEAR2KOftAQyc8NBvVgyhiGbA 2BCTmponM5QD1pTbqrBulyVFdNY 2020-04-19 19:04:50 144.217.64.46 20580 18607 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=490 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r ZwiebelSaft 1npcLaBydrbm0MQCiSSCzqNXClc FpqwKOOrY+hcuCbmU//PKeErbEg 2020-04-19 21:11:49 198.71.61.123 9001 9030 +a [2607:f1c0:1800:b3::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6160 +p reject 1-65535 +r mmarb 1n3wwsUEvC+e92bzBuKpZ9gf/Fo BKhArZtC0amE4/PxmkZUduWHvTA 2020-04-19 23:00:38 51.89.85.242 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r smell 1qdAXoF6re/Kyk3pBtvwgGqx4Ew ZuRmhYX0sanFANpHQaqMfj/jyQY 2020-04-20 01:22:44 209.141.48.144 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5050 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r pipit 1qnjIHF7wcjDaSkvxecpKz6ZTtY MWnZMDnLy/L06FNLz4IHUYhef/k 2020-04-20 02:31:05 199.254.238.44 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3400 +p reject 1-65535 +r Unnamed 1qyLhRM3L2R0NEyTuKWorj48liw 6fsuL67jz8OFdlAzB5T/7dIOu+I 2020-04-20 06:10:46 51.178.52.245 443 80 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r SlowBison 1sFJ3Zx+Zl6S51Ks55bD/P5K2n0 EquMgdD5SkLd6usD729FUqUA9No 2020-04-20 12:27:36 198.71.81.66 9001 0 +a [2605:f700:c0:1::de9:142a]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=330 +p accept 443 +r noxdafox 1sl33wlohIh4rALiH3ile4S+SbM 9KPhW9n6q+NnT3z73akqvoJfdyM 2020-04-19 20:51:51 89.27.53.224 110 143 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=759 +p reject 1-65535 +r wrongopinion 1snn5DpE6/4OhJhK91jR9c8xMHk tY6FlmX+nZpiYiTaY3EV3wrpsz0 2020-04-19 22:22:54 216.250.97.250 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=507 +p reject 1-65535 +r king 1tO96meTsbheThDVQObHziTCyfk QRYFF/fZBxcGzA6nJ2gZG4ZMs2k 2020-04-20 04:38:35 51.89.147.70 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r hsalc 1tVb5O+E8M16DhECL1HxQ42bGGE qdPcIft3m1Nakk9Xl0wGs7M4Urk 2020-04-20 06:42:31 185.56.219.31 443 80 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r AnosognosiaRedux 1ta2YUye8trROsDJRIetjtO2h38 ZWVIZw/biKjZeAgSzFluE7PYZhI 2020-04-19 21:19:47 185.220.102.8 80 0 +a [2a0b:f4c1::8]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=68900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3128,3690,4321,4643,5050,5190,5222-5223,5228,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Goetze2 1tj3YCr8ZEEn6KUjysTQQtoc8sU 54ZgGXoIqpJ3P/3ZrySnXzI6Qfc 2020-04-20 07:16:43 136.243.247.89 443 80 +a [2a01:4f8:211:115a::189:2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34900 +p reject 1-65535 +r BienwaldKA04 1tlnMQLfFDXBpm9MmOaLVvGSFvc EIBL96apyMcx70xy/1ApZdGl6xo 2020-04-20 01:04:45 88.66.141.186 9004 9033 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14 +p reject 1-65535 +r Bundeszensuramt 1uYNYHgzSGrBVTQx/6VOzIeMmv4 WiTdTy4RivFsEwPZgUZLF15u48E 2020-04-19 21:32:24 185.115.177.149 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=256 +p reject 1-65535 +r snap277 1u4L7/o1OLtTlX1EdhcMI4bHITQ PgRu/U2sMFcosvc/DRRygAq3fgk 2020-04-20 11:22:45 176.223.74.85 34455 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=27 +p reject 1-65535 +r puia 1vA+++URQX133PwaPx611L9Qn4E ZlZJYYQQWgUO+NiK/K2MBP3O0Ko 2020-04-20 00:53:25 213.136.78.104 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r snap277 1vpNDC/gjOl6mnZZRMU609mV7kY T17ci3XhZOWG1R1Yyj4Zd0oD/PI 2020-04-20 09:33:13 90.169.225.151 33505 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3030 +p reject 1-65535 +r QuintexAirVPN28 1v8ml86lwMfahHl8LnEWOBT8JGY +NMw1Q8mwaihCaPiMTupsP+EG8k 2020-04-20 05:33:17 199.249.230.81 443 80 +a [2620:7:6001::ffff:c759:e651]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22600 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r UnivUtah1 1wGsr4ZBPpJSnqjjIIjH/EXqb2k /opFZMEp9bNqLbyeeNKjh7pamiI 2020-04-20 05:31:33 155.98.5.5 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4900 +p reject 1-65535 +r shhop 1wgtuX5/BIHL9LiMpfVoM5nhlqM 2M5wpaowo3LFCt4uWWqQVcXVt6k 2020-04-20 07:12:30 212.83.166.62 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p reject 25,465,587 +r NaiveFrenchPoodle 1xC4RJyOxOPtVbjHSDtkRe2aDbs lw4lQ01jZETuwFXyI1+LNn5Wkw4 2020-04-19 20:12:43 51.77.149.34 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12900 +p reject 1-65535 +r lqdn 1xscocncfoymQVjhBq13CiEWD+4 M45sE/h2hSgbdk46ikS0/27k7FA 2020-04-19 20:41:17 185.34.33.2 31415 9265 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6880-6999 +r snap277 1xup7mBwKwFAAq5ZVGbFVYnkFUw gZeaPvBrKoX7+yBMWfyKYWxL15s 2020-04-20 11:03:58 187.18.199.36 43745 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r FalkensteinTor01 1yMPTxMySijDCK+U4jhdCn8bBfk l97ZWLagqJ2/mpeUl1jw9nyVRHI 2020-04-19 19:28:24 195.201.168.84 9001 0 +a [2a01:4f8:13a:1082::2]:9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=59000 +p reject 1-65535 +r weizenbaum3 1ynGiDgswqV2CJcWvhBJDS1m/OQ BV/wRniYmhGdKOJTaQqNdh74YY8 2020-04-20 05:16:59 62.102.148.69 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=54500 +p reject 25 +r NuclearShack 1zFr9/1jPddHSxjDPh1f3rBNJqc ROVZYTNQSWbLDjrUDhiUBondMhs 2020-04-20 05:55:08 158.69.205.247 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r emmentaler 1zThN91TYtUGiuPgIR6yl7dsFhU OtiVpGHDPdeq83I1FXNAsHgG2Ww 2020-04-20 05:44:27 179.43.169.14 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p reject 1-65535 +r ThreatLevelMidnight 1zixYeDCF9oVxslMGD14q2WO/Io SPbuFhEJUhOBwKiGX9CbtkZnuE4 2020-04-20 12:08:32 185.10.16.41 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3980 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r snap277 10CWUs4zaJi49939Ie3Jpt/p9Ks dIgUq155ZjdiN3o9+nSVimgkzLk 2020-04-20 03:05:55 75.132.49.53 33727 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=68 +p reject 1-65535 +r imascriptkiddiehelp 10SjgPT8NPnREgii+ejGndVWw3Y 2/QrgBgRO1YcrFAYbFHbRiI0mr4 2020-04-20 05:01:01 87.64.232.119 9443 8282 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2450 +p reject 1-65535 +r CodainGate 109hnHTC5gGjnr5YyONN/rO63pk 0u49zJtWm9ykKdUIr7u5qfb8Lh0 2020-04-19 22:05:22 173.212.217.247 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3690 +p reject 1-65535 +r rofltor03 12EQ53D7X20Jy4AdY3nDOhpsDMM qxFa2Vuc5CVbhE2ULsWpnX5QkT8 2020-04-20 07:36:05 192.99.152.50 9001 9030 +a [2607:5300:201:3100::348e]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12100 +p reject 1-65535 +r rye 12LXB/xW7RaddMeERRa0YhPhneI 9vqNlgFyo80Mx61BfnUmaRpke+Y 2020-04-20 02:18:54 185.12.45.117 9090 8080 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23400 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r rainb0wsss 12wy3h1oRbnZcfMA7+dEkjjErAg c8au9GZ3zdQfSFOV9/qwf+i8HMc 2020-04-20 08:05:07 108.62.123.92 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=208 +p reject 1-65535 +r 2propstor 124f3Ho9iZKCu4gvdBEbNqbRS2Q 5NBfEOCDnWGrRBH1VFWcCPV+FL8 2020-04-20 09:29:42 69.62.162.178 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p reject 1-65535 +r zmoe 125Pug3G8nhJGJwfnd1hrjQMG2E 9QP1xDqmpDc/GHqReOOXI03q9Kc 2020-04-20 00:50:19 158.69.63.200 9004 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8200 +p reject 1-65535 +r Ruminant 13OpirWVIosuDCYm7b9zLi9TlCA jd73jocLdO8wO0d5dY9/nJFtUkk 2020-04-20 03:22:14 95.115.84.118 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=830 +p reject 1-65535 +r slashcrypto 13fTH5UIHQ9yI6rV+KdJd9UkFF0 zjEwUAKSI3uD7/vW0bxTJsxQI+s 2020-04-20 01:51:57 85.235.66.146 993 587 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=37000 +p reject 1-65535 +r niceRelay 14KaIXJiIK93QBvlsrEyljoL6Cs GEGQWp5LD2nHGwpsPMSOHBWNZTo 2020-04-20 05:50:17 94.254.74.134 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12400 +p reject 1-65535 +r grapeATfou 14wZgxEKyxzUmZPFJSwALJot9B4 6QkyfKc79w6JX6BEt7PrPRr02sE 2020-04-20 10:43:58 89.245.196.14 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4050 +p reject 1-65535 +r snap278 15ALURbvNih1rcJqwHVBBnpseY4 Bm4idHjnS90O2EYkhAgmLXnDbik 2020-04-20 12:43:04 94.244.35.222 34764 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2720 +p reject 1-65535 +r pmfncone 159T/4RJOk6ga6YssABnwCYBix4 LlgulwtnrkCSe3s/B0ijjEDq5j0 2020-04-20 04:29:34 104.171.113.18 20710 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53 +p reject 1-65535 +r goodvikings 16gOlYkqr1H/JM98LOSTEZMbVfc 7CS3MQho5+MnlQ85Ck1g53iORfk 2020-04-19 23:49:22 198.50.128.237 9001 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=62 +p accept 53,80-81,443,3128,8008,8080 +r snap277 16+4u8c79dxMI+NoPPzs8oAZM5o 2fSIdvC2/a+LkYz3lu4OxpBP/4I 2020-04-20 07:20:55 84.119.220.148 39501 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=240 +p reject 1-65535 +r ph3x 17Rlyxttvig1FH78xBvhb7wD5XY 3ZVeQyzP19L8P9QxV8xRzw17q9s 2020-04-20 11:18:03 188.118.198.244 443 80 +a [2001:858:2:30:188:118:198:244]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5000 +p reject 1-65535 +r darmok 19EnN348bJe8CbdyCamgxOMMrW4 AObvayc7/uStZVsy80hlpyYkgGg 2020-04-20 00:09:42 91.121.154.109 20443 29030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=302 +p reject 1-65535 +r z81zq1rzvi23 19Qlfr3KumIx9NV6ttNQGx7NqrI 1VTX+XfcUSCL8yWco4rPwLmj6+E 2020-04-20 12:00:41 62.171.169.177 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=11000 +p reject 1-65535 +r bauruine55 19kFGEUEc5qnkP/zLfiCzV00z2k 1PsmkOmwPBpoJRUfm6ePs2zxR6A 2020-04-19 20:14:31 158.58.170.183 443 80 +a [2a02:29e0:2:5::7]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12600 +p reject 1-65535 +r SECxFreeBSD64 19uOgmBPgGdm/D+AITz3GaBIHQs 9IEpmdxEAJnAvkpxW1misyMUlu0 2020-04-19 21:16:29 195.169.125.226 9001 9030 +a [2001:610:510:184:195:169:125:226]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16600 +p reject 1-65535 +r Unnamed 19xLrIgWn51VEiHiLDR2E6NpL8A kr+CE2phaEVp/DTU1FaD1U9d2tQ 2020-04-20 07:53:38 84.139.25.9 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49 +p reject 1-65535 +r ThorChangedMyName 1+G09QT8IgJ/oGul8fD1nCT6KRI PFauEX2agTrP2Fu8YKAi6Mud8es 2020-04-20 11:58:58 66.55.67.28 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=90 +p reject 1-65535 +r smell 1+uPAnW+7B5o4XWzF3WlnryhbDA kBSQ5HOBgPvapzEH7RErfOY451g 2020-04-19 23:53:39 209.141.60.236 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4500 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r arbitraryKenzie1 2AVsrUo9bufYJ0gCdHS/XFPladk ufEXGbubE9+EIEoUC6uqFP5I7AU 2020-04-20 03:24:19 95.216.14.222 21 0 +a [2a01:4f9:2a:f21::2]:21 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19400 +p reject 1-65535 +r csgeorgetown1 2ApQ75v9d8/OpTJvOJ4k+TLW+do I4GiRdG5Wjumy5/Kr4FhzvLqDIA 2020-04-20 00:05:41 209.148.46.83 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2530 +p reject 1-65535 +r bonjour1 2A6iFia/roBE5AN/52UlLhV+NYY fqKr+BQkGNQU1BimBiD+ayEGM8g 2020-04-20 09:20:39 188.138.33.233 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=76000 +p reject 1-65535 +r hviv120 2ClDQ0skIE+/G0uBjP6mTyBd6sM jTmmVyYt14177IEnjmFJ2sv4jnA 2020-04-20 11:41:28 192.42.116.20 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r xak317ne 2DNpeLgIdYspTtIvekBSFAnEQR4 s5diwzl8mww6cJPbfJmhhqdL/qE 2020-04-20 10:31:59 88.99.170.178 9001 0 +s Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=16 +p reject 1-65535 +r Unnamed 2DOnOc/iZQ0NN4JxKjrMYdci2Og mLlOGnfdvYfYiWwHEsnBwLHfmeg 2020-04-20 10:24:49 78.108.216.127 29166 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31 +p reject 1-65535 +r Precious2 2DgOCN7fbJCgnsN40fbBiB73lHY nnADnzB71yOf8btd/FCWok4Vm1M 2020-04-20 00:10:36 95.215.45.138 443 80 +a [2a02:7aa0:1619::394d:31f1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19200 +p reject 1-65535 +r MassRelay 2Dl4BrPyOJ7Gt6r1vJz9uQPq/eI 8ygxWXG17lsg33E7oSB4SSSjccs 2020-04-20 08:41:07 157.131.113.196 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5900 +p reject 1-65535 +r Superfly 2GHrz9XG0sRn6ecduJWesKNsj9M En35zvZGdVdkmIJppuoEW/piDLI 2020-04-20 00:45:12 133.242.146.78 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=390 +p reject 1-65535 +r ULayerEdmonds 2GutXtVOugVeeWyHvpm7xLWofhQ PJYO+ixlf/Wzp8OabBDmMQLGtHs 2020-04-20 07:52:39 23.160.192.167 443 80 +a [2602:fea7:10:0:8000::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r saberrider2008 2HMwSPyOyRAkZq2PMJhiK/G/cf0 G+eTOPlImi4ixbhuibkvDyw+z90 2020-04-20 06:18:10 95.91.105.14 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=980 +p reject 1-65535 +r TonTliquid 2HqUeiQFxBIIxX0y7R0MouvpOvY MX+w0UMkOjI3gPEHeWYCsUJ7Afw 2020-04-20 10:00:18 209.59.173.26 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r Garados 2INxJfmVWbU4W0oJ3XAHlR3Re5I uAEdnzZCJbzNh7oQ9SVyEpSO9ZE 2020-04-20 01:13:53 80.253.92.71 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=21800 +p reject 1-65535 +r Friedrich 2JJn+xC/Yl0x/3aHr30SsDu/dXw AIfixk5mgn9x+hR49qRCuLc1gRY 2020-04-20 11:27:00 35.182.71.209 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21800 +p reject 1-65535 +r Unnamed 2JKvo8lqdmjA67eTwY4Ro1wXGwg K6kMaJIpXqSX/V6q3bv+M66GfEE 2020-04-19 23:15:09 12.28.90.125 54329 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=55 +p reject 1-65535 +r rippedlion 2Jcphr4Z4Ch3cN9RxHxjClPcbpc W8OuPPvqlxr9XVqFtZE2o1BDU0U 2020-04-20 06:15:01 45.76.179.27 9002 0 +s Fast Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=631 +p accept 53,110,143,220,443,993,995,5222-5223,7000,9418 +r privexse1exit 2KH1qOoa9T40FLnEj+axDDGsybI EztQJvRJ5pxlgDxc6jA3+9Ky9JE 2020-04-19 19:35:05 185.130.44.108 443 80 +a [2a07:e01:2:13::2]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6490 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r porthill 2KLQCAsMc+HcDsnzO0l/ZOX7P1I 3Eh7SkecphDkc8mxmf6/2JuTmQM 2020-04-19 20:36:57 136.243.176.148 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=90000 +p reject 1-65535 +r snap277 2K2jt4rFeGjkcn2hna+1T7uwQwo 16t6eBpiSrqLDK6eptIOlTsKk7M 2020-04-20 10:56:10 83.199.121.146 46785 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=145 +p reject 1-65535 +r AaronKSQC1 2LFvuc3/IowDsaYos7RWIPk+Mgo G5BuCcQW9BZSAiN4FqD32tgPsQU 2020-04-20 04:41:17 198.100.145.207 9001 9030 +a [2607:5300:60:8cf::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=3280 +p reject 1-65535 +r aberto 2LTDHk2vnLyJ7BPj9dlorWzci/0 jKSpKQ/R1oLAHKuR2XUGsjtss18 2020-04-20 07:11:59 91.203.5.146 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2660 +p accept 43,53,79,88,194,220,543-544,563,706,749,873,902-904,981,1194,1220,1293,1500,1723,1863,2082-2083,2086-2087,2095-2096,3128,3389,3690,4321,4643,5050,5060-5061,5070,5190,5222-5223,5900,6666-6667,6679,6697,8000,8008,8087-8088,8443,8888,9418,9999,19638 +r sci 2Lh9MrfLsh2MVAcPntiaDouPzgE J+BX2mKE7GsbJMXL4Doym6qyFOA 2020-04-20 02:05:09 149.28.63.128 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=3810 +p reject 1-65535 +r CheenaTorExit7 2LmadVazpUaRD1BfN09V0kF+7hI H6eUpX3aXqAtjMbrR+RrRszBJ6s 2020-04-20 12:09:13 176.123.5.250 9001 9030 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8080 +p reject 22,25,119,135-139,445,465,563,587,1214,4661-4666,6346-6429,6699,6881-6999 +r cepa2 2LmuLM+vMKeXSq65s/6vA1sHDYE FSZgKhk1Q7N1OVSfR951HjIQpKo 2020-04-20 03:28:04 185.100.87.41 444 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11400 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r dfiusec 2L1DezFlID6JDQ21ffKsEoyVs7Q HbOEGm5tjEkGSr4temUs5dvP5cc 2020-04-20 01:28:15 104.244.74.47 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p accept 20-21,43,53,79-81,83,85-86,88,90,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1043,1103,1113,1194,1220,1293,1500,1533,1677,1723,1755,1863,1883,2082-2083,2086-2087,2095-2096,2102-2104,3690,4070,4321,4643,5004,5050,5190,5222-5223,5228,5287,5675,6880,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8502,8601-8602,8888,9418,11371,19294,19638,50002,64738 +r iiiq 2MgKX0PGUMmGQKXC4VkJScyWpHs owTD9fsuoybCwdFKNWSOBcDPgPw 2020-04-20 02:50:54 89.247.195.231 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2750 +p reject 1-65535 +r bchgang 2NR/nrbTeWvSCqwxUwuNHdkgNMI v06EdEuFVPZUnp4NaAtGyVtRKPc 2020-04-20 03:46:41 185.247.119.31 3389 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=330 +p reject 1-65535 +r skwidchipv3 2NkRQk5bmBAIrvn6ysVxhSM1uQg KU2ABcyGKfbxxlW87HsG4u5oDaA 2020-04-19 20:11:33 91.186.8.150 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2600 +p reject 1-65535 +r Unnamed 2N+WYCYbFYqd9sPX1j3ZKw/Vufc ILPnWcaKpQwE5U0CMaYYKFG9wwo 2020-04-20 04:04:17 185.61.148.225 443 80 +a [2a02:7aa0:43::e636:5252]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29700 +p reject 1-65535 +r AMBROOS 2OS7f+100meCnPO9RfgsgJpdN5I MaNcU1FwfkNi2iv3a6OhBOHgPOo 2020-04-19 20:46:26 185.62.57.162 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7080 +p reject 1-65535 +r nononicetry 2Ogy3TM0dpQN0IPoAjDhe8LBb18 43zst7LJpmrezHfxvDxfpkFl0zE 2020-04-19 22:24:41 159.69.152.208 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7000 +p reject 1-65535 +r tryler 2OoQXnmAP7AECowqZ22T2uos//A pmJMW/VIp/E9U6+aBkvTOVOwlbk 2020-04-20 06:48:51 185.117.82.71 9001 9030 +a [2001:67c:21bc:1e::1:1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28900 +p reject 1-65535 +r Chandra 2OyYMTCG48hbV45z5WD0CcyVnsQ jxtBqKc58sM0HtlwJACL+JXA/6E 2020-04-19 23:01:44 45.77.13.56 9150 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=323 +p reject 1-65535 +r Unnamed 2P3HISo/QFcd+xL0F34Ad4oFvGE V3/nFN8wFMxrfBqZB7iNSopDSx0 2020-04-20 12:20:58 198.98.51.242 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7280 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Piratenpartei3 2Qe80LlRDEYu6waI/VQhzS4XK3c dn7BhJTqeqcq1CBhsQOvl5FCwYk 2020-04-20 02:10:29 185.243.8.74 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19000 +p reject 1-65535 +r balthazar 2RY4KewuejQumJMlYsfr7zqVPww xf0uY5pwDYFS+yppYxyYZNVWy+g 2020-04-20 06:18:47 37.48.84.193 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1490 +p reject 1-65535 +r snap277 2ReiRxmEv5s5257fUzNEmLtpWRU Bo0WqQehFcqaVON8wjYyaCLd7QU 2020-04-20 11:40:37 90.77.20.45 38213 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4420 +p reject 1-65535 +r Unnamed 2R6XP592H8l4SWFvO1ewCDrG2iM ASYl9ppAuFSqw0X1evkgPB94nFk 2020-04-20 00:15:08 82.36.64.183 61666 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=456 +p reject 1-65535 +r Pinto 2UAAIi/GOIJztcl6+w6A1/NjBg0 gjju7a//L9YFFCJ+/BPbqsxhfwE 2020-04-20 07:23:46 37.44.215.83 443 3306 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35 +p reject 1-65535 +r Tardis 2UHTgOUijntNNyr01IRimpbcSLk 4Yj+UMKMGsiDv9jYELh+ZCbrvPo 2020-04-20 03:22:53 158.255.212.178 8443 8080 +a [2a03:f80:ed15:158:255:212:178:2]:8443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=272 +p reject 1-65535 +r franovgnet 2UdiOzDJ1uFC59kPxzaLGipPUEU M0b0jGt3lOKSpicx2BPVQBjTxRY 2020-04-20 06:08:32 51.75.64.23 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4260 +p accept 53,80,143,443,993,995 +r Splinter 2VmAwV954JSuJVuo8bV/1sgfK1Q IJXHF/PRoorg3A2+P8cG+D22gNo 2020-04-20 04:24:01 200.122.181.78 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=369 +p reject 1-65535 +r lolZiggs 2Vu34l7E9k5JkIjeW/2bbmHsbtE CEhnXGzjY/Ef6Xt1qmDawnvVcPM 2020-04-19 22:48:41 154.59.112.72 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=21000 +p reject 1-65535 +r tor01 2WWFX3eln7vF0SJN+5wSqZI1UHk 3ZW6hjAVJ5qvTOCeahJsW2yfSH4 2020-04-19 21:09:33 51.158.173.137 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p reject 1-65535 +r AnonVerona 2WXG4giePmH128atB4xJSAzwcOk vj59yjSHzNHsbWhPbMFeBY86fR4 2020-04-20 07:35:22 37.116.74.90 465 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=330 +p reject 1-65535 +r nickesrelay4 2XGk4YEWK9mf7kwq1gXWBKT9XUs 0WS99Hi5pG/zbvs94kRDQdXCb9M 2020-04-20 05:16:58 193.11.114.69 9002 9032 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22000 +p reject 1-65535 +r NoPermanentRecord 2YPslyZMD7HJechKzZHHAnPEEnI e5Fa8RI52iWPcAiPz08ges5cjKI 2020-04-20 05:12:45 62.75.142.215 9090 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=214 +p reject 1-65535 +r my1stBsdTorRelay 2Yrhkfq3tQ6FHzRLeSk5S/uvt2o PkrxRAA4L4cB2lYo3TSmMSF2zG0 2020-04-20 08:36:23 146.0.34.111 9001 0 +a [2a00:6020:11d1:4a00:20c:29ff:fe47:8aed]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p reject 1-65535 +r NeelTorExitA 2ZCxrAwYcJvDsqKN/xxMZBJFWbw WHtP71lm2fK0LaV9d4nm1Mwe8/g 2020-04-20 05:36:45 71.19.146.41 143 110 +a [2605:2700:0:3:a800:ff:fe87:5681]:143 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2870 +p accept 53,80,443,8080 +r Unnamed 2Zwyhx+lP7MZa21QPKLPRPyQgmE 6aIx6qU6JPIcN6eyt9vaTIJO6CQ 2020-04-20 12:00:28 209.141.33.133 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6120 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Warticuno 2cnswTCM37s+oH56wrBhfdWD+Rs hATaBND7sMp/1sutagL9FKTh6EQ 2020-04-20 02:34:57 104.238.138.241 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=2440 +p reject 1-65535 +r KYOTOKYO 2dE5hJMlSRHm8BezrvhA2BMcQ3c p3/Wp7inXKpgJD3grafDZdx4/lo 2020-04-20 00:38:50 13.230.39.30 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=579 +p reject 1-65535 +r slowplace 2dLwfIXQOfnhs5fSf94aUsdGBRs TEN5GHjwLrdGJaV078JJAaDq/l0 2020-04-19 18:57:06 178.128.86.51 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=222 +p reject 1-65535 +r traktorzetor 2dbDXpMv73EAoAyZwZk1boLat+Y qY/kUDXdEaODAO1dzjBooPJ2ln8 2020-04-19 23:07:53 185.8.236.131 443 80 +a [2a02:2b88:2:1::2f0f:f001]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1060 +p reject 1-65535 +r tzkuatnode 2eGkPwEEjS3nUCgvmEv+7MmJHX0 x8hslrck4ZQa9y1mXq1BT7cbj50 2020-04-19 23:41:54 137.74.117.63 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8930 +p accept 1-65535 +r squish 2euZtY67MWgTJN+9FboMjHI4tSY l6jfPbPi326CXxXWz4jDHYCITUA 2020-04-20 11:03:22 75.34.64.170 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8200 +p reject 1-65535 +r atlasfragdev 2gTJwIJpOdXUYKB0MVSBDNHRMd8 GSx1Cai0rcfPP+ddt8nx2ZMhrU4 2020-04-19 18:57:58 45.79.181.153 9001 0 +a [2600:3c03::f03c:91ff:fec8:1e73]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=583 +p reject 1-65535 +r interstellar 2hPDzX6yPN/XOcMYVWWLxbY4Qe4 c2DJiRRWJMCJmVqXXdc0Z42ZACc 2020-04-19 23:34:57 104.196.43.128 443 0 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=490 +p accept 23,53,80-81,110,137-139,143,179,443,445,5985,8080,8888 +r snap277 2hq1MfPUMz1fJ0WLXSSJ9KGZhCk lia3gqVM74xglkhgmOhgmy7zUL4 2020-04-20 07:12:31 92.137.154.128 43269 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2100 +p reject 1-65535 +r Mjolnir 2huLjWF5CZAlcnkM6LuZ2lAsZIU ijHFDJ58scOsWtrycq4LJdY1UKY 2020-04-20 10:24:28 205.185.117.149 443 80 +a [2605:6400:20:3ea:c2a3:1162:7224:e5df]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 25,465,587 +r bassblitzed 2j8xca+BqugPMgofYiNtyZhSGKk fZJ1ERH1+3pFzdjXzgqs7fMt+5U 2020-04-19 21:58:42 45.128.133.142 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r barron 2lOYTbooQgFp809PRMsk46CUZ0c 9muB0JkBp0a+GyvmrrrIpq5FS9A 2020-04-19 22:28:23 81.22.255.146 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r anon 2mDIXVJjdMHcioeW6T8S98owGfI h/DMSFkV4dQ4NB/8tzNovL6fK+E 2020-04-20 05:26:23 51.175.245.162 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p reject 1-65535 +r blackstar 2nESbh0LEWBVM7etOZ3Vp+yOLw4 Cax7uds40pKCvtxqXYL+ssBo3SY 2020-04-19 20:16:22 80.127.107.154 9001 9030 +a [2001:982:cb89:1::5]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=789 +p reject 1-65535 +r Publica 2nomc08wRpPc+FiU7U+xDcQj+Zk Gl/tJX/iTVGVLnwIYF0uATUegeI 2020-04-19 21:26:21 51.15.58.175 10238 45030 +a [2001:bc8:4730:5a04::1]:18293 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20500 +p reject 1-65535 +r kyra 2n0OJ7CPAyx2Y7WMMgheJSnLzaI 5zlRMdIr65LCIDpvI3KC5E2zPKA 2020-04-20 00:17:03 91.216.111.52 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=90 +p reject 1-65535 +r PCGG 2n0ssh1z0ZRppu2jqTXbanYpsxc gKslkvSoMwjBLMWBQ+q6UVJNPm0 2020-04-20 05:47:25 110.141.223.194 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=110 +p reject 1-65535 +r rddtor 2ocKL4lOkz7DkcKbTp+qkHDvr7I rHJvHC414vokte3f6y6cyyQ5WwE 2020-04-20 12:42:02 85.229.202.131 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=560 +p reject 1-65535 +r z0rb4l2 2o129fWBlpO1yW9Jm6GfdAQBR2k 8PcbAlZCog0XUHod8pkjTIEx3rM 2020-04-20 12:28:27 148.251.11.21 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=135000 +p reject 1-65535 +r tapatapatapa 2pHCYNanj3SL3xcTGh8dGEQ74es xbaGFsxRlsuA+jVLm/mx4GECCAc 2020-04-20 10:01:18 50.45.171.217 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5000 +p reject 1-65535 +r svnW4qmO 2pnx/atgum4kwOdlhe3VBrXToyw URnkjvqyqUlqUBhjSLUDbF5JaH0 2020-04-20 07:05:19 188.127.189.155 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.3.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1320 +p reject 1-65535 +r bigmekk01 2p4Cu4CA5HMVcFL3BDm3iGqoVp0 POLbH/xaeHgftYPgiXZiAWEWZWw 2020-04-20 05:04:58 93.177.67.43 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r netShelter02 2p8pb7cyxgVBd3/sxSoX29VNAvo FtUX3Zgs1ARQUEpNwxjtCRB2YBY 2020-04-19 19:20:06 185.121.69.16 9001 80 +a [2001:678:a00::15]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=41100 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,25565-25580,27000-27040,50002,64738 +r ResisTor 2qIdJgbNsiziGHJtb0bTikJSSwM Ok/lKZ3InfqLrVNUzpDDrFs0nEQ 2020-04-20 00:42:19 77.189.3.253 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3660 +p reject 1-65535 +r Arne 2qOfwAsZazU8KicUWcMFxCmvCeQ XyXfHkNnnPqBFpxipzUwQ4VAn8c 2020-04-19 22:02:05 193.35.52.53 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r angeltestexit2 2qgG6VKdd++UaF/A5RM4bvZbg/g Wyy6KrAwkgPCccrg+IP/ijxLkt0 2020-04-20 12:26:09 62.171.159.164 443 80 +a [2a02:c207:3005:149::]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r PacsoT 2q+zbPRuH2p9E11bhr0zNOQgp8s Kml+KS8+2oGDiY30XKsb0xu1NWs 2020-04-20 09:38:57 78.131.72.89 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2180 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r malene 2sglu/BdZ4q96hwwhujZnPC78RI BY/qsIOPB+6X7G1T0M0gberGWbA 2020-04-20 11:28:17 185.73.220.8 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20300 +p reject 1-65535 +r UbuntuRelay 2tHsASecPkRraovhguAKTu2tqqs rjWg2kY2XlJnhmSDDVmBhACzYtY 2020-04-20 09:05:05 178.75.144.242 443 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=947 +p reject 1-65535 +r scatterhead 2txzMI1TC3Vglpy5VM3b13wBD8E V5YWxAlTcPsvHiyGZ45AkFWtofQ 2020-04-20 08:30:27 88.207.122.220 19001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=730 +p reject 1-65535 +r NowDNSa 2tytN95eIufh8yOScmAVXqs2icI CnaehXFIhZATz7KUSYqWODznswM 2020-04-19 22:52:16 158.69.201.47 8443 9030 +a [2607:5300:201:3000::1413]:8443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10200 +p accept 43,53,80,443 +r lysithe 2uldZowJ3oID79FjlPTbjUQZVZ0 miEZXjX3K1aXb3bbUBrNeqaqeN8 2020-04-19 19:30:28 68.183.53.124 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=2800 +p reject 1-65535 +r default 2u7AzdIU7assHSGGsgLceezLFlU lrDApJtYvcQCHeK6Esc6mjVunqs 2020-04-20 11:11:50 94.19.87.218 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3680 +p reject 1-65535 +r WolfsDen 2u+Li3mccRqGNQ/cQzeys6dbl8k fhRqjbcKba+PChu6N7aDgpM3RTA 2020-04-20 11:16:23 51.255.150.177 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r tor4ever8 2v/AlD7PtXH8mqgpfHjOdt/jwJ8 hoT7Imte5UHAgu/FbCx5g37Eo5E 2020-04-20 05:23:39 45.62.230.25 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3430 +p reject 1-65535 +r WaddennnuunTOR1 2wp0GbX3wuj/OFPlgivVUuhlIe8 maYNnR1XPg1kSDPuNpW2TRtKKWY 2020-04-20 11:20:13 84.178.228.67 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=360 +p reject 1-65535 +r GermanCraft2 2yaCFTrAzK7NK9Hp6+mcaBWAeh4 iJWg87sa3TGCstg9PrGMXjkKXCg 2020-04-20 12:03:10 54.36.237.163 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27000 +p reject 1-65535 +r fiedlerRelay11 20dyCnV2TNEAIBLmJfbOF3QaGjo 2SbtvE+H8BcTsIFUinE0DYEeBH8 2020-04-20 10:12:18 188.68.55.50 9001 0 +a [2a03:4000:6:e3e3::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p reject 1-65535 +r jinx 21OXXQKVcJnoTzGRlLj1x8bRVxI si57dCKpLP3WvAAmLLTf+J8TMnU 2020-04-20 05:46:21 62.210.9.178 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1750 +p reject 1-65535 +r 72ab8f63bbd93503 21jtUOkgxR9cGgROagS6ZpsUz9I P2TQf6W8998WkRzOOApyhaY/26A 2020-04-19 20:47:13 139.99.139.143 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=180 +p reject 1-65535 +r Schmutzig 21oQAVL7eTfwLwC13f/9ASeJwkI /Trc8d7tlt0h8wQs858jBrLDvVU 2020-04-20 02:31:35 145.220.0.15 9001 9030 +a [2001:67c:6ec:201:145:220:0:15]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36700 +p reject 1-65535 +r Songino1 21/26IBqZnTie/adHh6/MI2ah6k 7U5L8w/hGKR8E5da9w3pqsTInK8 2020-04-20 06:13:08 180.149.125.138 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=106 +p reject 25 +r RRDOTR3 22DZ8eiiqfXx+YR+Bbxihmbtyfw lPZR9MdHd8+LnJR01fjRNBQmxuw 2020-04-20 08:39:51 178.128.247.50 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=294 +p reject 1-65535 +r Artikel10Exit01 22ragVPfaxSLGohDtIbiA1RJllA EhyJj/O863mPif5lEy+n7Yy631c 2020-04-19 23:33:22 89.163.239.216 443 80 +a [2001:4ba0:ffea:2ae::a10]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=61500 +p accept 80,443 +r tor4ever10 23msdjCleoORbf8XsHII4Jv0yfo 1IecKWo4X7fkKHRn2DgOH6PsQjY 2020-04-19 19:43:20 45.62.229.8 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2370 +p reject 1-65535 +r yuggeit4 23zM9Mj8rURTeVI8jT1PUPT85Xs ih88Q07rLR7TD5uNe8L3aM4qCGk 2020-04-19 20:45:59 172.105.35.249 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=191 +p accept 20-21,23,43,53,79-81,443,1194,3600,5190,5222-5223,6660-6667,6679,6697,8008,8080,8332-8333,9418,11371 +r topinambour2 24KDpOFSAQqcr9pjzA9WrKFVZ2k 7Xw/WooWP0OkV71akmPQAQhznb4 2020-04-20 06:58:41 92.89.144.177 8080 13033 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=23600 +p reject 1-65535 +r ripde 240UVM4HiETdpEfIrL7kQLJnJY0 py1v7aFwRgW3PzHIjRuuuIkmmzc 2020-04-20 09:42:06 85.93.17.143 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=520 +p reject 1-65535 +r anonymousByPDH 25eXxvBuz2rZCRfJ95ODpd+wXbk 5QZMZ//2aeSEfSPAA1gLaUPCBcE 2020-04-20 08:06:35 104.167.107.106 443 21 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2420 +p accept 43,53,853,993,995,5050,5222-5223,5228,9418,19294 +r John0072381236Smith 26LbuFLga1i6rwm9G+kfowoSQ8g 4YNjqCM/y5v+GMjRDySiUB9bKt4 2020-04-20 11:49:35 92.249.143.119 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r nocabal 29Z3Z2QBl/+W7GqHaERk/Ej2EbY F7rm8UqfPARzWjlhf+8K/t1i8q4 2020-04-20 10:58:53 78.46.53.11 9001 9030 +a [2a01:4f8:110:12c8::2:9001]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2190 +p reject 1-65535 +r Unnamed 29kV+W5GfBv7wX5rA2iIl/ol5Ek 7Jeu8bI0JcFB8TPR/Yrp4yt1yu8 2020-04-20 00:38:24 136.55.42.240 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p reject 1-65535 +r MurrayRothbard 2+K0s67kZGf3TFxQgikgys89VkQ pDAvsSxqcHqij91qNmu2dRm149A 2020-04-19 21:42:38 176.119.28.25 443 0 +s Exit Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,18080-18081,18089,19294,19638,28080-28081,28089,50002,64738 +r spechttor1 2+gvojuf48skYqb89Sid7Ty/Su4 cP7ec+tE5N87tmeQ7Lava+/cweM 2020-04-20 01:05:32 138.201.169.12 443 80 +a [2a01:4f8:171:35b0::4:1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=137000 +p reject 1-65535 +r ikhebeenbootrelay 2+0PdBjP5fIOnsxKRUDTFdAjrXs BfNx8lzlPMC5pYDCt+LgqoIvCQY 2020-04-20 00:55:37 82.217.245.7 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=697 +p reject 1-65535 +r snap277 2/UW32p7+DNfckbZkuhdl+FKyq4 29+k43b2oBSzz3hvHcqNQJd4r0U 2020-04-20 12:18:39 83.24.120.235 46195 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1940 +p reject 1-65535 +r casadum 2/hu8evghLM2DTW7l5A493ospRc yVmoyX7tlYRwxUoH0k8svLm4vCI 2020-04-19 22:16:12 93.188.166.145 1012 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=7970 +p reject 1-65535 +r 5fd811a4 2/0ikD0O7Sm8LR6lV9k+be2j3K4 mTEsRNoeg+9XhbkL9cFHfhty71c 2020-04-20 10:10:41 95.216.17.164 443 0 +a [2a01:4f9:2a:11db::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11500 +p reject 1-65535 +r underworld 3BY93vS28Ma8Im+fZlalowxcVoY m+GVb8Zwh31jQ5Sqhs/TJmDNiAQ 2020-04-20 03:15:10 176.158.236.102 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5080 +p reject 1-65535 +r artikel5ev2 3CGRZj3UuuyzT5ScysP9oATOW84 SZaBXrBQ0CHFSq6QcWmTZyTYEQI 2020-04-19 20:12:42 87.118.122.30 443 9030 +a [2001:1b60:3:239:1003:103:0:1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r eclipse05 3CZ5CzA6/xIlavfQFrqnDIqINFA m2HFmEP/VumM7m3ITzX96cBN1EA 2020-04-19 21:01:24 46.167.244.57 9009 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r dowtf 3D5+1BtBhSQo+1BF4z4lWdSeODA 7T6QZKVaNr9QzhVJ231fNbG2Nyg 2020-04-20 04:00:51 206.189.20.183 9001 0 +s Fast Running Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6600 +p reject 1-65535 +r Ripley 3EZFwiiOWHmfS49qwEtY9H24pD0 qGHMzZ5j/swCcco6aW21WPqx7+c 2020-04-19 19:47:07 8.15.179.182 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3900 +p reject 1-65535 +r SicceggeOrion 3GpmsUGDzDduiSefukD96CScRAs fE8utMKKok9SBP8XgvBP78xMZXI 2020-04-20 03:54:45 195.154.133.113 9001 0 +a [2001:bc8:2aa0:100::1]:9001 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=180 +p reject 1-65535 +r ntppwguy 3HXsGZDgGLY6TcooY91/vYxZ8/w ptGio57Ajs3iV/514+icVyQGvno 2020-04-19 21:47:08 198.50.135.213 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=2900 +p reject 1-65535 +r 5efd8dd 3HnJ11z9epH5Iyki4F0iXL3LdwM 6GtSqY4PGY5sxXVdCPLKoGDEkNc 2020-04-20 10:41:46 213.239.216.221 443 0 +a [2a01:4f8:a0:83e2::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=125000 +p reject 1-65535 +r luftballons 3Hur/zxeScki0jneGlxSUvUdL4E v0z51P+huPxHtCfUOJxC6m0pkt0 2020-04-19 22:53:37 87.92.54.132 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6260 +p reject 1-65535 +r angelwindowsexit1 3IGqOx1RVm2/J7+lYuQEeuscUto +LT9Q1JTpDAI6kTGDBviCSVBDrw 2020-04-20 12:22:14 91.132.147.168 443 0 +a [2a03:4000:37:645::]:443 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8900 +p reject 1-65535 +r N1nj4 3JVkrovHv19yLjZ3yJftG1eMjYE 6uSOA197FLpVf4fas1Rif9lF7+Y 2020-04-20 05:29:58 176.9.98.228 8080 9090 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=85000 +p reject 1-65535 +r Unnamed 3Jdx+aQDQPXP2sOFC87ZI8Nr8/w DRzWp/V0/i6muYAFsmqJLq/vUqM 2020-04-20 07:57:28 131.255.7.73 55777 47737 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=51 +p reject 1-65535 +r m00t0r 3J48ZXbMmgSq4cRlIQqXKnIlcaA MzjtGUO4G0weHxZXVNuTBNMLcTk 2020-04-20 12:43:59 83.162.230.105 8080 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18900 +p reject 1-65535 +r romeojuliet6389 3J9QNm2GwOrC09PjGUDEtyzt4aQ Y2kvLRymaFUzM2TMMVNjF+ckPTU 2020-04-19 23:28:44 64.120.110.26 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=903 +p accept 20-23,53,79-81,88,110,143,194,220,389,443,531,554,587,636,749,873,902-904,981,989-990,992-995,1194,1220,1293,2082-2083,2086-2087,2102-2104,3128,3690,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8888,9418,11371,19294,50002,64738 +r SweRaspiTor3 3KoXb3WwQocTHG14t8/drG8mkdk sq/cMc6OHqoDk1gnnNjnw0lYMoM 2020-04-19 19:23:34 92.34.132.198 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16700 +p reject 1-65535 +r HexFromHEMEuropa 3Koc7XGDtWHRjPWAvpkzvZFo0QE /UPmUSrRUI0Mk8OwOSVgDWHZCEM 2020-04-20 03:15:14 188.226.148.15 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1150 +p reject 1-65535 +r rollingrecent 3LWmv37C2Cd0WeKIEVcGKGxLnIY cD00xeBlVBjkSdyB6SLFRIMZx/o 2020-04-19 20:18:39 46.64.251.128 8986 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=121 +p reject 1-65535 +r bh1c44n 3LW4YSGeAQg0PaLy448XoHIOses dyg5cVHjZus5yrLlumRjEnInsMk 2020-04-20 12:41:42 172.104.131.118 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2730 +p reject 1-65535 +r eludemailrelay 3MbHDo9DQMvWM/UGvJ59mYGGAdk hZ7cuOB8X7t6cfO7x8DtdCdegZA 2020-04-20 05:25:46 93.190.142.146 110 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17700 +p reject 1-65535 +r InfiniteMercury 3OWqWyKHZjvn2+nIdjX6hGE42aY 5ZF7FWttCE6Z6u/YqIzCWcaqqew 2020-04-20 08:06:28 185.17.184.101 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p reject 1-65535 +r MaxWerner 3Ojb+UV2JyrRDZlsmqB5SkVn8wQ +yWSmUVYiiHVJL+daf8SZ588CMg 2020-04-20 07:57:45 37.120.190.193 9001 0 +a [2a03:4000:6:b330:a440:54ff:fe8c:574c]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r sabaroff 3OoqbYA04WSk/92K/5l+L2+y7Pg 2862UrGt68u40VXlGMShL2wYAoY 2020-04-20 09:22:27 50.7.179.202 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8550 +p reject 1-65535 +r vincennesfailsafe 3O+tJitmXcjjGEl2Q2YhS8pp3Dc GK7qKSg+VbXzVTtlm78tAifG2CA 2020-04-20 12:06:36 99.104.206.58 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p reject 1-65535 +r toolazytofillthisin 3QQNQnXov3yc/POR/EQIw9G/DG8 lUR6jTAgRtga/OV/XhMTth6HPBc 2020-04-19 22:26:33 51.38.69.161 9001 9030 +a [2001:41d0:801:2000::c0a]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5390 +p reject 1-65535 +r redsphinx 3Qj084WpdQHuUy9R2BJuO/Tcw4I np43SYBUECkyE2ifasleX7c1Jj8 2020-04-19 22:02:56 178.27.123.39 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2390 +p reject 1-65535 +r flowjob04 3Qqmbdnk5x/6+rZY34MA8c7qA2Q OQ/UljHZzL+orrZGgdXWSBXue3M 2020-04-20 02:05:41 152.89.104.206 9001 9030 +a [2a03:4000:39:45c:241f:53ff:fe4e:45e9]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34400 +p reject 1-65535 +r chaosDelroth 3QyO7FykAqn6RHjxDDGkQPcfaIU wItBAUL6B6iwBfD+JFqLMQtypbI 2020-04-19 20:24:43 195.201.9.37 143 0 +a [2a01:4f8:13b:f15::1]:143 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=94900 +p reject 1-65535 +r idideditheconfig 3RG3UZkvLqWRY6u8YI0IXeLOI1I PJzffDFJjjpiwqPIKZcRMreaV64 2020-04-19 21:33:04 93.8.239.208 5761 5760 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=280 +p reject 1-65535 +r hands 3SznnGH4OV6pOjGU/oc5SsQEU/E Ybu4r7UbN0v9vwc9TNgdtd1OAJY 2020-04-20 09:25:40 109.169.33.163 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=170 +p reject 25,119,135-139,445,1214,4661-4666,6346-6429,6699,6881-6999 +r free2play 3TLD7MNSHVjX6dfg40O3APsk5ac v8HGZBAF9zs29kDxJx2Mywtx8Tk 2020-04-20 09:12:45 66.228.58.95 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=2880 +p reject 1-65535 +r snap277 3VCPlrxMtOmoAWFeSwPEl+D/8A0 Qhxlrg5K/ZlADwFeDYXjZCtngFY 2020-04-20 11:04:14 78.227.101.134 37313 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21 +p reject 1-65535 +r Toyota 3VOooeMcOVmvivtaBvk8fDY1DCk m2h3TW0AkNV6+fcEKaGRzY8R8gY 2020-04-20 05:48:58 31.220.2.100 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=67000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed 3V2iHMUDZTOuIBDeLH5yvizfnF4 w1yhnDQntGvn5h1Gx1oRmSzDVtk 2020-04-20 11:20:29 195.154.250.239 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12200 +p reject 1-65535 +r Assange014nl 3XvT5b0LpIqMcLDN8Bf6WYi4fic LAjXyNCjuSk28rSz+MbldI5ojBs 2020-04-19 23:05:13 5.182.211.119 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p reject 1-65535 +r reactortornode 3YCOzk8uJPN3y+EeM17NoZb+O3g sE9xbiT2rYuRTUfr37KioX+3c6M 2020-04-20 10:12:37 185.207.139.2 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35800 +p reject 25,119,135-139,445,563 +r grenouille 3YI6+0FTgKgC3K65RhrmN2BBB/s RMfuS35dw47XMOvUpH40FifwV/k 2020-04-20 04:51:22 178.33.183.251 443 80 +a [2001:41d0:2:a683::251]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18200 +p reject 1-65535 +r DFRI0 3YvXMHAXQH/MNvjQSmiPdKB3TAI 4C3CHh2H6jvWeOMw1qDDeDPAETY 2020-04-19 23:36:49 171.25.193.20 443 80 +a [2001:67c:289c::20]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18900 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r telebube 3Y9adN03Xx1qeYoatQEWM5/r7QE VHmeHHozxu8PjIrt9zkpxRZx3mg 2020-04-20 12:24:13 87.147.199.72 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=262 +p reject 1-65535 +r eclipse 3ZLBIc2Qfse+LwQNQ4HbZ0jO3Hs +aqDkhmTb13kymSsqoVzBWBcysM 2020-04-20 00:33:52 180.150.227.75 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=88 +p reject 1-65535 +r snap277 3azaIlKCU3XQ7a0LUkJ7fCr/1YU 0VksB9fqlZ6vCQz47ACoAwhc+e4 2020-04-20 01:58:06 110.151.64.66 37189 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=85 +p reject 1-65535 +r tor4ever5 3bIi00CnN2iHtNVzS4yS9ApJQcA Y5FHMCqjWix2oDOe0Rpo1gFUu+4 2020-04-20 04:26:28 45.62.230.111 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2100 +p reject 1-65535 +r NickTorNode 3bbxt6gn/90IZr/5vaiNV6+zOjI c9JfBdi/3MdnwkLNgOPiIV92sKU 2020-04-20 02:42:22 73.235.200.159 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2720 +p reject 1-65535 +r zouzounella 3bsqOCUq3aU+RJLd+YLKbMbhDsA Ng5bNpYVqruReHOiTMUEIkvkklo 2020-04-19 22:13:14 83.212.99.68 443 80 +a [2001:648:2ffc:1225:a800:bff:fe3d:67b5]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4870 +p reject 1-65535 +r HonifTular 3hsHsOinSMHIojxLvYnsA7mJzTA o3FsQdDGyZH8SUYMhRTHGeLQNjI 2020-04-19 19:36:31 213.176.246.53 48343 49331 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2450 +p reject 1-65535 +r OLOLOL 3h9hOu+HXl/NHkcYZqjeS+wvEWA 3MsLSGTempcJFKjakXzIBYXXwWI 2020-04-20 11:32:49 80.89.228.15 993 994 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1150 +p reject 1-65535 +r 18cd7354bd014e9e96 3i4G/mfqyd13LsuFofw+A38dqhE SSzxWNte05h+/BvIrxVy3Vz3mUc 2020-04-20 03:10:45 99.85.80.169 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r YelloSunflowers 3jYNwZFSky5gdnQezmCpbcYNSEc AD2MuyhyDdBV5bBFJfEt+tnWLG4 2020-04-20 00:55:19 69.250.241.88 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=124 +p reject 1-65535 +r smell 3kWctH2rNq+8mlTvGev42Y7Wr34 uin5+tZGgwAj8LqsrXo17PxET5U 2020-04-19 22:22:56 45.9.148.25 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6300 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r PIAslcexit 3kakJCMwT8N5PHNklTndowkSKmU aiiYUyxnYNPy+0gJZO24FLAMm2I 2020-04-20 08:24:36 173.244.209.5 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9800 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r 0x616e6f6e 3lFOQlKNT7i3mAS1YQCLSCuR1AI nhuRFvgN6Ja4R9TLdEIlGr0S6Xk 2020-04-20 00:46:04 178.17.170.112 443 80 +a [2a00:1dc0:caff:15c::5627]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3870 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r torrremio 3mWQ5yTC24E05nSx1h4OfA25isw /FpafGRRlGnrGr6cR9JuWE49Cmg 2020-04-20 02:09:02 91.61.236.99 8080 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=129 +p reject 1-65535 +r Someone 3mqleFkHA1agvmv1lYuAJud9Ffs F/3h3KGV/Z32pHl9aVZzHtjM5aE 2020-04-20 09:43:53 77.201.41.49 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=264 +p reject 1-65535 +r Surtsey 3nL+tHToo8xQLPxDYhGA6p1GL+A cCLyZIat2STbMsjBNmK4H1afspM 2020-04-20 00:33:52 165.169.205.127 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=121 +p reject 1-65535 +r gergernet1 3nToxPPPD7vLfnYbswcgUNHU3Yg TfonvMLaAmB86ijFg2MenW1Uq8w 2020-04-20 09:36:46 217.199.207.250 9001 9030 +a [2a00:4d80::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50000 +p reject 1-65535 +r Unnamed 3nZPtOq73o68GTbANi4G65Ius7o 9FGDbk4vSKj6dUHyeStBn+2fPzY 2020-04-19 19:11:48 142.44.133.94 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9110 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r CheezsystemsTord 3oLu+iRBDaF8s8o+48lVI0m9Xx0 uLO2FZJqHUnmJ9kfyLHJK+2DHQk 2020-04-20 00:14:55 173.212.222.109 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=463 +p reject 1-65535 +r kohlrabi 3oR9lOeLLlYKuH0nLckBktMUTxc R880+iFp0Rd9er1irkuQFUE4/+E 2020-04-20 02:18:40 109.70.100.15 443 80 +a [2a03:e600:100::f]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=82400 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r thesanctuary 3os9CUarsYDZmPAPgQBG6enFRoQ quOTbi7Ozzj3pKcMhzj+IA1ppGA 2020-04-20 05:25:06 45.79.67.237 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1300 +p reject 1-65535 +r LibertarianNode 3puXt+BW/h37JBPJ5WqyXnLFws0 674eEymsTZjvTtw9j2e7vvNpjck 2020-04-20 03:27:14 83.212.104.45 9001 9030 +a [2001:648:2ffc:1225:a800:4ff:fe0c:28b]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4500 +p reject 1-65535 +r CloudLink01 3qhPCEMoADRrrbNfHqwbKk1bFl0 n3pTM+ldbx1zqYsTg4ZUFzUV31c 2020-04-20 08:04:33 173.50.86.103 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16900 +p reject 1-65535 +r sparadra911 3qmLf5uot/igmNOTmm/kRghLSOc QvQ4KTrxCdNvDbaeRkYV0UFMz/U 2020-04-20 10:07:22 94.140.120.19 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p reject 1-65535 +r snap277 3reEK9JszRKZpx2fhOHTIjy0CsQ VXD5TOA19zXl858TnbHQC9d7Yls 2020-04-20 03:05:37 85.15.92.219 33927 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1 +p reject 1-65535 +r Unnamed 3rkucDWDvr7UXlFIlYCX8fuCcv0 SIaXPXJ+BRfwzn19aqvVl8fHlxE 2020-04-19 22:08:31 52.141.36.108 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=835 +p reject 1-65535 +r ThorExit 3taJL/idvXN7polpihcbI5LrPoI 9tk2EZryT8AWzFsv3kQ/kq2D4IE 2020-04-19 20:39:17 92.222.38.67 443 80 +a [2001:41d0:52:100::112a]:443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3510 +p accept 43,53,80-81,88,110,143,220,389,443,464-465,543-544,554,563,587,636,706,749,853,991,993,995,1194,1293,1723,1755,1863,2083,2086-2087,3128,3690,4321,5222-5223,5228,5900,8008,8080,8082,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,50002,64738 +r hejehuja 3tjmwxJ9F+V8uAfAZAvahVFHct0 c2rjEwObMntC/Mhu5+ygHByaK40 2020-04-20 07:05:23 86.101.214.77 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1290 +p reject 1-65535 +r ariolcnode 3uEyRvkhCmhXA4k4n6CMwVWQizQ RpiYFKRA4HxPcxTvdTR71/9blt4 2020-04-20 08:19:19 79.200.219.134 9001 0 +s Running V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=12 +p reject 1-65535 +r PepeCollusion 3vHpIHJ56Hkq4RTVT6wRDP5eIKM Da7XBh4vLxg+h8J2dCLVeizwmTE 2020-04-20 04:56:50 107.172.227.24 8080 0 +s Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13 +p reject 1-65535 +r Joker 3vM2XxwBL4DlaHe17wXOcr3rDMw /G1uxihaM351esTOKZJFeI+w0Ok 2020-04-20 06:57:49 139.162.210.252 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4750 +p reject 1-65535 +r FalkensteinTor01 3vjHYKef7yNY4DrloZUAhqvrlT4 y6DizHeGPpbWOX2mSifEOrD056w 2020-04-19 19:26:27 195.201.168.84 443 0 +a [2a01:4f8:13a:1082::2]:8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=65000 +p reject 1-65535 +r anityatvarelay 3wLjV7Joum6QKfpt+4vCied2P88 rNMrvdQ1qRSBAans6EqdYpU5XQg 2020-04-19 21:13:14 195.154.164.111 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2180 +p reject 1-65535 +r Toooldtocare 3wYFUYVn1jerqEbK4u3lDoor1X0 tJaYb9QS2e5Eafh1909X2SLHJFY 2020-04-19 20:15:52 141.155.5.128 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5900 +p reject 1-65535 +r Quintex19 3yBJfkh6l5mV2FGlvOwxPfflvFE a7bZdoCReukOUlyKgRUyNS5/ZYc 2020-04-20 10:54:29 199.249.230.109 443 80 +a [2620:7:6001::109]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r strokkur 3y5p/TQyQTD7nJk4/ebbqBxMHgA d09+C6RZvTkz8JuoFTv65kIiR7o 2020-04-19 20:22:39 2.110.219.47 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=31 +p reject 1-65535 +r niftygorellik 3zkIYLVhC46ZxaeLQJmjcFzTaxc qOErQPr/wuSdTWS0vAtU/44M7uc 2020-04-20 08:53:19 185.220.100.251 9000 9001 +a [2a0b:f4c0:16c:8::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47900 +p reject 25 +r deepSpace1010 3zsH9/kM+wlq3K9uoATRFD8f/i4 opFJFcW1b82UlMwActgoVayBm64 2020-04-20 11:40:43 51.15.100.60 443 80 +a [2001:bc8:182c:514::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=46700 +p accept 20-21,43,53,80,110,143,220,443,873,989-990,992-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r giesing 30CX2Amvy28upJhxm8LD8Q8ZLzw W/ZnTAXaJvLPfb5aac4D38PP+lU 2020-04-20 09:43:17 82.223.36.196 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=84 +p reject 1-65535 +r giorgetti 30RQBpMqe6lC8+u0RX16vy5ABuA Qlc58NSLOlDu0Iv8XUEFRYvHeQM 2020-04-20 11:38:15 217.23.15.200 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12500 +p reject 1-65535 +r dodoo 31V/P1I8y3YqUNSz3zPovq1Pedg h4CsZMoDUwxzSfmPzb2ZRk+7XB8 2020-04-20 04:24:44 137.74.113.129 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r tornado 33qhbhpgN8X8u03tTzps0mLKN5k G3rLVXcwIcwnwQKe0h/msMFH5d0 2020-04-20 06:21:50 195.154.253.226 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7500 +p reject 1-65535 +r Voyager 34HYMdT/aG9SyayqnrVxH5W/TdQ pe19kvh2wMj/DNdeKIxuWgi83U0 2020-04-19 23:27:47 72.5.72.227 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6400 +p reject 1-65535 +r Assange031uk 34YJiWi7zZY+OOA/w/wYN+9mfBM dMjMIViRQa6btoDAetf3tB9hT8M 2020-04-20 02:45:35 51.75.167.144 9001 9011 +a [2001:41d0:800:2885:2b0::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r Unnamed 36QDBr6m6vKM70r+1HOih3qQ+bU 0lfv9UUDsJnyEn6n8GeK3tKMd4E 2020-04-19 20:43:29 194.88.105.13 33914 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=137 +p reject 1-65535 +r snap277 36iqano2/km6LxVA+HJmzxhMMHY 7BGDhjb0BhknofsFAVViT1ULvcM 2020-04-20 07:54:58 31.23.240.103 33079 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1160 +p reject 1-65535 +r niftywabbit5 36qGrUa+qHXVAYzBzs13yfl5+w4 rZbqHehELpOQw600eboWVWdBhds 2020-04-20 00:40:49 185.220.101.197 1197 2197 +a [2a0b:f4c2:2::197]:1197 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59000 +p reject 25 +r synapsethemole 37ilqSnVx5+0d4YCayVoC0iuoqg SMaS4/yrilvzuBCdKptYPJp4wug 2020-04-20 09:21:08 24.14.128.92 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8 +p reject 1-65535 +r snap277 38DZ6uAGIF1erqAKNlcRm8pYPIU Ngd+ULmBStVBx/7PBUK1Z+NPxuQ 2020-04-20 12:23:32 79.166.244.104 45979 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r 9500 3/nnQdAPdJmP6DzWJg7k2eCw2/o IUrN58D8DttfhiwK2r7pidxRtys 2020-04-19 21:03:22 89.164.113.211 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6810 +p reject 1-65535 +r DerrickJensen 4AI6wUGAESov/wCoTGBJhiuz5sM EMMLkfIXJ3m2wzOvpD15DpIbCM4 2020-04-20 10:42:19 147.135.112.139 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6100 +p reject 1-65535 +r DigiGesTor5e3 4AbqBMaWu9bjVAdTgTEwX/PLjBY /dAG600CUFMxV3tfGu58TKURDbg 2020-04-20 06:44:25 195.176.3.24 443 80 +a [2001:620:20d0::24]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r descartes 4Adk7dLV2jOM6i7thpHh/Kr0puk wQpF0WjpIRkjtcuc/CmmrUV2zHY 2020-04-19 21:41:20 46.188.6.64 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7270 +p reject 1-65535 +r rawpower 4ApVtSt8kz5xXjCokuGyfHzIfv8 EVEXV88tUd8EUrUh51OZRDNT1AU 2020-04-20 11:26:06 184.146.234.232 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r Brecht 4AwIfs+yfXv5aZNvH92TVOA8ri8 MBmIX7V+FYY+1husGdlGuwQs4O0 2020-04-20 10:06:15 144.91.106.71 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p accept 53,80,443 +r despacitor 4A39VNwWXVRS+9NTDTAYba0Bagw b3Yjz1yzgbRX/H5z1dxlMBG8J8w 2020-04-20 11:00:44 163.172.53.201 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=74000 +p reject 1-65535 +r niftyblythsvole 4BPMmMzB5q/c/JaBpT3C3v5dTMw 2qAUEsbFRb0PiB6zxM7wJ8ImYKE 2020-04-19 22:14:29 185.220.101.132 1132 2132 +a [2a0b:f4c2:1::132]:1132 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=54000 +p reject 22,25 +r Unnamed 4BRL+oJrzMPmSJWzKygngpYyRs0 9TDLzdp/9laFe8KEO//nmfvAl8I 2020-04-20 07:25:56 178.32.223.87 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=37 +p reject 1-65535 +r FrodoBolson 4B+W71yGWi4cXRyQxDpvb9Qy4D4 /ihSEgB1MnGL29SdGCFfvnrsli0 2020-04-19 19:11:54 85.117.234.222 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p reject 1-65535 +r yaRelayNickName 4DlvewZH25k9WX/LAykGa0ATvwU m6+xqqRE0fl1oafzDgvm+WlCa7w 2020-04-20 08:19:56 95.118.109.111 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=892 +p reject 1-65535 +r Unnamed 4D5YGqQqIR9p3GNgixmA8QrlLCY E3TK62fvUHKmQ6DZdMrArHRuMDE 2020-04-20 02:25:04 37.191.192.239 38443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17900 +p reject 1-65535 +r albator 4Fyskp45F4cHcGbClGGp0i7PCAk YImi2IhGfEv0SjaprZ3Sp8OY9lA 2020-04-20 10:53:49 83.205.101.220 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5980 +p reject 1-65535 +r licinius 4F6rWIKFwB6IB/AKB827xGYqWNk BXlO8lFRmrnEEPA+WdoEmDFBGL0 2020-04-20 00:52:26 217.112.131.24 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8180 +p reject 1-65535 +r BurninThruBridges 4GIMyPtLDdd7hq5zkgpqWrWInm8 9bGJg+6hOoUU5jmYrvsyPzWx9qM 2020-04-20 11:11:52 74.91.27.30 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37 +p reject 1-65535 +r UnknwnRelay 4Gcf4kS06KSPF5NX9/TV5qCyePc M5nIiJXpSukw8j5iych9L2O9hN4 2020-04-20 06:56:52 139.59.155.174 443 0 +s Fast Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=422 +p reject 1-65535 +r Unnamed 4HnV02UfjdBAjEyiTWTiI5jjD6s qe3S13XAO7FLPrQElZl9fWqbvVE 2020-04-20 08:35:55 51.75.194.222 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3500 +p reject 1-65535 +r bartor 4KSb9lwgJMNm7F4T5jG5fE9IVlY zlgJ2xI6WCGQXs6b+oO6bgWT+/4 2020-04-20 01:09:51 83.77.193.34 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=173 +p reject 1-65535 +r Freebsd2323 4KtKH6lt5f6ySRA/JKjZoxoLJKs K+5DzFtt/NxUdmgu0OKBxCKkPaM 2020-04-20 07:25:43 217.163.29.244 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r nodvrelay30 4K58HOT0St9NkOnK2tCNCly/w9A YC1APULdgSl2kff8x0tjrNLk5mA 2020-04-19 19:04:52 45.62.235.116 9001 9000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r KherNl 4LOxAibwZ6GyFReNGaGe8xHn/cM 2T8n3f2ZBhinGLUL6ZpmW5NIhdk 2020-04-20 03:49:37 51.75.206.12 9000 9001 +a [2001:41d0:305:2100::7cb4]:9000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14400 +p reject 1-65535 +r snap277 4MEMzyTygcM7DVZlvBOWKftu2Kk icHTvHAg3/IrbhnG+O9tMyDRwdc 2020-04-20 09:53:10 109.177.81.134 36209 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r snap277 4OAysNVs1fJ3NVB5G/8xHwaW37k 0iOODycPOAZZaD3XOC3bEapmDvA 2020-04-20 07:03:31 82.245.67.10 42837 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=332 +p reject 1-65535 +r nohum1970 4OOy5obs7/bTkeJ3bGRY3dd3lZs Qe7ZPLIM7Lu+srzDpI9qwG71y2k 2020-04-20 09:23:28 193.105.7.201 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1020 +p reject 1-65535 +r harley 4OlaidL8nOkiK9UCeoR7nSC5g4w s9RySAuThFqxQrDytuaTgdDWvsw 2020-04-19 19:23:47 185.113.140.49 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=205 +p reject 1-65535 +r Unnamed 4Oyu8PzdaAXBu6DQhcQV4b3ZorA C3xKln88CW6vtd/zA+Iq2uxfje4 2020-04-20 03:35:14 141.239.236.210 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r Cosworth02 4PY47M6Ri1RVzinSzZ7Mnb2PiyE n+RRnjhEfMrM/3UjRS8k5U9HZ20 2020-04-20 12:27:48 54.38.55.4 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r snap277 4RfkExmZSGd6YH78I/l8kfBMpv4 tV7TwiDZFiNMU+6rzaWH9xh8ei4 2020-04-20 06:19:21 187.190.65.167 43061 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1300 +p reject 1-65535 +r Memains 4Rhm/W5mlNASkEOx7T4OOKDKTZY gyMUx1kzXR6hy1W6JaaZkXUpzxc 2020-04-20 03:32:44 103.249.28.195 443 80 +s Exit Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r yutu 4TXVOE6kK0p3EmjNoTnXPRwWosQ o/o3gMFFmyYzpYpVJ43Ox0DVBu0 2020-04-20 02:16:27 78.47.147.245 8080 9090 +a [2a01:4f8:c0c:1fe9::1]:8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23200 +p reject 1-65535 +r DrebtorUSWest21 4TgtKHcF5Rl0YfJQOa0Iqbl9AB8 gznU7zlJKdU7KdEOxTDkKKS+zFw 2020-04-20 00:35:41 138.197.213.154 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3510 +p reject 1-65535 +r ipheiboqu8oorai8Ais 4T9+4VNe2K6rkqXurumgx4LtM+I ERW5NlNwr0JBBUW8vTpMhM2qU20 2020-04-20 02:48:43 84.239.153.105 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18300 +p reject 1-65535 +r VonKuenheimRelay 4UswqD/4DFdrLsDyyKXynUG43I4 /W/vKALUhHQRs+X4iBVIa2XK114 2020-04-19 19:27:58 116.203.64.212 8080 8443 +a [2a01:4f8:c2c:d75::1]:8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p reject 1-65535 +r BOOTCHAROO2 4U0QZp3W5HIjX48BYVRLTnt8s8c /Ssx1va95bwlGgULx8vUsOsHFT0 2020-04-19 23:36:52 108.53.168.46 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8200 +p reject 1-65535 +r variable 4U9rOHqDKsD1BWQSix4r1Anx070 xdiXRVai0yL7dmzzHF4Zdjm9uxw 2020-04-20 03:18:19 51.75.144.233 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=58000 +p reject 1-65535 +r Freebian 4V/kRvIwo1ud9LhivoR/J4cxs/w DwYjOvCyN6fkvNonvXefhz7jXvE 2020-04-20 11:22:37 69.221.232.26 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=720 +p reject 1-65535 +r DannenTor 4WjxXSi14HwWuCVVmz5EPoy8Zx4 OrgMsS4yQckuA4qUG5j3s4ZxiiU 2020-04-19 19:44:02 188.194.90.111 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=59 +p reject 1-65535 +r tor4ever18 4WyAxwYWkv1ohGqpInEGkfGdvqk V/uuimFWYV0roSVnnKPF+o8oxgo 2020-04-19 20:39:55 45.62.226.232 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=714 +p reject 1-65535 +r hypergrass 4XdFxkJV0pINm5/PnvkwxCbuSpE 1AkmKaf5ML/KxqCBVy7dPlQ7nZw 2020-04-20 12:25:53 91.250.98.158 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19300 +p reject 1-65535 +r TESLATORNAZISLAYER 4X8ZyCQKRQhCk9cR/ZDUVlQpVl8 SigyvsrgTjQml91auIAT0NRXhCA 2020-04-20 12:05:30 98.115.98.84 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4770 +p reject 1-65535 +r king 4Z4yc8TOXQWEKNaZZRAe2XaRYD8 WrZlFJbaDOE5sczrzr6pgYrvu9I 2020-04-20 04:59:03 51.89.147.69 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10100 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r debouch 4aJFs6ZNQmhwtlOmK+HYfDmRACI hADiqio0esOZu5oI/qmnjGnu+YI 2020-04-19 20:49:21 172.105.122.161 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=282 +p reject 1-65535 +r Technodrome 4aZJ4ZdOqnjU26URU/Xz7zAmkxg Ro5GnoXV3YRD2w0WMZmWswa2Zq4 2020-04-20 02:01:33 66.42.163.145 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r snap277 4akmxxRZTLX0lHSHaGNUbg4OyRk 1CgXIgnsx9AeTcnawy8PeRRyZ70 2020-04-20 05:52:39 37.143.229.239 35643 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3000 +p reject 1-65535 +r hotbrownie 4ak7X78Wm6kIQ5qxbneG00ebttc hm1puM4TGMnkQljhfZP+j38EtUk 2020-04-20 10:38:40 51.89.6.40 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r SwordHogwrts 4bVJJcWezoEyabmjMJt6XrV+m5g 25hZxt7PpvEtwTskj3LJtUzvJyw 2020-04-19 20:47:50 47.254.146.23 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r grandma 4bq09bDp14kdzZeQyPGG2BcoNI8 dKnqVtX2fbY1m1RgO7xmiqxMpzM 2020-04-20 11:23:42 87.185.37.212 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1690 +p reject 1-65535 +r Unnamed 4b0D8i1hUEwMACNf1wWAKUQg2G0 NhAk3bzqcMS1NGjf9TP+lyGJWYA 2020-04-20 04:31:21 109.189.17.254 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9 +p reject 1-65535 +r Unnamed 4dyt0Yng8dxwOJ9BmGdauHPpDY0 5NtbqpY6SwnghIcvTQ1b2fNtgmw 2020-04-20 08:15:37 111.221.44.109 33446 64436 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=152 +p reject 1-65535 +r M435 4d2afCljz2C5Z9zTRor4za5krhQ tF5gLyUWrZtlztrExBSHQ06HEPw 2020-04-20 10:43:59 83.97.20.183 9001 80 +a [2a04:9dc0:31::c0cc:b7]:9001 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=410 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r tordotcissincdotca 4d6aFmh3ZnNgvst2gOCXJNjQFf4 iHQzVwtoAOqWo6/n3Cw6q1IAF+Y 2020-04-19 22:58:49 45.73.2.211 443 80 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=17 +p reject 1-65535 +r LxcTorNode 4e6qkWe0CjZ9mrQwM2SIAOmuLnQ jM92KrE0z5xcfRi6ja0Ys4DqFEs 2020-04-19 19:27:21 82.95.107.51 9001 9030 +a [2001:980:8e2f:84::3]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=671 +p reject 1-65535 +r tornekwi01 4gqZ3hfZn3PYiMfTPEaAe3Ghl/s jFkfBhC71mpH/2Zlfa+r4seYNpI 2020-04-20 01:15:22 66.208.64.128 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2500 +p reject 1-65535 +r VimRulzEmacsBlowz 4jWUHIQD+2PskUNvpNz2sCDrUaI DMLIZIMpvwONuMW6QWL6q0lBxKg 2020-04-20 10:09:21 66.228.51.186 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5410 +p reject 1-65535 +r bitcoingang 4mO4YO+hd/Dd4ww4H4k/KAXBQNw nTlaS5m5LOXbDlQODOGCT55Ddjk 2020-04-19 21:41:50 94.21.27.216 8443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6750 +p reject 1-65535 +r sinilaukka 4niE35tJ45CIkJVdVB1GiI0x5Xo X3bV8x12qgG6QZMFb+ppQzhmH7c 2020-04-20 00:35:10 62.78.143.66 3280 3281 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2 +p reject 1-65535 +r ctr0003 4nsR58qur3sr0J3UQN1a3ivkVGE HsqIwi8Kc9fNbx/UipD+eiTVHA0 2020-04-20 02:31:35 84.19.178.79 80 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4720 +p reject 1-65535 +r habana 4pJAaz/IavlN+83CxMxZSuifW7Y jObAKGCtSxYDr0Jmw1DqpRsBx2c 2020-04-20 00:46:00 3.8.235.167 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=660 +p reject 1-65535 +r Unnamed 4pMXvAhobT8NQg//wG5xSJoOVFI tmUisS/5JTosPTtGo3TCjlNCUCY 2020-04-20 03:21:54 88.198.56.215 29644 29189 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1100 +p reject 1-65535 +r Unnamed 4q9YefOf9A34mU6bj66rJRiu66Q WCkIegelIMJb4/f0NqciFQB0cwA 2020-04-20 02:51:19 5.9.129.218 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=530 +p reject 1-65535 +r Zimmer22019 4rjeyXBlfuHLhy836B5ZUmKF7z8 yaS05wqiPvtH457m8REYTzXr6xI 2020-04-20 03:25:06 178.175.148.34 9001 80 +a [2a00:1dc0:caff:29::6d8e]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4310 +p reject 22,25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r niftyentry88 4rm6lnI8WeZa4H6Ct0x6Ma+HQiU zxIEhN/Vh01vmRrMlkUW9dfKhKQ 2020-04-20 10:52:43 185.220.101.228 10088 20088 +a [2a0b:f4c2:2::228]:10088 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r hviv113 4rqv7OXD07T/5hc7MJeUjg9zBiM K0E+Wq/YhCwz2Y11cpxVf3oSns4 2020-04-20 11:41:11 192.42.116.13 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r jacket 4sMANimu2lmIPeKRj86D/y7ll1s aBDB18bS5PB/rMDDLMPzy7Q7nhs 2020-04-20 02:37:34 46.22.220.37 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ElToro 4sav46NHsUz2OCpeqMY7UPfEeRo Kk52M3fvlQpPUqFvb7gDP37iWN4 2020-04-20 11:09:25 85.127.39.95 9001 0 +s Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9 +p reject 1-65535 +r bauruine111 4s8J+ZgkjHETmySyySdArtscbSo i+ndP9M2LYUZUUPPwzYUvhjrL4k 2020-04-20 04:52:15 107.180.239.164 443 80 +a [2607:f298:5:101d:f816:3eff:feb8:28ae]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16600 +p reject 1-65535 +r snap277 4to3/l6WqVkFJ/ICy0JdAFg/YCw /1nEUGqOiV8fGfBu6l21xsh8HGA 2020-04-20 10:36:20 5.29.241.124 39087 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4 +p reject 1-65535 +r TorbeiderSeebruecke 4t5PpoJXiAagTlqpiSKzKfAgn4E hI1hR4mtkqAt4Z+vW/gaKEj1auE 2020-04-20 04:31:57 79.192.55.96 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=55 +p reject 1-65535 +r LongburnRelay 4wDO4iVaIrPfUueYoyN9U6+uwvM BE6VfeXijkRPdhq1u4tnrmkDEOM 2020-04-20 04:33:15 111.69.49.124 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=130 +p accept 20-21,43,53,79,88,194,464-465,543-544,554,563,706,749,853,873,902-904,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8074,8232-8233,8332-8333,9418,9999-10000,11371,19294,19638,50002,64738 +r TOR2503 4wni48P0RyqD8yJsMVgY2we/d7o zsk2nlIUi4lJpBQZbo8GZ7Iam9s 2020-04-19 21:17:26 194.96.72.43 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1100 +p reject 1-65535 +r Daenerys 4xKpONcQRb46XB/zq4fPdGQZSGE TUIJwN6NFG/5OajxCtQArr8AmXY 2020-04-20 01:07:49 104.244.77.250 443 80 +a [2605:6400:30:faa9:4abe:8b09:7ef9:18e6]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40200 +p reject 1-65535 +r niftyexit 4yHQEY2tRLvHSlwm/nz9uq89oHc tYDWA0GYTWF6gCCvX1uV0IlFLOs 2020-04-19 20:27:36 185.220.101.41 10041 20041 +a [2a0b:f4c2::41]:10041 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p accept 80,443 +r robotventures 4yZLmHQrgIi96d1gwnoDmCATYzI q8y1WNaopkAblZKMJWJnltcz7zY 2020-04-20 12:45:17 27.122.59.86 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=495 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r UndergroundAirways 4y7TphDPyfZbxy0xHcGz2YlADZc Fi0KSB0/qlvrqlcf6kBIfT+71ZM 2020-04-20 09:21:04 139.180.107.55 9001 0 +s Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43 +p reject 1-65535 +r niftyentry71 4zCoh1SEBilkRSc5T9QwAdW4nHo CYb6y/K8s5V3HdHh3lr1Gk77FWs 2020-04-20 10:51:10 185.220.101.211 10071 20071 +a [2a0b:f4c2:2::211]:10071 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12700 +p reject 1-65535 +r doof 4zI/qT3s+eZ2PKlfDuJOcSkzFto jCuGuqiky0pgFB6H71R0bskXqBI 2020-04-20 00:09:19 205.201.63.19 9001 9030 +a [2620:10:6000:23:b:b:b:b]:9001 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=472 +p reject 1-65535 +r Carnavafoire 40wo1lJSDXyNOG6jlY6pJJEOZHs XfZs5s/BpjJjVhi7z3hOU6Nv5oA 2020-04-19 23:40:43 216.10.247.146 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=800 +p accept 143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,50002,64738 +r guitti 41AOLJ9rhwhQVok8QnmuoLPzd4I BVZLLNea2vzYhD99pvSHLvYjpJc 2020-04-20 06:07:32 178.63.172.13 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p reject 1-65535 +r snap277 412M9kM8vE1Is84ajXizwLMjU3w A6XHsa3UQYr0p8DI82BCJ+MjrUg 2020-04-20 11:47:20 78.218.49.71 45173 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4 +p reject 1-65535 +r naiveTorer 42U2QEIAp0kw2xZYWL1btVTSvqI AQdYYFTQ0RgWhq3lfpoNVxcPqiU 2020-04-20 05:57:49 81.6.40.24 110 143 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13400 +p reject 1-65535 +r Z10n 43MidS8TWjRPoz4X9K+nTCemh+Y YYAtIfSk0eBcAPrBIpjj128jLws 2020-04-20 04:56:58 144.217.7.136 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11400 +p reject 1-65535 +r hackeriet1 43mmys76/huOpoUDv8/xIVvx7n8 MTee63k5miQhROkHBiqd4YMAQU0 2020-04-20 07:10:27 185.35.202.222 443 80 +a [2a02:ed06::222]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9750 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r Coderx64 434Bmu2HJQmC32cOTY0JcE3bRME RhiZM6rRgeM+Xtv6gy1ljrt8RiU 2020-04-20 00:53:13 5.165.206.150 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2200 +p reject 1-65535 +r PXArelay02 44R0gpP8RCnitCc2DbT51MPWGdE M1HAom89wX8J2S6+OQW5V5fvrNk 2020-04-20 01:37:50 85.191.195.69 9032 9033 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r inquisitively 44zM4nWtxG3zX7dkqijU73Is+lQ +5g1wog2aFmXEQWkEg2dlecpzJA 2020-04-20 05:38:17 81.7.18.97 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3500 +p reject 1-65535 +r baxTianRelay 45p1i9gd0n6KonmYaI6BbQoT3II kM+JdIHG6AktpAgGxzdL49J0Ebg 2020-04-20 09:17:13 92.222.172.56 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19000 +p reject 1-65535 +r theqube 47Bznu//DeQgO76FY/KhyJ1BA0c SXeW1nTAp/8p2vZwcmCcjtSdNS4 2020-04-20 03:01:40 45.125.65.112 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4810 +p accept 20-23,43,53,79-81,88,110,143,194,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,11371,19294,19638,50002,64738 +r morgtor 475SNgPpywOKKJ+jgGbgGk/nvZg 6oGNMYAiR6lZFJ1yGKToanxVTnA 2020-04-20 06:13:12 2.205.68.224 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3890 +p reject 1-65535 +r las1 48gLkWIPm0NSxAOy1pLAlAPaJZk f/pntYHkKPjCuDSmhroIpkv1Nc0 2020-04-19 22:12:09 209.141.50.178 9001 9080 +a [2605:6400:20:104e::2]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p accept 43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Clauzel 48u17TQWBEe6PkI7w2w2Tg2b2ws vl/C3zyqNBbcZEs2dqLsG8pbWqQ 2020-04-20 09:31:36 88.99.35.242 9001 9030 +a [2a01:4f8:1c17:4608::42]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=610 +p accept 443,8332-8333 +r jaredfucks 49YbrqC3yxLKztyIIcUgVXvfzqM tTNOqm4uKBPB9Ifj0MUIg5FsTdg 2020-04-19 22:50:18 144.76.107.94 8080 8000 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=100000 +p reject 1-65535 +r OvervagningErFrihed 49cul03kxu+jdlY3e6ekv+nPIrc tpspS4YgKa/0g9JiQc3TR69vO9c 2020-04-20 05:18:15 78.47.20.212 44203 0 +a [2a01:4f8:c2c:a70c::1]:44203 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=56000 +p reject 1-65535 +r taipe 4+dWA5mGYepnxnZ0k/xgaDDdw0U VuV8ePtsLHPpu197xiF/qeI34zA 2020-04-19 20:18:36 185.217.0.96 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8810 +p reject 1-65535 +r cebeta 4+nGwLVfHBlq3/tm3Mm9wxqeTyE VJtXdtP/UEk0dyPFhKlAdOTE4yA 2020-04-20 04:48:24 46.183.119.58 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=560 +p reject 1-65535 +r avalon 4+wR/WWPPrK8IQld6o9JcJYRPHk joUM4GEPSWVDteFYMR9uosPuCbA 2020-04-19 22:18:13 66.183.173.28 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p accept 53,8333,9999 +r TOR2503 4/DAJW7TMPcDR7nnHOHsVBMMjBU sI4VqNKlkWZRapserYGu7vLIKl0 2020-04-19 19:57:04 212.88.4.54 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=309 +p reject 1-65535 +r Finisterre 4/mMhsngETjdjqBrHmYKDNtLJ4I LTATG3L0TCLU4xIhKShZjauKu2U 2020-04-20 10:08:48 95.216.115.85 8443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30700 +p reject 1-65535 +r ZeroMeaning 5AEtOw37XLdDohwspBIxu6KXhrs xoFKFlZpIuh8ylAul/UcnuORo+E 2020-04-20 03:53:39 66.70.204.175 443 9030 +a [2001:470:b304:2::51:1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5390 +p reject 1-65535 +r zwewwlSE1 5AnzC/81P3iD8H3Elz37YjYa1U8 FX4daPedfquXXooSGgw6K6o0fbY 2020-04-20 08:27:49 94.140.125.70 9001 9030 +a [2a02:7aa0:1619::67b:3de7]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=30200 +p reject 1-65535 +r xmission1 5BsW9931LrsdtCaKsv40CzetiQQ 5PlA6AwXsI9Gio0ab4UujENH954 2020-04-20 08:55:24 166.70.207.2 9101 9130 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4200 +p reject 25 +r snap277 5CD8fgOdBd4p9Nos3+vzzFNAFZo xtWUsV2G7e/ubfNV9CUF9cUWozQ 2020-04-20 03:09:07 188.218.20.88 37933 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=840 +p reject 1-65535 +r theia0 5CQFCO/DCNAWZaB72YuFZHQNM3Y zPuwo4jqgKf/iWLLlLhv0mVULNE 2020-04-19 22:57:54 50.7.74.171 443 80 +a [2001:49f0:d002:2::50]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9100 +p reject 1-65535 +r punki 5DJEaE4Mkk7AgrjsxzX68vjPHEU MlgrL4AyhAaEvZu1Q+xW6eYpAQU 2020-04-19 19:40:23 94.32.66.15 9001 9030 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1030 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r Haggar 5DLGuQJU3QZ1+G0+TV86LKEA3os HGAzKJMUqyGwWq1WyFYZhFJGZJ4 2020-04-20 12:14:40 194.55.15.222 9001 9030 +a [2a03:4000:31:461::bad:c0de]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=33000 +p reject 1-65535 +r HSLtor 5Do0bLgd3zZLb/aCNa+tug6Gkrg wRftIfIFYos6u6ug8ArTPNmoN5w 2020-04-20 07:32:11 185.220.102.7 443 0 +a [2a0b:f4c1::7]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=59700 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3128,3690,4321,4643,5050,5190,5222-5223,5228,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r king 5DpplqslxgD5AqmuKEo+BCCjmQ4 TV6TQXChu6v9T13PrtUmnf1grUE 2020-04-20 05:06:44 51.89.147.64 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r witlynx 5D+cM6dcddei2ChmNn3HWF7AEgM ZyUPSvdXZki0TKrMHYpWB0pVPBY 2020-04-20 00:11:41 37.191.253.15 9023 9024 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r snap277 5EZZBUNE9kHQ2GFyxX3R2eOy2B8 h3Z6ldCdg5wZkCXOd82TTsRkxd0 2020-04-20 05:20:24 79.84.43.145 38921 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r AsiaArgento 5FngI3TQOF0uJRXLvnB+ogiWa88 fsOHxMJLZNXgEoIdNvS0c73iHUY 2020-04-20 01:43:44 163.172.94.119 9001 9030 +a [2001:bc8:208a::1]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17600 +p reject 1-65535 +r snap277 5FyC7b7r4iXVBxCXDStQoX0QJgg NlZPJ93s78cAXVrC5Ib8WIAcB6c 2020-04-20 12:15:47 46.43.194.55 36649 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=344 +p reject 1-65535 +r snap277 5F0rql1jAA94qhxaq+rS1w+aWPU wFJYVY/lQ5od3nmLf06RL0XMKsg 2020-04-20 00:28:46 204.197.182.65 35629 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=679 +p reject 1-65535 +r Unnamed 5F7Dgw2K1/I/8b74rB91GVVaNRU mXL0LQVt8AQs11bN36d+QK6oW34 2020-04-19 20:43:05 174.16.189.60 10001 10030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3600 +p reject 1-65535 +r Digitalist2 5Gd3xu+2A2GQ76rZsT7p0OdcVRA egdXywvd86VMrs0VqRoVYo0Uh6g 2020-04-20 08:11:43 37.252.188.101 9001 9030 +a [2a00:63c1:d:101::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r teller 5Gl5owU9Q63xh0Y6bkhWyHW8jIk /+GRDchI0cETfYm0jlEui2x1e7A 2020-04-20 09:29:34 69.164.221.78 443 8080 +a [2600:3c03::f03c:91ff:fe70:357]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1460 +p reject 1-65535 +r snap277 5HYOtNaAvtGqY8fMtVja/qfK7Jo OQ4lsTLppAZfZuEepkHgAMTv4+0 2020-04-19 22:50:56 72.19.136.53 39021 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=261 +p reject 1-65535 +r Quintex34 5IDVd/WOeCpbxPpvSaZlDpOJMC8 wmWKkH3tVR/RxcN9QWdetbPFLr8 2020-04-20 10:38:22 199.249.230.114 443 80 +a [2620:7:6001::114]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18100 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r Unnamed 5IrQLFT9P4w6TqN0Us4ygaDSRqQ o55dCeigpuOzJChGvoPQz788gnQ 2020-04-20 08:40:58 79.143.183.69 9200 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=450 +p reject 1-65535 +r bliblibli4 5KI/6s+g1wZMZpS+kb+UgF485Ic CZjwTRhEcxgLdlOxCeTbLRSZHkk 2020-04-20 04:34:58 185.146.228.131 8086 8087 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31400 +p reject 1-65535 +r UseMoaBandwidth 5KfPMtHsgVIeI0yL9GOE51g4qNc vgS65AINj5nq/J8El7HrfnSOOmI 2020-04-20 08:51:04 163.172.60.25 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29100 +p reject 1-65535 +r king 5KzILI/74xI6StaxGAJaU2gLbkY yh9LeofVsZFxRRmke/gDFn3ztKY 2020-04-20 05:15:03 51.89.213.88 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12600 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r niftyhousemouse 5LBMfXNLIpTo7OBXMD6JuR7ohGI vs3Jnmh/bf0pIkhyOz2QtALIRc0 2020-04-19 20:26:21 185.220.101.2 10002 20002 +a [2a0b:f4c2::2]:10002 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42100 +p reject 22,25 +r torrelay2 5LTXKDWbJPflv9bGvg0I7TiYEUA mohk7cT7eY4Y1dIYjC1CWi77Fvg 2020-04-20 07:30:50 40.77.63.180 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1470 +p reject 1-65535 +r Sobit 5LbBF3Yd8Fq8CK0KDq6C2XAUxCc VZ64jKII3hGDUGNr2KuOff8NQ1A 2020-04-20 10:52:53 100.8.248.128 8443 8444 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2930 +p reject 1-65535 +r CalyxInstitute01 5NHyXfvkhCCIZrpKGpWLcxJ8sK0 PG7ARhfokQFd7DJszRuJODNbyyk 2020-04-20 04:13:13 162.247.74.7 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r julianSMN 5OJ9gCNrQh+uoleXSVtX42/598I C4EW+i0Zjwn3ixGMKRTTjMvqz4s 2020-04-20 01:53:49 37.187.107.91 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3960 +p reject 1-65535 +r nomelaga 5PeGni6a9Xnsk/XMuCPs/LKX2k4 sCIevrD8dpllWYHgBpE1SdeNse4 2020-04-20 02:47:34 85.227.86.58 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43000 +p reject 1-65535 +r stargazer 5REr1tBoSD9wW1jSUlTKgUMLxEQ lZouSZS49XC/iJuM0TLvwopx4Qs 2020-04-19 22:16:15 45.55.240.225 2916 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2300 +p reject 1-65535 +r Unnamed 5RHsjK4m5A1viMmIDUXIYq70rII bXJVJJkSxApqpmQP0D99CuLmZu8 2020-04-19 20:37:11 88.99.84.214 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r NormalCitizen 5RYguQ3LMQE47Ynt7dClw2Gq4k4 x7CSHiFeuA9qIfdMMJ5AwWUbSaA 2020-04-20 00:37:33 185.100.86.182 8080 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19000 +p accept 20-21,53,79-81,110,143,443,554,1194,5222-5223,5900,6660-6669,6697,11371 +r ididedittheconfig 5Rc2WlGJnyKOmaIunk71k0cYD4A P+ZzU7gH7uXzYifL6dwYAI3KHZw 2020-04-19 19:54:01 164.68.107.222 9001 0 +a [2a02:c207:3004:1426::1]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1700 +p reject 1-65535 +r Willy 5SEA6JT+jl+jjrZ3XDVoW5/Rfh8 SR6guSGSV3iHy6sv3Vhyk9nxTF8 2020-04-20 03:33:26 94.113.211.23 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1970 +p reject 1-65535 +r 5b4e9f6b0090 5TWDnOyu2f7SfDei8HpWkhs7obo QSLDr0zNdlFp9Ta/MphrIo6LsTo 2020-04-20 08:21:25 51.81.253.200 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9420 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed 5Tk9JTE87JiWI+mWHfBOeWeSkYk 8mQK/IF3paKhmnGVM5VuLMyTZMQ 2020-04-19 21:13:21 102.37.13.111 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=335 +p reject 1-65535 +r Shrdlu1 5UbJausiWL0HM5SQJ+j5YVb2spA L222HgBmObjzeBjXLm0PLBsyoQY 2020-04-20 08:19:55 82.64.94.30 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15200 +p reject 1-65535 +r torEFF 5UsPp9lXWTNEsMMWyDq8HNLuh+o jGKit20L1eHF+hLk4Mow9Rx0QoA 2020-04-20 06:39:38 173.239.79.203 8080 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=760 +p reject 1-65535 +r snap277 5VZkESKxduY9FD6LqQzHFZ41ihc 9jKVcKILNa7CeO+hvOI/WCd8VD0 2020-04-20 12:14:28 78.222.98.85 43681 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17 +p reject 1-65535 +r Himbeermakrele 5VecTW1ZBNuFUqoUw4+wIAghOFs XxC+M62AfveaEgd63LcxtqA9i6E 2020-04-20 01:20:13 77.191.6.37 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=838 +p reject 1-65535 +r pangea02 5W8HdZ5wTE9TM04WEGbxL69/fJc ldLYdDSaW8z2NC9+ia/OvsoCP7U 2020-04-19 23:22:58 81.16.33.31 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2440 +p accept 43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,873,902-904,981,991-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,5900,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r whoopsie 5XcwQlH0ioXMADm2WWmMdnP3IdM 1kcO6bp+lPgj+JL5dOZruVtf6/I 2020-04-20 01:03:49 75.184.16.251 17612 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=580 +p reject 1-65535 +r epsylonhost 5Ygci0YFLyl1uPwchLfMBgcO/ag 9cBcxYq54JkJNjuXcEtFiEiGXSo 2020-04-20 03:30:07 77.3.128.62 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22 +p reject 1-65535 +r Norman 5YpIpiM2oIzDxrQIApI3VOZaJgk T8h5QFGISyceTDzRsWU0i1qgkNU 2020-04-20 06:33:35 52.52.230.13 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p reject 1-65535 +r Tory 5Y6JXn6ziSeUpZkjsHtFuw1HtWQ ROJ8HqfM9x0Et2qnsP/7DHDxlJY 2020-04-20 11:02:12 47.144.67.35 9001 9002 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4400 +p reject 1-65535 +r myelay9139 5ZLrJ+S4OQF2kIYBUyJlFyBuYp8 pwulJ1y7OKH9igz801GM6B6116s 2020-04-19 23:21:53 97.70.176.61 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=715 +p reject 1-65535 +r milliways 5ZzABgB04Uyo6UaZmbhixeHOSek qc0OluDUu4BQi7eEJbTodApWjH8 2020-04-19 20:53:38 83.68.131.2 9042 9030 +a [2a01:190:1501:9050::1]:9042 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=987 +p reject 1-65535 +r WonderWoman42 5aqF+mnNwxkAyG5kJ8fl3hHeni0 HtKtMl1q9iLcpSyqIGDhMIKvgwU 2020-04-20 09:00:24 194.109.193.142 1194 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=49400 +p reject 1-65535 +r TtitudePhysicin 5avZUJcJsATT95czHrIxLqV4KWI S/YaMq0emDRdKPYP07+Wrj8n1w4 2020-04-20 11:27:50 47.56.197.215 9002 9031 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=158 +p reject 1-65535 +r kyouma 5cyRuv58zWgAPoc9MuOAJ2ONSdc JhLMrAwHvrv+P2KvYNOTScLYs20 2020-04-20 00:14:38 148.251.67.170 9001 8080 +a [2a01:4f8:202:31a7::1337]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=42800 +p reject 1-65535 +r somsom 5dE7cmSJ6RomD3C5W3rZlJu2qV8 3kJLAQib0JCHlCTHzs5PgM/1cW8 2020-04-20 04:27:02 188.195.110.54 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3510 +p reject 1-65535 +r askatasuna 5fPt2ScUjF6018tx3LyROC9Xp6c HUreIWPZ5kORjE19NUrHzteC8Zs 2020-04-19 23:30:17 184.153.177.172 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=414 +p reject 1-65535 +r ChDickens2 5gXnDoand3oi3yJZ36nFNgtUNGo rU8rqsbRRKpXr3h7TBGLfTQ/Mkg 2020-04-20 08:39:27 188.61.64.84 5497 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9330 +p reject 1-65535 +r FlyingCarpet 5gyTH/iV9xefCb1cb6wZ8SQP5h4 G5AH2ozqkcIAFh9ceejDPB/kJ/o 2020-04-20 07:41:32 217.248.227.149 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=200 +p reject 1-65535 +r GuardRelay 5g2bCT45tZbyJah0z6bjQ3gXanU 4cMjXDgirI9OU1soLqzsTLl6PpI 2020-04-20 12:23:35 149.56.115.167 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r fiedlerRelay19 5hXrWxB7BLKoku9jAYhy1qkHwOQ Q2WUfKRutbfj9/G56FKpS2aRElk 2020-04-20 10:07:25 185.183.159.99 9001 0 +a [2a03:4000:1d:8ee::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6500 +p reject 1-65535 +r astarseran 5h1jRCvgbMjMpgyXLeHDrj3Xhx4 Aai8cQrMHyCfiSlysv9WzAeMdrE 2020-04-19 23:18:13 62.197.207.182 9443 9080 +a [2001:470:1f0b:524::443]:9443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1840 +p reject 1-65535 +r sulawan 5iOl4EPtK3TMKAvQBFFP3QhU3Iw ZFcHC440OThi8csoD9/53sRuAqc 2020-04-20 04:54:13 109.68.191.132 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r niftyentry106 5iiDNLwPlTRYF4EYgN3qGE5jrmk e6Ivlvxha1LcMwBtBwDddC/yNoE 2020-04-19 20:25:50 185.220.101.106 10106 20106 +a [2a0b:f4c2::106]:10106 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11000 +p reject 1-65535 +r BlasDeLezo 5jD13BBq4/igIDGWPx4LrT81d5s lRryRN7jFZV0VqZzo4j0i5HxfPQ 2020-04-19 19:17:19 79.159.154.75 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=360 +p reject 1-65535 +r snap277 5jE37KVrgwL2h46ezUNFCexiKFc DPYMzqVVw21CQt2CSDjeCILGtsI 2020-04-20 06:32:48 109.212.94.4 40633 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2 +p reject 1-65535 +r AutonomyCube 5jODeYkH58sicIvIF7bErWuFNCw rNFVnDJdt5F9ZUn71HBPE9Wattg 2020-04-19 22:23:26 90.187.52.233 9002 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1880 +p reject 1-65535 +r Unnamed 5mrvqgiW6MQ1cPZmHNrS1h0k7Jo 8iDTPx6K2D996DUFiCg2LODOuC4 2020-04-20 00:53:26 174.3.207.128 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=350 +p reject 1-65535 +r snap277 5oi1+DMnLH1EMcYPHBtWn02DeJ0 keXLYnIQMeVwU0dm0JpvWwcyCwI 2020-04-20 10:10:29 2.153.35.245 38827 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2630 +p reject 1-65535 +r MonPtitRelay 5onAPAmQ/c5P0lxfHfF9XaeTtiA k5i9JNOi6oY6GiJgMw/TJkWtHf0 2020-04-19 23:03:36 82.64.136.240 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r zwewwlUA2 5ozJwuJi4BxMccj2bwdRewq14kU IFOqRcCbQ+2nihBZKi1Wk+Z0/Sw 2020-04-20 11:56:37 217.12.221.110 9001 9030 +a [2a02:27a8:0:a::12b]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3310 +p reject 1-65535 +r affinezeussv 5pAQPz44ij2cElk28a5cZMGibVE SkpRznSJfhLdyg8m8fSZBtrvrao 2020-04-20 00:43:40 50.65.176.4 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=52 +p reject 1-65535 +r BeverlyHills 5pAi3sAPJZsYsvbqYWevH/S1SPI /okUzFvrdaHMccxpNKum8aAdjfU 2020-04-19 20:44:35 75.87.173.23 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=670 +p reject 1-65535 +r Unnamed 5qirUwvSmRm8J1wq3Xs8uzgcGsQ 3FY5RDOR6hPFrCWnToeURyte5sY 2020-04-20 00:10:58 46.128.207.135 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r TugaOnionMR1 5rb02ak27RSz+Ad5p8NzT2eEtC4 QtGB1fZJcZwihHrgLpJk4cL2SNo 2020-04-20 10:02:30 78.47.222.177 9001 36759 +a [2a01:4f8:c0c:4a57::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=25300 +p reject 1-65535 +r malekalcom 5sBHKOkznfIvMxtwF9Snqj8lLws w3J7TP+kRalmJW9CwOoeTbyaJ+E 2020-04-20 08:51:41 149.202.208.203 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=118000 +p accept 6660-6667 +r YouOhKay 5sUy18dhTxnvgJ9QqnNQVLq0eXk +FOSxGtk14ZgLDihs1yJwftcW2Y 2020-04-20 02:53:15 46.17.63.214 443 8080 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1100 +p reject 1-65535 +r smell 5swptLUM86h9UUOwIRRvy50QAgE LbEfECpqZuMHQbGQ9mDOlXWXQ8c 2020-04-20 00:49:01 205.185.114.238 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r FFFRelay 5szJgVPf40knfoUqt+qtlvDonyA +ifqYnFwEcWA3cJouVwio1kBzX0 2020-04-20 08:29:07 51.91.99.55 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=16900 +p reject 1-65535 +r anymouse 5uUKaJlb4773I/q1vho5gWbMBoA QIg8Xigwp0icg1Cu9NqjQMM1EZ8 2020-04-19 23:38:39 192.150.187.151 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4800 +p reject 1-65535 +r snap277 5uwPKo+TT3a7p0gZV2rSowONyrs sa3J2ETvDqq82P6+9ILiGh1R6pc 2020-04-20 11:56:36 176.206.44.197 46467 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r smell 5vY0PJhGc6K9s4Tlres4m4ViTtA LJiMelXBrfmBnX4OBMS4JUkXU08 2020-04-19 23:49:54 209.141.45.89 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6620 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Unnamed 5vfAZhVxa2gUMBZXUoGhzpXHM/M PlF4X/iOWfGPvVOLDYKB6BgX/kQ 2020-04-20 01:53:44 176.67.170.188 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=847 +p reject 1-65535 +r niftydormouse 5vrJp/M+5m8DxVwRl3Cy1F08V2s 0KtjINLb6LQBjsjNAdoGjsdfV8U 2020-04-19 22:15:47 185.220.101.140 1140 2140 +a [2a0b:f4c2:1::140]:1140 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=30200 +p reject 22,25 +r Rantanplan 5xJWcHv4mMKq5ljCEqL2jnFLarY h3uCMyYD4IGC5M602xyjC0YBmcA 2020-04-20 03:07:29 84.174.204.229 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39 +p reject 1-65535 +r king 50B/n7PoenFUGk8zjZbSXSCzjyA aIZTerWXHsM+RKPCnWA7IM5rlqA 2020-04-20 06:01:45 51.89.200.107 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11700 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r hailden 50d3PGHPZxoiLrkT3hfaMwdKbXY GJDlgE0DXeBNxtReMNWMibEWGDA 2020-04-20 00:07:18 98.225.157.78 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5170 +p reject 1-65535 +r Nepal2 51H5CNVxYg3ca4/UKMh8HtLq7Ic C8fZJDz7V0xDiM8CETKIOIN5lRI 2020-04-20 09:15:53 209.141.45.231 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5340 +p accept 20-22,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r Rumpelstilzchen 51joV+DqEbbZk7dC7X4eHMsBxUU FbpZjp2OB39VYAMlknVa7ov8WlQ 2020-04-20 06:29:09 83.78.52.47 13928 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13 +p reject 1-65535 +r Unnamed 51q/KdS0F9PTVlrtr4nk+dFuc28 Hx/bk009TygTJ21qIBTKhPwLWDQ 2020-04-20 02:59:30 37.191.206.197 38443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10200 +p reject 1-65535 +r FortyTwo 518qyhoYKRr+Uua+C6wfgFq8FDk ceYBuAD/rIObaD7dI8rIqOUlBRA 2020-04-20 11:23:44 184.97.149.222 9010 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=250 +p reject 1-65535 +r phenix 519lGoVk+ixKLDzz4j4sbF9cOVY Vtj34eeP48tfyLhwrSmOYRhUVzs 2020-04-20 05:11:55 51.75.254.63 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=17500 +p reject 1-65535 +r Geoff2 52fDuCla15sC6AohNFyfKzwq19s QcHNyo7Ca4tZNHQu10Cr48T6YUE 2020-04-20 00:49:19 178.254.31.125 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9400 +p reject 1-65535 +r miomio 524rwvySc7+6OJR+tVcgdicNSdU lGcm5rQylEP2mAXHZ2W382h6lJ4 2020-04-20 10:01:07 116.203.47.92 9001 0 +a [2a01:4f8:1c1c:a9e5::1]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r Unnamed 53V5V7ssl+FvuBTt76AgGMhK+D4 qcAQs4nFFbMGS7NQBKW7SkAhTjE 2020-04-20 11:15:42 46.144.166.250 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r Unnamed 53g4G9OGtHI4d96DeolfbpwkFgc o/u+bnyJBIXfxxUtLYFh7NCce4k 2020-04-19 20:42:55 174.16.189.60 10002 10031 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3400 +p reject 1-65535 +r stonehand 53nVUffx+ireemDEmHhtGwtDtuY xu+n1GjCj2C22CzLgGWPKVgyzSo 2020-04-19 21:46:48 187.208.190.158 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18 +p reject 1-65535 +r quatermain 54ghh/b6aVRQcZ/Tc41kD73/XUg MKJ6d3XyjJ2A0ZTjF9OkOZvZf2M 2020-04-20 03:57:07 85.204.74.139 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19500 +p reject 1-65535 +r 1001nybrgsvgn17 54uCViU9DEXl7N5EsyiGOrUSMFA lf6iEWai01hMPkE9UqRnk3KofvI 2020-04-20 10:10:32 83.250.200.92 64511 64520 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=126 +p reject 1-65535 +r Sacharow 55pYrw25O5D5e0iWPMRynkz6Q8U 4t+LmpnybrcM03ao6/eJ+mD43Xo 2020-04-20 09:07:44 217.12.223.225 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4450 +p accept 53,80,443 +r snap277 56ffwuieoywjbgpkbkYuTK17hUc 5uQEtZe92JHzGCdWhpsCxBTEOPg 2020-04-20 12:40:25 2.10.138.25 43891 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r snap277 56rqxO1+Ih+uecj/QmqPdQ2IHsw nB9NMGlhoyaydeVmhuKKIBMdoic 2020-04-20 09:47:13 77.134.47.103 38565 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=23 +p reject 1-65535 +r aabbcc 58H6+3UlFJoOkRUS9RHZQrpe6q8 eCA9bY3iXYWTOriw91Nr9nCzWsY 2020-04-20 10:45:50 94.242.63.4 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21100 +p reject 1-65535 +r Silverwing 5+9ztHIs+vDoqiFR06p4cB3l8Zs /coPxs+p5rhES/7TTZWKki6Aeuo 2020-04-19 22:58:17 178.254.22.21 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120000 +p reject 1-65535 +r king 5/wko+ybYjRl4lHl23R1+Vi++Ys 1BAK3VzNCKS7kM91ja5Bgvv1+Lc 2020-04-20 08:26:35 51.75.175.30 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=20000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Gertrude 6AG/6QSBBvs+OaGwdssDZIzpPY8 rqpGQHn1GT5Q5nD3/Pg74beTFao 2020-04-20 07:08:43 176.58.100.98 9001 9030 +a [2a01:7e00::f03c:91ff:fe56:2656]:9002 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=240 +p accept 20,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r SkyNet 6Ab2v0X0pXcwQx3JHLc4KxIG3nk dDunlRid+wYhcxWMu4JGQ9VPHcU 2020-04-20 03:16:16 83.135.138.65 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=179 +p reject 1-65535 +r TonyStarkDied 6AnZkJho8/GcQzYcvSe//cTPTnM lJVTCAn7xWYVRK1HGQZeoCPzLZk 2020-04-19 23:38:17 37.187.162.153 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=63800 +p reject 1-65535 +r snap278 6Autp56jbFYEihT9gaZscJtCJys WcMZyh46vH0nEOyDfkORydzbfKQ 2020-04-20 10:38:00 81.202.9.123 35793 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=803 +p reject 1-65535 +r MuskyHusky 6BR9EGrVJfnwxEF97bHHeNF3ADk WWMjeHdfU8JikQDnS9G3xgwnBeI 2020-04-20 02:15:54 67.185.177.181 9001 0 +s Fast Running Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=370 +p reject 1-65535 +r llutztorrelay 6Bl4159fvGfdDoD26tzoipenlVQ BNwEUpblH4CWkVVcyXzGCeDslnE 2020-04-20 10:27:21 94.199.213.135 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=168 +p reject 1-65535 +r obiwan 6BmT6lK3MoXP/QL+wANWnSFIMAE D0mEO9qTrJ8b3Cu7k1jsQpjEJnc 2020-04-20 02:45:54 78.46.104.112 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=129000 +p reject 1-65535 +r bliblibli1 6B1Wrj/pkZ86QqsREAkB5rrsT8s 7sF19SIrQIbG76as/9rAN7JELuU 2020-04-20 04:34:57 185.146.228.131 8080 8081 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24500 +p reject 1-65535 +r seadog007 6B7lNaJxMAU/1/infbh4DpDEjLc 02muyCp3lx4apdmph7jP2LI450c 2020-04-20 07:16:14 59.127.163.155 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=260 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033 +r Elenore 6DTbKNFVCKwEuuMveVt3gWkd+rQ NH6WGocr0d+XteZa1qKZtRPXJ5I 2020-04-20 03:52:17 46.38.231.218 9001 0 +a [2a03:4000:3b:3f8::3]:9001 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2930 +p reject 1-65535 +r goodbyeapathyBell 6ENOwWF1Nr0w0WwC0Itxp1B9PxE 2jxUYJ7FFa1cJHKiwGSZbfExxTI 2020-04-20 03:08:44 185.82.126.123 443 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2640 +p reject 1-65535 +r BetelgeuseIT 6EZuAsiTuaZgKiUczqEA8lLiW0s jIOvt+/mqcKoxPO48w2syJhOsVM 2020-04-20 06:22:49 83.136.106.136 443 80 +a [2a02:29e0:2:6:1:1:1628:58bb]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9120 +p accept 5222-5223,6660-6669,6679,6697,8082,8332-8333,9999,11371,50002,64738 +r Unnamed 6FTubzYTYUj/MMulWsZ9vT+AKQE guFHhdqvUR3JTQEecq1VCOOjBqk 2020-04-20 04:32:51 89.45.67.137 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1280 +p reject 1-65535 +r nfsvks 6FWve6lTtlgXgbh+kLjQ0xaA4Uw 0gi+Toaw1EdVrb2EttXQISCGTaM 2020-04-20 09:38:26 80.211.211.72 35785 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=555 +p reject 1-65535 +r tor2go 6FYsfPvrZQHy4C2gAgP5WOixaFw ctCfhRIaqCQfaXuCBekEmMPwwuM 2020-04-20 11:13:34 45.79.157.103 443 80 +a [2600:3c03::f03c:92ff:fe60:4577]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=29000 +p accept 80,443 +r Unnamed 6GSboj9+mbs1NY1bJma7uDDGNhA EfGTNAr+gLj4ITcz8CFJ83HWB9Q 2020-04-20 11:10:49 51.83.171.237 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13500 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r CalyxInstitute19 6GY5JP4qrU4IGhftaXbQroAQ9Hs /WizOqtKiSRvPjZ+ruq412Togrs 2020-04-20 02:16:12 185.220.103.7 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r mailus 6G2FjyqvneKiuVKgv4ZLfzXtyKM j69OeYrpP9PDrViFuo5OBXdvxJE 2020-04-19 22:04:07 136.243.177.133 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1030 +p reject 1-65535 +r Planetclaire60 6I+OchAHCeIm8i32pQNlSABU7NI luCyu5PpL1VOrVWL4p1BQBOo3ps 2020-04-20 06:35:36 91.143.81.8 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r F3Netze 6K2MT9w/4VIVDABbsuqmoJkLdN8 h26DOG4MPczAZKtgf7CCwkIFjYc 2020-04-20 07:03:21 185.220.100.243 9100 9101 +a [2a0b:f4c0:16c:16::1]:9100 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=72000 +p reject 25 +r MoletrixRelay 6LayEQJUdfmJwonyYWZQ3P/QuuI pHLy5V6yJaG3y18MkCtbVHDji/g 2020-04-20 08:39:31 81.244.185.93 9001 9031 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3520 +p reject 1-65535 +r king 6LhkTEh0ZhxWrGsePhZcmnEcqXs fduvSUMaA5BG8RqN68pMg/cm6Ew 2020-04-20 05:11:50 51.89.213.82 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r relay4u 6LrnOTdApwDVCwEN7Z2eyaZrOQ0 x4UHZ2q95H1wwdReC4FqAP2LwCI 2020-04-20 04:05:51 188.40.107.126 9993 9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=100000 +p reject 1-65535 +r schimkus 6MEt/aOutrT8kAX3x9QH5veMmBI iJT3agXtbQzt6/0uRmAs6x8gRmM 2020-04-19 21:42:40 43.231.114.52 443 80 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=39 +p reject 1-65535 +r Unnamed 6MGrFC/cNJItEj/4QMu/AaNH170 449d6f5cFmP/cmHdbRwyQ/lvXzY 2020-04-20 05:39:32 89.188.123.11 9101 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14 +p reject 1-65535 +r zizizi 6MgL5spukM/6lBAnZoU569zk7xo yhxBGRViylGo9rfMWfOEvacm2K4 2020-04-20 03:40:05 174.107.191.118 9003 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=230 +p reject 1-65535 +r F3Netze 6MhmfK89UUjlLs9zansgSYL3jqo dDbK9GIY0eA3uQcl2Y/nz+fTnbw 2020-04-20 06:35:11 185.220.100.254 9000 9001 +a [2a0b:f4c0:16c:2::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=100000 +p reject 25 +r libreonion1 6NEUs8eNjm5/6xAEZQ3WMsIUPJ4 RrKLXT7t664Ky+8MX9nEaaYtw9g 2020-04-20 03:04:44 185.4.132.148 443 80 +a [2a02:c500:2:f0::5492]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4230 +p reject 1-65535 +r snap277 6NJh/xrHzQ1pCqHOFWlMghUajDg U3lFx0pn7qfIYpIxkedhrMnYDsY 2020-04-20 11:21:03 181.228.128.218 42147 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=52 +p reject 1-65535 +r theswissguy 6OapXPAXD/ne2RRczHTrQoizRhM muStOWlSTF+/aBubfQn6vh/AYZg 2020-04-19 19:31:29 37.187.118.150 9001 9030 +a [2001:41d0:a:6b96::1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4900 +p reject 1-65535 +r foghorn 6OpT+wTGJtyX5jM/YDKLGmgrG9Y vNyCLAl1kGDbYkLcL/sria+SdXQ 2020-04-20 06:35:52 192.71.245.137 9001 9030 +a [2a00:dcc0:eda:88:245:71:1b13:d10f]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=529 +p reject 1-65535 +r Tortue 6O1AXkekd9ktnvsgH63yj/f7r10 qtwXr5LyDxYPtwy2jXHBX6vfI18 2020-04-20 04:45:08 31.201.16.72 443 8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4310 +p reject 1-65535 +r gorgothzilla 6PCuFBUUWKV6OBLvsTmpfMSJyN8 jzLwm+Cv0Sj5JPiYy4GO8MIuFmw 2020-04-20 07:26:26 51.15.177.148 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r tengu 6Posm2kPO8Fq3ppIA84sURMvEKY kVC2aqUYzy44xZtTb0SA08lHNpg 2020-04-20 04:04:10 66.183.173.29 22 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p accept 53,8333,9999 +r maibrunn 6QJa1g2Gh11fEVSNU2zGr2Dw714 Xz0ld9FzrgxLVfcMgrboqm5b9ok 2020-04-20 08:48:16 179.43.188.206 443 80 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r netShelter01 6QP9+72A51IKI+5MgDsFLCEHwaY DB61oE++iUYN5eyYzdVmaPmvNao 2020-04-19 19:19:50 185.121.69.14 9001 80 +a [2001:678:a00::34]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37800 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,25565-25580,27000-27040,50002,64738 +r eclipse11 6Q9S0peIvYa1wFfuIzg0Z5IPwXU jB/40J13e87SNg6JajXWeyakpco 2020-04-20 04:53:53 46.167.244.58 9009 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1500 +p reject 1-65535 +r Unnamed 6RSrIF+lq+YJBquefuUntoCaRsE tfez72BsXezofVnPSZhN/EgZ89w 2020-04-20 04:46:33 37.228.129.29 31749 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35 +p reject 1-65535 +r Serpent 6RbyrLpn7Fevr0UKqE5SgwiDVBg cws6ZlcUURemKQuRY5tcZYJs4Jw 2020-04-19 18:58:37 104.244.75.155 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13200 +p reject 1-65535 +r tortoise 6RkFz+sjCxvqawMJgW+e6cGhqDo wYoV0kgMoYR9xqouui9lZd+aDF4 2020-04-20 00:28:42 130.149.80.199 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36000 +p accept 43,53,80,110,143,220,443,873,993,995,1194,1293,3690,5222-5223,5228,9418,11371,64738 +r Relayz4all 6R53y9EyF/lCkwlHT6M9mLlD4kY jtcsqYr1sCUSUmG8/wOqm1r0+tw 2020-04-20 08:08:30 217.160.28.238 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4890 +p reject 1-65535 +r f095 6T5mTSfkKjshUkFzCmjAheK+ydE GDc3dk0A9k0e7sd0+cV1tjUpyNg 2020-04-20 06:41:28 91.247.251.26 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=906 +p reject 1-65535 +r mountaineer 6UB9g3JbOq8qkrnPVVk/RQHFcKw +F8zbHCcL4JIy/VxavtxFtOzYEY 2020-04-20 09:40:35 65.96.225.56 9443 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11 +p reject 1-65535 +r dgplug 6UfAKQh/ocNJm+9dQ3KUfFEiPY8 otFDmrg3ArDx010ppm1etVOJceA 2020-04-19 22:40:50 195.154.105.170 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17200 +p reject 1-65535 +r PieroV 6VlVzXqwEt53BxGHjxR8eE/BPTc IUo97YUm5lfWCvmbtw8SWqNXeAQ 2020-04-19 20:22:39 164.132.226.30 22 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2690 +p reject 1-65535 +r snap277 6Wl5uF5TJCLyEtFx6fmCVD9g+fs 1+zMF7L4pnc2sbkYrKno+BYEHqc 2020-04-20 12:26:51 178.223.111.70 37777 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r Spacepark 6WwHGmeDPCyT1098hMmRSOFRgfg cyRnXrAMbdJqXE0KlAbt9zjBEnk 2020-04-20 05:52:42 185.177.151.33 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8240 +p reject 1-65535 +r Schubduese 6XPoYooxQHKaFH/f/L7FAEM3DpU igVi2P6/9MhX+z16xL5pwQu6ndY 2020-04-19 23:24:48 88.152.204.150 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=45 +p reject 1-65535 +r bee4ok9equageh3giro 6XpCfOBtM7w6aEbWwEtFjwfoDvs yjn0iG70gu9/yfiWnKbJvftC+rg 2020-04-20 03:41:45 69.164.220.107 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3130 +p reject 1-65535 +r IVANTICHY 6X11RXcWHCvvGQQvbhkx2PPlff4 1Fttup4T8Am6bVN7HZOBPaya/1o 2020-04-19 23:09:15 185.8.165.133 6000 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14000 +p reject 1-65535 +r niftywatersgerbil 6X2sRe0qtG3YMKJ5vcx6/OEO5nQ tqa9uDEByaKohLiCKHPNNianWT4 2020-04-20 05:18:13 137.74.19.202 20 21 +a [2001:41d0:203:1c74::1491:f967]:20 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50200 +p reject 1-65535 +r dongusvondong 6akLn/BXRBBpW6X1yDVDaCIacRQ INz4LTc43Ewp3ckSat3h+MJ8vLI 2020-04-20 01:54:35 144.202.49.171 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=18700 +p reject 1-65535 +r king 6bD3q/tkxuEAtS2M8ta4M760/0Q l3TzfC68LAY7/l5qjqJbjJXzWGE 2020-04-20 04:42:29 51.89.213.85 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11700 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r apunkt 6bOi8NpEruwjESc5CcJiev94PFs ISh9lTTpbLBGZ5XFkDbH6ATDphY 2020-04-19 21:57:09 185.242.113.224 1234 1235 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r nodvrelay20 6ccajwHrpKCtZqi5KHdc/q/fnT0 lScdTtc2H39ubQ0Hiu4zrbPwVOY 2020-04-20 01:17:13 45.62.246.179 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3890 +p reject 1-65535 +r LsRelay 6cplSJF95pYbCbJX0qqAPIpbxlc lkfZejs3rg+RlWhkmRzbb0kft4c 2020-04-19 20:17:44 107.11.191.222 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=260 +p reject 1-65535 +r freeInfoFreeSociety 6dYJgWika6mskHJbUUx4biuL6mo vxZUhMciSZ9Rm6VVQYMrc4ydMGo 2020-04-20 04:53:27 209.141.48.81 9713 9714 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=124 +p reject 1-65535 +r kalleponken4712 6doCeOoP+AqsjmXw17r1+o9pNMM QqVqhPrlBruqwxGfx++L+fBa2IA 2020-04-20 04:01:44 83.209.9.121 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=930 +p reject 1-65535 +r niftyguard34 6d7cIIvFWo4pAcxQ5Tepde5c8bM lVBkEGniF61xKxRdbjk1AKIeQvo 2020-04-20 12:44:40 185.220.101.243 1243 2243 +a [2a0b:f4c2:2::243]:1243 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12400 +p reject 1-65535 +r Zion 6fYCgAmWA4nP9yyQ/dccvADL13k +NpJmioFl0AQhXNGpi6G+/4hOJw 2020-04-20 04:34:53 131.255.4.239 9001 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=310 +p reject 1-65535 +r libertas 6fcawG8pshEOP8CQFrDlBAdETuI SY3jhFyh2Z6AOAjIDXnTKklaTjw 2020-04-19 20:42:49 185.233.104.172 443 80 +a [2a03:4000:24:b3::443]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15700 +p reject 1-65535 +r king 6hgVSlm3dYlOWB8yuX7rI1hqJc4 nE0AsC9RoYSOTO5up5JcCZN9cSQ 2020-04-20 04:42:24 51.68.201.121 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12900 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed 6hryLpOse4oA2zGXkT7lyuEfwvc gXJUZfetzCx0GCqSdAUPWrQ9jn0 2020-04-20 06:37:14 51.79.86.173 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14700 +p reject 25 +r Unnamed 6iSSrRIqxbtZBK9CeQpkJkmPyrc bdey+v7G8WA+3WCy7pQ2ZIyARj0 2020-04-20 10:24:06 91.219.236.55 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3700 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r outerspace 6kM0fg2nzt1ZUCm1EQZmKMfIplM o+XMGIieGqcykywekQkGKNOLX0E 2020-04-19 22:04:10 195.201.39.78 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13900 +p reject 1-65535 +r nostromo 6kNmvNymFnuM/3DkHYzR7plo5EU 7DwrxnOIZ1fE9cZQP/aivCC7c+8 2020-04-20 01:30:45 51.89.200.114 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1070 +p reject 1-65535 +r Harlan 6kWElg5cgVo4O5G9nAP7SJ/mhu8 UDKNJoEDD1hKcB05jc+ueyr+lRc 2020-04-20 10:03:01 103.3.62.168 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=393 +p reject 1-65535 +r anonymousByPDH 6k3FokCW7l+u0q/N5Q76Cd/dFy4 Qj7ZJmABk5u2dtx/cK7aC86HY2M 2020-04-20 06:05:39 163.22.17.211 21 8080 +a [2001:e10:6840:17::211]:21 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=180 +p reject 1-65535 +r eclipse04 6mJZkXrfTUetXVLjV2AI2QwiLRc AX5tlV1Z95nmqjV7dtKYORMYPqY 2020-04-20 08:19:08 80.211.53.210 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1180 +p reject 1-65535 +r SamuelFireman 6nAeElZCzsCym704n3WvGAHOc/0 LcGQmySADnh+SqtljSWStzD2uks 2020-04-20 07:15:56 176.123.5.4 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3190 +p reject 1-65535 +r iProtaganist 6nUuWdW+oFXyTuSObBCQ7hoJVTo hTE5uJgmRMfQI4BcTZXo/URyxvU 2020-04-20 11:53:59 159.89.8.114 443 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r schmortor 6nZCxpQL9lcSZ/Bo7yibk76C8Wk PJ9PjkAChjr8IY+JVf64SiLLjek 2020-04-20 08:07:32 104.236.87.90 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=530 +p reject 1-65535 +r velarde 6n8mU7tDY7sGOPaWI3IxRgKrI8M p4LPjO1JwF026ELZwMoVnMr8rjg 2020-04-20 10:12:05 104.149.170.162 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=990 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed 6oVCjyJOytwYuEeg6A2yUajWZks oFe9JnhknZSxivyGHJ34HwiBT18 2020-04-20 08:50:43 165.227.32.113 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=350 +p reject 1-65535 +r 0xbaddad 6oY36nRkUcBoBVn9/zSrpU3a6DE RygoHrOvzeslnk5Xuf1d6JJ5KX4 2020-04-19 21:00:19 46.101.9.51 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8270 +p reject 1-65535 +r TORdashRELAYdotUS 6ozqqJOfIBCNQ4i26uhnpaxkQsE 8jD63EI8sCp8PhufM40oljQi5Kc 2020-04-20 07:46:06 50.21.183.46 59999 60000 +a [2607:f1c0:84e:deaf:deaf:deaf:deaf:deaf]:59999 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8900 +p reject 1-65535 +r demmsecrelay 6o1Zj6PpeFZwyFjFlcyWzIQh/qQ 2SMx4vlhPpByvLTwanaLlMNy5+s 2020-04-20 12:36:49 81.174.172.34 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r sorrytorrey 6qCIRAsQD/hAcma11IU/+xaoy2c tXCvZqWcCgYuj7arka/lGu+kuXQ 2020-04-20 07:46:25 109.74.203.232 9001 9030 +a [2a01:7e00::f03c:91ff:fed7:eee2]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=73800 +p reject 1-65535 +r Unnamed 6qgjVS+Vnf0DjprI+ok0WnOLbAA XB2ASpNr1TbIGABeBTehnJpEyM0 2020-04-20 09:01:54 145.239.66.236 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=141000 +p reject 1-65535 +r Laborkatze 6rIL1Ag8gg7IMp7Vrr8SAZp3SfM LaTwfktGKQKi1koxR16sM0ono/A 2020-04-20 07:54:20 195.154.237.179 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=39500 +p reject 1-65535 +r TORB 6rs5AyP4DURXuqXO7lEUVXAOkp0 YDJnUkgfpj+2/sb+p24mZQdOcRA 2020-04-20 08:16:13 84.250.187.202 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=110 +p reject 1-65535 +r Quintex49 6rwt0NR7XbEfLTfrPGDCpNkcEPI ZtBd2Yltiqg2GPQVRGj0u/3cjDU 2020-04-20 07:55:37 199.249.230.72 443 80 +a [2620:7:6001::ffff:c759:e648]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14900 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r ULayerSnowden 6sroPGDNrhDfWjNrNBENsH0VA1c ujRCcn1+nsXyzMoDF0KOiw+PsvI 2020-04-19 22:56:03 77.73.64.51 443 80 +a [2a00:1838:36:391::675a]:443 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11100 +p reject 1-65535 +r snap277 6s3PKjPsMJ2ypkgClhHAApZeppk jGeN8eCFylOYiQlGKOSSUSsY/ZU 2020-04-20 07:09:13 2.44.80.13 44665 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=440 +p reject 1-65535 +r Zwiebelring 6tJQ7m0b2xu6z/0cPCYtWf1VpBo JpOL4mMxj8WWA9a/5skKy7OMcQE 2020-04-20 12:26:15 85.214.196.178 9001 9030 +a [2a01:238:4306:cf00:ec59:d2a4:ac11:336]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23200 +p reject 1-65535 +r snap277 6uNiBQosdFiQRD+J0/6j7bgJ4vU ucMeHBZZNVFs0fJUVxVKqw9Ifas 2020-04-20 06:13:46 84.119.171.14 42191 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=662 +p reject 1-65535 +r snap278 6uhVBzwHCIaIlRHtmMWViyAGoE0 P6fDBGlsWu0W3/yuu9RjYFk4E74 2020-04-20 06:54:31 188.191.151.127 34251 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=41 +p reject 1-65535 +r crazymodding 6u/AD9+W0k91/AB6ViO9ajpzdCM vs/N2oWI+dA4w/Ny/5jhyPSg7LY 2020-04-20 09:44:14 24.134.118.245 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=734 +p reject 1-65535 +r MidgarSector5 6vY5zJsSbxd1+dZvzEbbyvJIW/s GOAhv5ld1LLHo/eGfvxD/BMfRcw 2020-04-20 07:20:41 45.32.240.31 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=156 +p reject 1-65535 +r snap277 6vulQgCnnOcPZhB9Lwacw/wZw00 pjxWCCXrENNPEP1JNEvBkuuMk7s 2020-04-20 08:20:24 92.161.148.60 45121 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r HastingsM1 6wKoB8+m64bC/E6obrknle2iguo Zrz9hoqNw3hsMzDn4BVmc/SdM4w 2020-04-19 23:37:24 109.77.113.139 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=981 +p reject 1-65535 +r Toriffic 6xkFbAOzh7T8E5GKfn1zlDmoSgA yevEzAqmQOKmkfC3bisoxt6aV48 2020-04-19 21:10:35 121.208.44.101 443 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7 +p reject 1-65535 +r RaspiTorL 6xywE43414obnGMUjyMriIArpIY r3DBFuAuEJh58gnMOyfmPMqc6vs 2020-04-20 08:36:45 84.182.148.251 9001 0 +s Running Stable Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32 +p reject 1-65535 +r goodrelay 6yIRYhypDysA04CWMfMGJgkU0pY uwphTR3HXKBO4nnEZr8LmkWzH4U 2020-04-20 05:48:08 35.226.158.178 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=578 +p reject 1-65535 +r snap277 6z68e2gI0jubJr9UqbpdxMAyebY g/w0Rv3T+2AdArZmwGwq5ofkzos 2020-04-20 08:54:15 183.82.222.92 36573 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=211 +p reject 1-65535 +r wrogregpx2 613wEkpewoHoLwA4svRfp+x8fHU LNFeRY0uxKW/U1THMeTZxK6jHn4 2020-04-20 05:01:00 176.121.81.51 1443 0 +s Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=404 +p accept 6660-6667 +r tr10110101 62CjvSXgGvJWTvA5fYUI5dKv1Yo Bj4xMh6E7E+Ub0rKTiLulY0IDEQ 2020-04-20 02:55:23 5.189.170.3 10339 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=720 +p reject 1-65535 +r Marighella 62XMuGEvpn/tF7V9pbaRnkApbdA I95U3oERJfZaGiZbgeLK69wjlIo 2020-04-20 00:43:10 185.117.118.132 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1600 +p reject 1-65535 +r desert 62qHkzGiDT05h0lg4QdqhCH1pEw nbUy6U4CrlUQ7ucZIH43L3tmA5M 2020-04-20 05:41:20 185.100.87.240 9000 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17200 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Destroyer 62uvkCUzZUo+cIvjo4TKZhWnIb8 b4KSl7499nSC8VXbld19k6SwJME 2020-04-20 12:19:49 103.199.161.166 9001 9002 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=34 +p reject 1-65535 +r h3u60WO1o8 62xT+09RxeWIorj6z8d7tiAo0TA gC4CUbrlmSOBCyotqCyMWcuEbRM 2020-04-20 07:10:05 84.58.210.129 9001 0 +a [2002:543a:d281:0:801d:18ff:fed5:db1b]:9001 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r idun2 6277J/KayVEaQkbXq+Gvq/tBb/E W6p5MmU/kt8XUNv5oGjFOu/zaqM 2020-04-20 07:32:31 51.68.172.83 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18000 +p reject 1-65535 +r gollum 65At+EBpGH9/h5dExgwU/TriSaI ArFMip0uA+FoaX1QdsydN4shWYs 2020-04-20 07:47:19 46.166.129.156 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6990 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Unnamed 65JJ0E3Ky2XB/rcL8dAfR//7xcc w2B01pk8FmkfoY3sYUqzXyvh2is 2020-04-20 09:12:50 72.216.141.93 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2650 +p reject 1-65535 +r PorchPirate 67BvcOzlFX7If9sPM4IbTwyHpPs hzACI7x6bmydfuIbmH1Ijg31UGo 2020-04-20 01:56:10 178.17.174.181 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9970 +p accept 43,53,79-81,88,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Venom131 67UEQtHYJtvpxhqe5eCizkTdmJo veKJummT9+zQfldP+x2EVp6qPMs 2020-04-20 09:01:12 195.123.209.91 5092 5093 +a [2a02:27ac::4ed]:5092 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9520 +p reject 1-65535 +r jdvnsjfnHBDkScf 67dtCW/1eHowOyyB4hv/mBbG+g0 Qpa4hsMWXyTi5LSXq+ycoMfdPrc 2020-04-20 02:15:05 94.140.120.130 443 0 +a [2a02:7aa0:1201::b5e4:ac7c]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4570 +p reject 1-65535 +r OperationUrbanWolf 67eZ+t1hXpPKl75Vg+Xrl90h4Q8 sYQ2e080Iv1V57a3PjqJ/DrAuGc 2020-04-20 02:21:51 108.28.83.178 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9420 +p reject 1-65535 +r FlameBerryRelay 68GMQV7rbKNuw1LQwLjayXJ2cEA cSrBG0UDeIc8FoFgqKQ3Lb4yZrA 2020-04-20 05:33:41 174.55.101.195 443 0 +s Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r tecit 68L+Z0kfGghkOQC2R1u3CJetQuM ljKpNq0bJ0Eyg5UTVSo9JLIH6JU 2020-04-20 06:51:32 212.51.131.143 9701 9730 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2580 +p reject 1-65535 +r Unnamed 68u24AMGL8Eq40OESyETrJWcabM cef9hU2m+GDsSmUHdQiTFAh+XPo 2020-04-19 19:58:58 95.216.229.110 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=72000 +p reject 1-65535 +r myRelayFromTroyes 692ai8RdBUPQ/ck5QO4G5W50mpk wLPZvFl52W1ul4yRiVBcd5o24Tc 2020-04-19 21:20:21 82.64.172.55 9030 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7070 +p reject 1-65535 +r jmarshall 6952JBLR8NdTOAU/WlqbbuBT1kI h8Bp9fYFW6b9x0Xx4ZLvPjHky7o 2020-04-20 00:50:48 5.19.162.103 14021 14070 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3700 +p reject 1-65535 +r fluxe4 6+cY4aSe4ikHFwKWT42x8xgHX/g Jv5GfslOnfZHx0/7diSOq0ZQcc8 2020-04-20 01:46:36 131.188.40.188 11180 1443 +a [2001:638:a000:4140::ffff:188]:11180 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=66000 +p reject 1-65535 +r JdMtOrReLaY2 6+doAtCY/2+iJvYMLQsMCY82evE itvMWzxeo4QgwVVorv+2IMj+Tkg 2020-04-19 19:15:32 95.216.136.34 443 9030 +a [2a01:4f9:c010:22::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10800 +p reject 1-65535 +r sevenrelay 6+0jB9CSV6u/KS6aFQpG1aKg/Bs SKRocZZUC3tA1XRZ5gqtalA9Ti8 2020-04-20 02:26:58 85.244.141.60 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2680 +p reject 1-65535 +r glf 6/CeBBNrQDQqm7iUdiDgukAcsWg rb3qh1iEw8lXC/ZDsNiNHDoPB2A 2020-04-19 18:56:39 88.99.93.80 9001 0 +a [2a01:4f8:10a:1d8f::2]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=977 +p reject 1-65535 +r blackpearl 6/mFOZs969rIgJf4FCR10w00CLY ijrrEy2F2phWgkkzVS24tGpCj68 2020-04-19 19:28:57 185.112.157.135 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1010 +p reject 1-65535 +r redDragon 7AHqZ0nJ/0TspPGtCKaqKtELss8 8WZtQ6HayMOR+gW7y2SYa1ELCFc 2020-04-19 21:38:28 37.235.49.138 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=494 +p reject 1-65535 +r mortimerAtx 7Aq6gR5Osz2ti8i3A32GK/Tzqig a+9fHizeDjd1r9LcfnfEWUYlLZM 2020-04-20 05:18:47 136.49.14.7 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9900 +p reject 1-65535 +r SetElement 7A+xA9YDXqPo+IqhAD7tL0PAJ+U XKvQ8rdGraECIBTOnFbjZuFmEd8 2020-04-20 11:30:51 142.93.203.146 4443 0 +s Fast Running Stable Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2370 +p reject 1-65535 +r QuintexAirVPN3 7BXbYtkQFIHzZN5S64MTyDi93Ck EXyPHDJCtrVu9p1RStg0XHuNbRg 2020-04-20 10:12:26 199.249.230.119 443 80 +a [2620:7:6001::119]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17300 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r niftyguineapig 7BmX1RiS5GB8aOgAVJoefkaUAFo JoxYxK/t+GEyLtyuJTgiQF0lc00 2020-04-20 10:14:27 185.220.101.144 1144 2144 +a [2a0b:f4c2:1::144]:1144 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=67000 +p reject 22,25 +r roll73645376543 7BqtNcmirHqMEWUQid+IuqSjTgU oCHIDZSNlaGK/XUJzS4c+zOQaFM 2020-04-20 11:19:43 78.54.46.81 444 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=392 +p reject 1-65535 +r sheepdip 7B/WB/J7oAI7SL6qRw6MsmfgI7E Z1QKGHaH4RNMmPK4xv2+oNJc/50 2020-04-20 02:03:39 91.145.82.111 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=796 +p reject 1-65535 +r externet 7DXEx6vfWOPtGXhBCSIVLEmpjlc J8d1qVJhq4/YiZkRctajZ59RaJ8 2020-04-19 22:33:04 213.239.211.41 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r VeilsOfTheOnion 7D7C4mycV7Rmhunv5+6r1LVw1tM FmzjT4yik4ZbaXTp3TbFwXjurV0 2020-04-20 07:30:12 5.39.78.40 443 80 +a [2001:41d0:8:9028::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9600 +p reject 1-65535 +r b42 7D7OPDdJ9u0QzWKTy0Iqlaxzk5Y G8B7gNd7u1PAufMdyZ+ht7T8kFE 2020-04-20 01:58:11 82.251.33.136 9001 0 +a [2a01:e35:2fb2:1880::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10300 +p reject 1-65535 +r MLTorNode 7ETynGM4OIl+aTdSh7N/3p2IBBs vVatIYrOYQ0wvjf9QwjqL/bH+u0 2020-04-20 06:10:09 82.59.205.29 8001 8030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p reject 1-65535 +r coincenter 7Eo6ULycxQLh9l59oWvSgYRn3l8 QcLf9uMNchpFFdLcBW6QHR+yfmc 2020-04-20 11:12:42 64.125.109.103 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7200 +p reject 1-65535 +r SerpentRangers 7FH9OK1ESteoRjv9oDUoJ1W17sE PgkmNsTDDW4g0WakfRDXlRVtqoQ 2020-04-20 00:23:46 119.161.100.138 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=365 +p accept 20-21,43,53,79,88,110,143,194,220,389,554,563,636,706,749,853,873,902-904,981,989-994,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r nodvrelay22 7F7Sloli5uRPQSIUty1z6jKsReE 4Zl6uVhhJlVW3y/H85+TmsTpQd0 2020-04-19 20:50:31 45.62.246.187 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2600 +p reject 1-65535 +r VPNrevieWS 7GQScIdq30hNK+a3IT0h4DCWOqY QTrdi+IcISPRy9CJRRGRunvCCVA 2020-04-20 09:16:09 51.15.143.239 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5890 +p reject 1-65535 +r demoncore 7HKIGhEo6xsoPuU/VJB0dxGab+Q kseYQDb4R3i/YxdG6SPh73SDoT4 2020-04-19 22:02:30 185.15.94.17 9001 9030 +a [2a02:ff80:1003:6::17]:9001 +s Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22 +p reject 1-65535 +r king 7HN1PC0DWe5144JfxjFGj9xZ01E lrfFCLkPqrnX2Qpf7GCnnDb/t/k 2020-04-20 08:24:43 51.89.200.119 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r giftfish 7H34YHj82XeWCH6KjTcTHnSjfL8 18A1gAg86HisGJk93tCSUAoWbM4 2020-04-20 11:21:46 178.63.47.104 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r tesseract 7H6ppuvKDp7W8SlSIxMevVWuvic QqhbLel73UDMFKcyQUzW3tL5YZI 2020-04-20 07:01:00 216.71.216.71 7213 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=990 +p reject 1-65535 +r Unnamed 7H/4q0kamGUaTKqor9SmuYVjOak xxrkXzizAJH7yKx80t0a/mks1CY 2020-04-20 12:36:12 167.114.92.52 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14500 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r fr0akatala 7IDuz81ZlhLJp0Z4yAARRkUBQeg 5ctDEiyT8BZGKIGA1ldawsXrt/0 2020-04-19 19:59:59 176.31.163.89 9001 9030 +a [2001:41d0:302:2100::868c]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17800 +p reject 1-65535 +r DFRI3 7ITiMkn3S/+8grTmPNopXMwCkqA oB45DBc+VK/STMfUYwiWXbM2Umk 2020-04-20 03:50:14 171.25.193.235 443 80 +a [2001:67c:289c:2::235]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24000 +p reject 25,119,135-139,445,563,1214,4661-4666,6346-6429,6699,6881-6999 +r arendt 7Iw2vCCbpJkmPpPQgmBGZnqsFLo hdviRqMqKxDmfiGIXCw++DIPCq4 2020-04-20 11:40:26 91.77.162.130 9002 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5730 +p reject 1-65535 +r eclipse08 7JxM20AyBHMRIsnT+kTfrmZ9yC0 /C0dcjfkS4j1Gyzmq84qJP6Xeig 2020-04-20 00:15:36 81.16.33.30 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3250 +p reject 1-65535 +r definitelyNotLE 7KoJcyQmK2A5T+bzzURqZqMxlW4 7xtPpgQ4dwq1Ws1wMh4HKzZ980M 2020-04-20 00:27:30 207.180.221.220 9001 9030 +a [2a02:c207:3003:1408::1]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14400 +p reject 1-65535 +r DagnyTaggart 7LChPDO5wLsQEQTghzjBkEgiI5M G9lwR6m9Vc4hJwsjTP6xLBzIZn4 2020-04-20 09:05:15 142.93.190.102 3389 443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=27100 +p reject 1-65535 +r gapcoinclub0 7LGWWKFvYIyO17OuRHIK3navBjs RUPkW07k/Wr4utk0OpwRTaTesSU 2020-04-20 09:23:14 172.104.88.43 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=540 +p reject 1-65535 +r FissionEx1 7LJKMm04L4S3vWMM/b4aDNzgJFo ZNH/Je3HI5c61LtRV9ru0DVhTOQ 2020-04-20 00:25:35 147.135.78.157 443 80 +a [2604:2dc0:101:100::a7]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11200 +p reject 1-65535 +r torpidsDEmyloc3 7MF8C6dBE/t6T1ja8v8e4jzl3wY 9TEUzxUyDFSc8bmZP8HggpR5ZU0 2020-04-20 01:28:48 89.163.224.187 443 80 +a [2001:4ba0:ffec:b9::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8100 +p reject 1-65535 +r Unnamed 7NBu8NetM20spPN9t19sr6O6/fc au/AP4IzEjG+7C/yCwf4Ml+0adU 2020-04-20 07:07:44 87.160.240.88 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1210 +p reject 1-65535 +r Unnamed 7NPVk4XYPvw9KW4NK+cwaNrKbaE 9Kprpzs04SqweGOO0eR94HMXFZw 2020-04-20 06:06:12 193.169.86.143 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9430 +p reject 1-65535 +r BESTIOMONDE 7NWWJ1u9SxkVcAHoTFcm20R4PaU Tfw/F7E/Bt+XkkF3OqjiIi1dS3M 2020-04-20 05:36:09 172.105.242.117 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=660 +p reject 1-65535 +r piss 7OkMQVnZFpIffI3fTQiKw4CMUh0 PRMvBDiJuQJd8Orb/2mInOT18OE 2020-04-20 10:10:14 87.118.116.229 9001 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,445,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r SEC6xFreeBSD64 7SM4ysJxGz4zE5Lh7SgxIZt5QCQ CBLXrIUTmXp1QtgmbVU1M0DzP+g 2020-04-20 03:32:38 192.87.28.28 9001 9030 +a [2001:678:230:3028:192:87:28:28]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40000 +p reject 1-65535 +r Fuckthahelloutofme 7SvxHLPAIFytyUWW3GiKUVP8qzU fcrs0cI2ytaAHKIvn815ypliix4 2020-04-19 18:51:31 212.147.13.90 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17500 +p reject 1-65535 +r Unnamed 7TYSRRX3Hi4kAdcNnvw8rrCNYRs Tjo5nh+iwsc6XSDk/I0fD4LEh14 2020-04-20 07:18:55 37.191.205.53 38443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10200 +p reject 1-65535 +r Isoalliin 7TrLu4nF8Vl6RKZdL6IDvbjiCPI yz7Zg3Kk7HMGXmRT1jFLHNop0Zk 2020-04-20 01:08:50 195.154.233.183 80 443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=38000 +p reject 1-65535 +r Unnamed 7UI8pb8F96bX8iO5KVIzrcfHYUQ zhmXFTx8No3EzqX4hdgbuzIV+Os 2020-04-20 07:36:58 45.9.250.136 443 8443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1550 +p reject 1-65535 +r BungeeNet1 7UMlptuNV5z/cPWlYw/TaEZLDWQ S4DppDL1Qhymov2JeBDh0Ieh38A 2020-04-20 03:07:46 51.161.43.235 443 80 +a [2001:470:1d:3b0::ac:ce55]:9001 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15300 +p accept 20-21,43,53,79-81,83,85-86,88,90,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1043,1103,1113,1194,1220,1293,1500,1533,1677,1723,1755,1863,1883,2082-2083,2086-2087,2095-2096,2102-2104,3690,4070,4321,4643,5004,5050,5190,5222-5223,5228,5287,5675,6880,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8502,8601-8602,8883,8888,9418,10000,11371,19294,19638,50002,64738 +r vilyaExt 7UZj+1V79ccztEaB9cYShoHsBWk SabBK0/LApf/HPLtH310BxMDI8M 2020-04-20 08:44:00 193.227.196.10 9001 0 +s Running Stable Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=15 +p reject 1-65535 +r rfc822 7UoR0/YY/jDYGi4KZCs+mR0S1h0 9+9zyS5Q2dwqX/qJpp+F03DDmLI 2020-04-20 07:58:06 195.71.68.84 4712 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4 +p reject 1-65535 +r snap277 7VMccwt2JDQ0fG4pPx03o3/IzKs qseGCoIb+ly9GumTJAWqz04oJ+w 2020-04-20 10:42:39 176.250.134.92 32945 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2410 +p reject 1-65535 +r Naname2 7VzNLpDla3Ys9U4Ri5nMGDX/wsE WkfK4Qi9idhZEs/Ut9s60x0Vz+E 2020-04-20 07:56:42 220.148.130.107 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=450 +p reject 1-65535 +r niftyentry70 7Wr4zoz0EmpvM1cjdrbYl3/tLdk QqhKDEL7GeqLuGuFb1GTvP9EFFc 2020-04-20 10:51:08 185.220.101.210 10070 20070 +a [2a0b:f4c2:2::210]:10070 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14100 +p reject 1-65535 +r Planetclaire63 7X8r5dKsf8+CGpCeJIb/+5XWUnI GlM9u0/fdj4iWueP4K38iwwOs5o 2020-04-20 06:58:57 91.143.93.29 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14600 +p reject 1-65535 +r Unnamed 7X/faNUEru1OKMY5az5KTtBEBrk pQJl6me7hmh29ps0GdOwnFNvXMw 2020-04-20 07:12:39 163.44.173.37 443 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=200 +p reject 1-65535 +r tutor 7YYYVcZV43NUfUxOhqNcWjE/pJc HtA+KZeNixHrE8DAXKFn4y4ko0o 2020-04-20 07:17:20 194.160.170.212 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=37100 +p reject 1-65535 +r Unnamed 7YmsKK/zbs8+obmLQXUI3WeMunY sfXj31bMfe0XS2ChORaYkalJv2U 2020-04-20 07:25:59 185.186.78.172 443 0 +s Fast Running Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=132 +p reject 1-65535 +r RumAppointment 7Y1Ol0U9dRCpNLT+z9qzUQT9fK4 7f0GhwMomL0PzqBbJsQEwwbVWdg 2020-04-19 23:41:28 157.131.196.215 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6000 +p reject 1-65535 +r Unnamed 7ZQ9XTKzk1hikWob4z53gNtR28Y 4zowwJamkJBR8BoArHoZn01C0sU 2020-04-20 08:03:33 84.133.84.225 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3580 +p reject 1-65535 +r Nabla 7ZZJrZrEOfcFYO/jNJtKxKr4tqw a18il76abSzH9abikHNe+1szYlY 2020-04-20 11:32:21 51.38.154.10 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3500 +p reject 1-65535 +r TahoeTor4 7ZbA2MTqd1PY8qY7sAr7+WxBmFM PNJu4TRJfPxCSKdGaJ9w7G/o6tQ 2020-04-20 11:21:31 71.93.76.125 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=330 +p reject 1-65535 +r Unnamed 7aklwn3hfKcVPYresByAJ0326j4 VW4CiTJpz3/6EWk8jFsh4WDLuj0 2020-04-19 19:13:49 104.244.77.40 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r king 7a0lq8MI17FgT51zanQSvsFr8NY gUXswCmD58d4rOfxQHzxjPk+tSI 2020-04-20 04:47:58 51.68.201.120 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11300 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Karlstad1 7a8wxY1szzWeoGLGaMcYChcHZEA SdTtqIDvW3jRdQ55aUGh0QXXsSQ 2020-04-20 00:04:44 193.11.166.196 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8050 +p reject 1-65535 +r Nebirosh01 7bkh0Cwj+j/4EO1bSHrXYOSWhC8 RyUbHc+hA+/NjEiXyt+RtVFCMXE 2020-04-20 02:00:34 79.200.189.20 9001 9030 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=31 +p reject 1-65535 +r lkerry 7bnGW5OZQOxenagA7hV08daAQrQ O3odagj4yy96+kzBwA/ffA14fsg 2020-04-19 20:47:11 51.77.50.229 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5500 +p reject 1-65535 +r niftyjunipervole 7cQkP1f5uFa0ADmNX2w1T4QI7qk jGgLxX2RK1jHR2fKmEdgePhFDhw 2020-04-20 09:25:30 185.220.101.6 10006 20006 +a [2a0b:f4c2::6]:10006 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45000 +p reject 22,25 +r OughtEcology 7cieKCXkoIOSxt8fGLOw1tsUhZc 593ROlJAEllq7dcMb8qn6M5PCEk 2020-04-20 11:33:02 47.56.85.79 9001 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=200 +p reject 1-65535 +r none 7cnYMvvq+Un2ENP2pVU3KRtOjyY 6ACKF1vzwS4TWExw9RDImZdcHyA 2020-04-20 01:48:32 213.109.160.48 9001 9030 +a [2a03:4000:36:d1:8da:abff:fea4:41a]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r OZallOverTyr 7dBDPmEyacK+bHnAfecQqH8fdKo tIZH0watiwRw1bFeOaPWw3ZJmqg 2020-04-20 02:11:15 46.246.43.146 9001 9030 +s Exit Fast Running V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=263 +p reject 25,135-139,445,563,1214,4661-4666,6346-6429,6660-6667,6699,6881-6999 +r StandForFreedom 7eoZFy7IsUY73RnjoYd4xXVnEKE L7rstzhn/ngjU7ReFBqpoPlPGzI 2020-04-20 08:52:12 45.33.114.120 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=195 +p reject 1-65535 +r CalyxInstitute18 7e24eXhz00Ayi1/tvXdEp9HfFR8 1wXkt9fU1ihm7k089GklcUAnitk 2020-04-20 02:12:29 185.220.103.6 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22500 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r Unnamed 7fvUB2GLhKOIoPpQNUgd5sYQZzE D0m6ALmJ8vExM1QucdWX98zV+0E 2020-04-20 02:44:43 40.85.253.11 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7300 +p reject 1-65535 +r HoleeShitSnaxx 7f1f/p2XrcC6/jCjvYRU82/972k mh5OG7LqZ+plIA+YvjaB+/AbTiA 2020-04-20 11:55:32 207.154.192.183 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1300 +p reject 1-65535 +r luraleen 7gEO+AonrAsCzcK4shSmIBuwLSs M+02eyIOpr/IaOKpoM/igXTljXI 2020-04-19 23:31:09 144.76.175.205 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=92000 +p reject 1-65535 +r ihaveeditedconfig 7iAdJuznqlxJbdzExW7GIZbkohA /zvBMiprzdJlmTCsiWVikyYkHso 2020-04-20 08:18:50 134.249.122.104 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=752 +p reject 1-65535 +r ididnteditheconfig 7jLtmrAqgSCPVeuTQNESXPAiaX0 k2Ot375ij3rUKQEFr0Kb56bcfog 2020-04-20 09:18:00 83.135.84.198 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1740 +p reject 1-65535 +r hashynode 7jZDff0Vv73n1/RxcnwwUOtO3MU vKiM2I5M9Ct8QliOVy1Xkh8qATY 2020-04-19 19:40:25 150.95.177.209 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2300 +p reject 1-65535 +r snap277 7jiAbrXMY3angg4kkkfSOevA2fQ Y7xtQB/6X366ZWPrG7qP/9Jkrg4 2020-04-20 12:48:40 105.101.137.242 37885 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8 +p reject 1-65535 +r tor01aditaa 7jrBVfA82mvdiHcXmpHzzusP3gU NL9DKBz4P9D/2XvKFMJ9ppwPTC8 2020-04-20 04:34:07 66.70.228.168 9001 80 +a [2607:5300:203:439c::110]:9050 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14100 +p accept 20-21,43,53,80,110,143,220,443,873,989-993,995,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r gina 7j3fAMGtxWfzM7m6gZyPJSoykzw aSUzCoaHZretZ9y0S6hNNPbz7ww 2020-04-20 04:24:23 213.73.96.131 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2890 +p reject 1-65535 +r Noname 7kBXZA9aJhmzPW2yj3O7Cf+pRPw Hl6Pvw1bIs18PyAq0mGb+pDPogk 2020-04-20 03:00:50 34.237.124.74 443 8443 +s Running V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=0 Unmeasured=1 +p reject 1-65535 +r anonymous 7kghFrKkmitkU2Um6t2N6TL2kc0 Tet7tMGZOCOdcX/NtU6uNwJNh9I 2020-04-20 01:56:09 158.174.14.6 9001 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=7 +p reject 1-65535 +r angeltest7 7kr2MgWPBzTBQmsa1on0dEXKIFY 7KvGZwJcLD52DUuatsy1mcH7UZk 2020-04-20 10:23:01 37.252.187.111 443 9030 +a [2a00:63c1:c:111::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18100 +p reject 1-65535 +r cassini 7lSzViTRdcbIV3kT+GF6IXoIhPk sSS0k+yfeZKa5gLPkCGGLd0DWUE 2020-04-19 23:19:00 209.58.160.138 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=547 +p reject 1-65535 +r sqrrm 7lVmJiNrR3pAdwqs3luxQABu+00 9zX8cu5hacV9DONImJ6+TYHlrdw 2020-04-19 20:55:11 185.25.51.202 9100 9101 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6610 +p reject 1-65535 +r snap277 7laE5YgjtOL55NyViVmz/7coVaQ rdPAuW8i6od2TLJLuVqK8RKYkIo 2020-04-20 11:45:52 181.168.146.98 45297 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=170 +p reject 1-65535 +r ROCOL 7l5xqvhxlMtDY0xSN6z/tXu9r9o wuV7bQybQkkMGc29rYkQDL/q8T0 2020-04-20 09:15:23 87.120.37.39 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4680 +p accept 20-22,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r dawn 7nVVn6gO0Q2xAyv/sGhHwyaB1rg wNL/KI0jdrdCh4i+sv9Y6sWDwxU 2020-04-20 12:13:57 163.172.96.222 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3390 +p reject 1-65535 +r RaspberryPi3B 7nagdjLFCBrB879+o7nUDG8k4YA D2QlOdE4rrxKS7xPkwQABsvvw/Y 2020-04-19 22:24:58 2.15.173.83 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=6800 +p reject 1-65535 +r ca001 7oE03RaX9qcAtFD8ORD2Nqj80H0 tMKuzDiKIWd8caPvz2co88OKIG8 2020-04-20 10:30:21 159.89.149.5 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7500 +p reject 1-65535 +r niftyentry67 7oWYSejY7wg+7yAlVVOWpsNVKo4 VibfeCKDbLmsHDUP765oxZ8vboI 2020-04-20 10:51:04 185.220.101.207 10067 20067 +a [2a0b:f4c2:2::207]:10067 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r sandbox 7pQDDQKvWniMYupW1INUDDhGDhA MNHlGIvpRf2sbqM91w05cSbmI80 2020-04-20 10:07:09 176.107.176.31 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7430 +p reject 1-65535 +r sz666 7p07QmR6FRpILHwdQKrwDQbwgE0 IeaIiyA8P1k1YMp/aJtU1CaYWKc 2020-04-20 09:12:17 89.78.16.152 13009 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=366 +p reject 1-65535 +r LisaM 7qUAohbaqD54FfLEZ4ZlKTX9c1E Lmo/gFTC2Qa8iip0wNxysz8feZ0 2020-04-20 11:35:46 13.48.17.31 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26600 +p reject 1-65535 +r niftyexit1 7rj3VUpUqWtRJFq0fre33ZmphJM DzBb5MJwb/adTGSiBsS8Jamu+A4 2020-04-19 20:28:26 185.220.101.42 10042 20042 +a [2a0b:f4c2::42]:10042 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=29700 +p accept 80,443 +r NikowskiNode 7srdsMu1cl1N3+PX5zToJh4OnQk hpoXhFWJF8a4tDCFMfKvhmeipbg 2020-04-20 07:22:48 217.182.76.99 53 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8910 +p reject 1-65535 +r snap277 7toKYx+ruzqGJKcUbiWSf59GHSY PiiFmN2bz+Lebx/8mSbno7mNSPg 2020-04-20 12:26:36 176.202.20.35 41911 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=380 +p reject 1-65535 +r andergast 7tySyOTxTvtiAPtMktT5V7mGUrQ NULN9YKKQQeLq9HHbQl/TYkC+ic 2020-04-19 22:12:31 185.100.84.251 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8450 +p reject 1-65535 +r Tommy69 7t8K8fiSyC8FYGOCe0coPMmuqkE jJzZU04pB+P+bNi53YyyDtkwRRA 2020-04-20 06:27:30 185.107.71.41 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=67000 +p reject 1-65535 +r v205 7wkWPsPwPC9jqGW7vxzlZCxllaM FFmPUxg0ULwVgYMW4BYS/uURN1M 2020-04-20 01:58:17 78.46.192.233 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6900 +p reject 1-65535 +r pmfbgcone 7xIRq7V6pwvDspqFlpmhMpceyPQ DbkjFubucHteh5UQgn2oK3vEQGE 2020-04-20 04:15:12 80.95.29.212 16010 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=67 +p reject 1-65535 +r berrendo 7xqb4jGmw6yUueK/yGmQsWySOkU +/63OeHYFBUs8vSbpWCjiHBw+rw 2020-04-20 07:57:45 141.255.166.189 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9400 +p reject 1-65535 +r pollypurebred 7zfRUPOoUbMtnoQ2BdDqihuTgRc gTL/rnO0M/98vxsnvphPR6JDeS4 2020-04-20 08:06:24 108.16.45.82 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11 +p reject 1-65535 +r npdstueckscheisse 70MBVeKtreQlY+Oyj5kLb+6Sr88 bSpPus5rgtPa57W2W9CGTByB08U 2020-04-20 09:51:56 140.238.254.236 443 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=805 +p reject 1-65535 +r peql293884 702FcdZWnGej6Xs1bLvrwZRzs08 l4aC+5dTUrhokZvpwnuIiVinydQ 2020-04-19 19:02:42 50.39.175.88 55554 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5500 +p reject 1-65535 +r RutimkaTorRelay 71GHfYTOB9Wk+Y34toEosNFe44E 9c+RR0Qs4hGGR6dIyJoka7LZ5rQ 2020-04-19 19:17:15 178.63.40.197 989 990 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=105 +p reject 1-65535 +r GhostLORD 71atVV/YDnvaL6ST2TWa3reBW0c geG0JMtGZ2vzpj/+XCdjl85DneI 2020-04-20 01:10:41 83.223.16.211 448 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2900 +p reject 1-65535 +r flodder 72YEuVqULxx62AffEPk7ngDEems XJn7SLNkXNetRGw0Z84KtbX0eVs 2020-04-20 08:01:52 91.207.60.48 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2190 +p reject 1-65535 +r Spica 72u7kow7pTIBRZGdAdY6xQmPK8k sX6xByG0ENIi12ARhArlKb68Mu8 2020-04-19 21:17:40 139.162.142.27 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=1310 +p reject 1-65535 +r snap277 73QjZHv8V5r4xJA/41nMEwGzfx0 mj2MwA5UYawNHs0vGmjkCeh+3lU 2020-04-20 11:15:27 77.146.26.40 34197 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=24 +p reject 1-65535 +r snap277 73uyeoJL7wtsMYl64/ybrAbSuec RN2JV4aBYdS2pJHIqVVoFc02yfo 2020-04-20 04:50:51 78.235.60.16 38167 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11 +p reject 1-65535 +r ILikeTrains 74kxrNdCbIqD0YgIQnvB5/KjPy4 3VtZEI5ciwQIx3Xvz8w0DslpncU 2020-04-20 09:31:31 31.125.45.168 9101 9130 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=530 +p reject 1-65535 +r PLUTEX 75xGEfqnwhFVqLoqch3cPSeBYDU KUPXm8quVP3eMq0LUoaXCfDaKnA 2020-04-20 05:52:16 109.69.67.17 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18600 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r snap277 757P4cwrwg3RG1c3dUAX2hRHQWw PwLdMRlp8OgBzEUDtasHPT6Xy2E 2020-04-20 09:08:26 93.11.174.69 37581 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8490 +p reject 1-65535 +r angeltest23 76LnsHOqTOLa9xYPI8kNuAWUj0o TAsUN1sYrQNobPZBpQ5UaaED7s8 2020-04-19 23:01:56 81.169.235.154 443 9030 +a [2a01:238:42e4:8600:5f77:4c4f:a310:3b3e]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r RelevationSpace 76MKLmTRJktbaNvROGbSQSDJvNk 0QWyHHbUIN0c72zi53F74lhbf7Q 2020-04-20 03:06:10 93.104.191.165 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=2770 +p reject 1-65535 +r marcuse1 765EcoJkmCIkRF6WIUwV+Qdd7h0 R71CjodhlPaypWCTHnH2PctpWBU 2020-04-19 22:48:49 178.20.55.16 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r Targaryen 78ylhS0YIHp6k8E+80YEWMquqdk eCUGFOTwd7mSpdgeJ3ayFrrYqXg 2020-04-20 08:16:50 51.89.126.24 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r hdbRas3 797qf82H70/jshAtbAD8j/f6u1A 1MeCaFudBNPGw4dfSCQN7vjkCTA 2020-04-19 22:59:29 79.229.124.23 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3930 +p reject 1-65535 +r uppsalarelay 7+RJ4La3plc3a1/mKtFys+xYAKg 44XsZMEia3Lzd7qYr+gqNJ2LfHU 2020-04-19 20:16:19 158.174.114.118 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=740 +p reject 1-65535 +r FreedomPanda 7+SKaioCto0XZ8E7lkb6YuqDELI gZblpMXQz9KhmbB4gWrTG1wT6iU 2020-04-20 03:05:44 190.2.146.90 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r Aerodynamik02 7+rNeBYE64D7wCXt7eotUjrqqi8 zPy4W5dMycjukqoRmDcMLHjOeXk 2020-04-20 09:25:37 217.182.75.181 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9030 +p reject 1-65535 +r jeevestor 7/MuCyuhAiUfP3F8s5iIlu6zqK4 /9MxJ5nSB/lx0IhySXqNktL1pMQ 2020-04-20 05:50:10 5.150.221.137 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2050 +p reject 1-65535 +r jamst 7/ngtbgT5yackQo7uyKGlXUzy6I B8mW+d4xdr65yGfvE4zn2yXnJFo 2020-04-19 21:22:50 98.234.222.4 9001 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=370 +p reject 1-65535 +r Dragons 8AHNKp4nt+Ps0SCVHK+WghOWezE 3vyP1VAtaMhQEqfZ0f9+s3HLUX4 2020-04-20 07:32:46 193.182.144.53 443 8080 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=386 +p reject 1-65535 +r rortor2 8ATFG3wxNtffwgRpqlMpuDcqJjo /cvjNfM/nzeKdn3cYrXrLUL8vSM 2020-04-20 12:31:43 173.255.205.113 9001 9030 +a [2600:3c00::f03c:91ff:fe50:404e]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r PancakeWhore 8A7C4KLKeaV/56CRigh5h3R9dy0 se7024Pr+Zr3vRX54oxt8fcFVKY 2020-04-20 11:55:24 198.27.66.209 9001 9030 +a [2607:5300:60:1bd1::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p reject 1-65535 +r trustytohr 8BKtmgip4LSlxhFVKE/XlbVTs2E OlJTOpIgZf6ME34EcNDz09pWbtU 2020-04-20 02:34:34 185.238.137.167 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.15 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=943 +p reject 1-65535 +r InstitueForgive 8BScuuiVO3FXzFS/xBTbr4WeCzM xQ64Nqfh3j3OS+I2KKQtI9WF5Ss 2020-04-20 00:18:24 47.254.131.93 8443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3100 +p reject 1-65535 +r donald 8BqqZA/06gJduESb1hwFUnO0oyg 57Yth9KcYD3BuavBTCAFugymrQw 2020-04-20 01:35:04 145.239.1.97 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19800 +p reject 1-65535 +r FriendlyExitNode1 8B44LaUkpX8r+zxP8nCiPVzTMR0 GfpD1ELV5hejQrByHEMpETQuPzA 2020-04-20 02:30:33 205.185.127.219 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5300 +p reject 25,465,587 +r fwxfmhtfzxl 8CXvA8HEjTHphBbckbLy0uivdSM egTggQAW3FBt9IwXySEBYeRGRss 2020-04-19 23:05:48 76.66.106.128 45839 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8000 +p reject 1-65535 +r snap278 8EfMqJLpwek5xEFj+yLLyqOhZNg CrVsOhcHhz0aNsC+m0MvkN/jTAM 2020-04-19 22:33:21 80.43.184.176 37362 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5 +p reject 1-65535 +r RBN2 8EkwygRs0YhxIlzh0UAWALUT7Tg 1/XrPDYrJ+w8iEdAd148fULDCGg 2020-04-20 05:30:08 94.130.184.108 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3560 +p reject 1-65535 +r icanhazfunk 8HXAk18zF2Ot+54H5NTTWnTil9c BSyJrIm4NwoZOV8pUQ+HDFUTMgc 2020-04-20 02:01:00 173.230.154.90 9001 0 +a [2001:470:1f04:c03::2]:9001 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4500 +p reject 1-65535 +r snap277 8Hbr/Rnjx+YAgpbxzdy32U0HqNY Qyp6CTrSS+MCOan6qNR4ObstPes 2020-04-20 07:37:18 90.91.157.89 35841 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2800 +p reject 1-65535 +r itherzwhenip 8IMmCLDVLntEGOVOZVyhilhd7bg NSpdZII2eafh9KDoN9HJaigtMKw 2020-04-20 10:19:34 83.84.28.61 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2030 +p reject 1-65535 +r Unnamed 8IpSWsqWXPalXwWHv0tzc9mLlU4 ADsQjLd9iw9/J92Kvgz0SYl1l9g 2020-04-20 08:21:56 37.191.202.138 8443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16000 +p reject 1-65535 +r dontknowmeAT 8JDQbdkIyRSH8KZd/9+x5M1mQog w+zoqclLR1x7PHh1Ih1Ejd1YJ+s 2020-04-19 23:48:37 86.59.115.70 443 80 +a [2001:858:2:b:666::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9900 +p reject 1-65535 +r Ratini 8JWyeNWN6ZwZoHokikH/rAf0bqU LSrirh1Kbk926mObYltnJzUNno0 2020-04-20 11:56:29 206.189.131.220 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=744 +p reject 1-65535 +r SchwarzeLocke4 8Kl6rwkgFSk+xj1+ddnCtwt8Ngs GLU3bkH5G782WTt5nOCdW8mz+Xc 2020-04-20 07:20:42 85.10.196.12 53 80 +a [2a01:4f8:a0:6128::2]:53 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4510 +p reject 1-65535 +r Deteros 8K6SK001jzr2t2IiolJrBHDn2RM hvjH9KtNDYlBY1ZHbRYGTRBOFoQ 2020-04-19 20:24:18 167.86.66.168 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=109 +p reject 1-65535 +r vm242tornode 8LWAeYuzA7o27RJoVo4q2TW2xIY KU9QrexAz58tPb18853Au6F3NIw 2020-04-20 10:48:07 46.4.34.242 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2530 +p reject 1-65535 +r TorMePlz 8LiwNx/USlyjsFQRF2rn69WwJbw cYxc/y77XuH6+HNjJhDddpkM1+Q 2020-04-19 19:51:40 149.154.159.87 443 8080 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1130 +p reject 1-65535 +r Unnamed 8Lz+cEGkbAoBdbVvuUIozL8NtNA JXR2NoLQz47q62Fnva1gETpZp30 2020-04-20 08:56:37 82.64.53.65 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=547 +p reject 1-65535 +r goodbyeapathyAmor 8L0e0mTmbZs0Vf1uJ5deUlHmtjY TlpTO408mdGqBZBVQghehtrTeVI 2020-04-19 20:51:42 89.34.27.21 443 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4070 +p reject 1-65535 +r Scrubs 8MlRNTmAD3YuyuN/FjcNfLpeUsI nrVOLa2iKxy1vAJh3sUL6oTBZnU 2020-04-20 06:51:06 212.129.5.219 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=74900 +p reject 1-65535 +r Pinball 8OQNLNaLzuFvprdo/kgGKu8JOx4 kUD2qAZ1R2ke7Z8eCEO3XApNv8k 2020-04-20 04:49:45 119.17.155.241 9020 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35 +p reject 1-65535 +r fractaldragonold 8OpMzGTMwuI9u65yMNxgyUm4ZQo bOujbOBYQwOTQsZAlPvBNIehiHA 2020-04-19 22:10:35 71.19.157.213 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=137 +p reject 1-65535 +r snap277 8O3sCYhnY5H7TV1c7e8GdTE6tec sa5LIlZeHDIDtWoSayIq/Wm3Y2w 2020-04-20 12:09:29 88.201.250.124 34635 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=540 +p reject 1-65535 +r citizen17 8O6+otmlonQqga98MA/7mPbQm30 zl/cfY4Bwkeqdm0sQKCRNaCGrEU 2020-04-20 00:55:31 83.97.20.99 9001 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=446 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r yoona 8O9SvuQAsnQw3KnRRPoMPeAJn+w V8YHVoGt1yXotvEqPAfn29cHDE8 2020-04-20 02:58:53 81.237.206.224 9001 9030 +a [2001:2002:51ed:cee0::1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9140 +p reject 1-65535 +r FalkensteinTor03 8PE3FHMsNHMSQm7CuNXElA6qRbo 2/Qh4I6JTUqcoZEoZnDJ8fBvfOs 2020-04-19 19:22:47 144.76.236.27 443 0 +a [2a01:4f8:201:120d::2]:8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=57000 +p reject 1-65535 +r Oasis 8PKiq0wb/bMhMpFxlgrYeHibyaw VGHVkcalPw9QO9iyQsYdC4mfTGE 2020-04-20 04:42:37 95.216.223.62 9001 0 +a [2a01:4f9:c010:5c8d::1]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r dc6jgk7b 8PUHSm2t09wi4fqhj9bYnLxSdxo GuIF0BRGOd2shazBnHGN9aZ5PWk 2020-04-20 05:45:53 51.15.89.218 443 9030 +a [2001:bc8:4700:2000::4a21]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35100 +p reject 1-65535 +r irons 8PzKbvMqjXxzHVYk5vxk4D9T1XA j/HEADQCISyu97hCWWKhirftEAk 2020-04-20 06:25:03 138.117.148.45 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=82 +p reject 1-65535 +r Unnamed 8QIny5CklfU67aa2iivY3OqldI4 nRDZxq8TAV20d2/cnIzfC2rNRTM 2020-04-20 11:51:49 205.185.113.207 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4300 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ParkBenchInd001 8QveJ5rnFRXdzMxh3Bmsh2X4o8w S+976t0PR56vUM3BNNBtkDR68RQ 2020-04-20 00:29:59 193.70.112.165 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8090 +p reject 1-65535 +r UwUSystem 8Q/Xd98c0D+ktv1RZj7DDMZU8Is yCDVNaZrt0W2CJFX1DlBKcMs19I 2020-04-20 12:39:19 134.255.219.140 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4470 +p reject 1-65535 +r Debianer 8SYB9LcAncsfYaFEZ7DKSmCOdpw KERcAgkVxIr/H4lAbzzd2aLJLKY 2020-04-20 01:50:15 95.143.172.214 61058 64671 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r raisapX 8SlRTUCaEmzjyfdU9UAA2s0/Gi4 emTwEGDLJD4LaSC8wmP7HDSz1gk 2020-04-20 12:23:58 78.14.87.244 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=410 +p reject 1-65535 +r shekhinah00 8UzVAdQUzqRZXPQOz24QkzLW4Nc IiWXvrVXYXYs7qiRyjt/ALh2JjA 2020-04-20 04:14:19 128.199.222.114 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=716 +p reject 1-65535 +r WitchNode 8VoqCL+RAX3PtgQhcWNWYeE6glY dbwt9eleNnzDJdwCT0uCYUoju4U 2020-04-19 18:53:18 144.91.125.15 9001 9030 +a [2a02:c207:2033:4966::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18400 +p reject 1-65535 +r NeulandSchlandnet2 8VqENHTeID1R08REDCE7aYwi+p8 Wm6vACiP3mlOkJvnOkbvWwbXki8 2020-04-20 12:05:43 109.193.71.56 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=98 +p reject 1-65535 +r Felicio 8V1d2hrikYfz76ci8ewaR/4IbMY 5aY5fOCXm9Rb6+ziwnsTtbpL/Fo 2020-04-20 02:43:47 212.74.233.21 9003 9033 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.15 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=422 +p reject 1-65535 +r chungus 8V9bu5EXW4GYD9BwTxdiwEz2rx4 /yADNDw3Dcz8KkX+MemAYWlVQdM 2020-04-19 23:56:42 46.166.182.20 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=72800 +p reject 1-65535 +r niftyguard68 8WJNcMOtNzyEmlsqjQeiDHPAx60 JzSJoz46HYo7fDz3f9gr6TlyhyE 2020-04-19 22:16:39 185.220.101.187 1187 2187 +a [2a0b:f4c2:1::187]:1187 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16400 +p reject 1-65535 +r larrabee 8XSqceGTq6VSG+6t1ebyyN1vnfY UDw0LfAhl+UtpYBqlZ7qT0dV+kg 2020-04-20 00:16:38 110.4.47.139 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=459 +p reject 1-65535 +r Unnamed 8XTvMchedkSD95teAUxNgcbxCrM jdzOXcR/Db9XJhk7eZVDA7ANUZU 2020-04-20 02:11:40 144.217.245.145 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=531 +p reject 1-65535 +r MollyEileen 8XWbs2D2ZraozgLNBPAo6EJf2c8 sOsVB3L5lULXDNXOzKIUlZvUxjo 2020-04-20 00:57:40 80.101.137.223 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3140 +p reject 1-65535 +r sinterklaas 8Xtc4CLBZCAqALNmnvyrcs+AuTw izHhg0SH8NwatyVL76Nzojenz9M 2020-04-20 08:27:05 85.17.172.75 80 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5830 +p reject 1-65535 +r nlpdk 8YVeCehn7NAKTLfTbVgXCnV0wP8 e8T+ZGwejeyoZ6adBbX+NQt8PFw 2020-04-20 00:34:13 5.103.61.111 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=232 +p reject 1-65535 +r shiitake 8YhqpPSJcT8IZzvNbj2g4cIy4uU KM2O85PPaXWAOS8mlbO/kJD77/A 2020-04-20 06:59:23 51.38.180.155 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=60000 +p reject 1-65535 +r notorious4 8Z7v3y+y7/wA63GfxWYRFGOL+4w bTuotNzYs+tAm4klrOB81iiFMBM 2020-04-20 04:11:45 108.61.86.140 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=790 +p reject 1-65535 +r king 8aGysPHJ2u11wRTguK7dTbdokZI r3RPT695Lz1Hh6YFOh14KBh/mk0 2020-04-20 08:26:39 51.68.201.114 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=16800 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Kings 8afOGx1VjcJOObazD/IX7M7s8UE efUofyPW+yKmu02dZg3n/jUAlT4 2020-04-20 10:33:22 178.62.252.82 443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17100 +p reject 1-65535 +r arpalord 8bHhJnqTASRBIO99R81BdP2U/WA 3uid2q8szk1ln0oLODLjpMju5nw 2020-04-19 19:53:50 82.64.117.69 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=3600 +p reject 1-65535 +r k0nslNET7 8bb6DtjGDpxzF68CfnwOXBrh3Tk Ke3+WRPjDVxsVL+IjIwCpCZl4Ww 2020-04-20 08:29:56 209.141.39.33 443 80 +a [2605:6400:2:fed5:22:bfd6:6714:e628]:443 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6900 +p accept 1-65535 +r tortoke 8ciQGlafZ2OHSNe+l5aVQbPsxZ0 1bfRR5BP3YPQk5r2XvLBlcfk8OU 2020-04-19 19:52:17 188.40.41.115 443 80 +a [2a01:4f8:173:8c4::115]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r ididnteditheconfig 8dSWZYZFTfRGT9biLyrsLcbioN4 mERMEHN92T/HXvu/yQmrTqjRMA8 2020-04-20 00:06:16 178.79.163.170 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12 +p reject 1-65535 +r angeltest9 8dXA9RV9myQBS+jHodh4rqaEO0I r+vIFEKoqN3/F+kip6wpx8MMAvM 2020-04-19 20:55:11 104.244.76.190 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=230 +p accept 1-65535 +r Geoff4 8dr/6Wxhu9NMsHjpi6UL81xBrwg /9Fj2KdPkRK/bXInrwQ7jOyCcj8 2020-04-19 20:53:15 31.31.74.177 443 80 +a [2a02:2b88:2:1::557a:1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6600 +p reject 1-65535 +r BlueVenera 8eLX4gcX/kz3Gq85WTEmycG6zbc VsGjEXgJYj5xzHNW8UyVxGOSsBg 2020-04-19 23:25:05 80.211.218.201 2681 0 +s Fast Running Stable Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=314 +p reject 1-65535 +r themis 8eZnagVRtNiCYlNvqrSIuGGqyho /bVE2SYp+09bd2TPezJfZowFoxs 2020-04-20 07:49:33 46.38.253.161 443 80 +a [2a03:4000:1:47e::443]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8920 +p reject 1-65535 +r Mandela 8fnR29flb5nGHDcS1fSgIVP9mtQ QPnKvYPjXGXWaHgRjx7cU6dgToo 2020-04-20 10:06:50 195.123.246.77 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2400 +p accept 53,80,443 +r gabelmoo 8gREE9rC4C49a89HNaGbyh3pcoE DQiRzidHJ2Iv5G7LEYaIMRiEfsU 2020-04-20 00:02:44 131.188.40.189 443 80 +a [2001:638:a000:4140::ffff:189]:443 +s Authority Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r niftydemogorgon 8hdg5j/iu0Vim7FPzbD9Z3SF2vg bGQxbvG0yMa1COH7cBResB6s9fU 2020-04-20 08:53:07 185.220.100.246 9000 9001 +a [2a0b:f4c0:16c:11::1]:9000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40200 +p reject 25 +r atorcy3 8hiqbMC9jFiKhv4Cwa25QHCLvHY sD3+Of8cUikrJJd9x8hifloS6co 2020-04-20 10:14:20 178.32.218.54 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=765 +p reject 1-65535 +r QuintexAirVPN23 8h3px94xYB2XFngeF+JDgIh4g9E jdRfVgf9zqRz1qUp0pXKIC8JUcI 2020-04-19 19:58:22 199.249.230.76 443 80 +a [2620:7:6001::ffff:c759:e64c]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13700 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r pangea03 8h37fM1e7z4CEIbslu98/Kpy9PM zD2Tb6MFwLOUxL5U2bqHhBATc3E 2020-04-19 23:25:31 81.16.33.33 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2420 +p accept 43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,873,902-904,981,991-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,5900,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r Unnamed 8i4UI2m6nIe2KGLZrLQAiaCbo28 O4zXL3dx0XzQdmVx3aLxX3Ilo/s 2020-04-20 11:01:47 95.141.37.207 64688 56462 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=172 +p reject 1-65535 +r HookersOnion 8jfawYFwi+7/GAYyzXq0LsoKz5E KQdTrNOWyMBupNM8UQhI5kmbyoM 2020-04-19 22:59:53 23.129.64.210 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5200 +p accept 1-65535 +r oldjourney 8kal9+kp6EknKLegYWGy4x888lU QFsJ8LJ94KKEdu4kxuEk7j1PfUE 2020-04-19 21:44:08 157.245.134.110 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.11 +pr +w Bandwidth=2630 +p reject 1-65535 +r jaures2 8k+L6id5p5ER8z9oMrBivtMGucs grAHoJzJ7zsemZgHQqSsjjoWlGw 2020-04-20 01:15:15 193.234.15.58 443 80 +a [2a00:1c20:4089:1234:cdae:1b3e:cc38:3d45]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7630 +p reject 1-65535 +r hmnij1 8mP09Xog2MGen5yEFQxg96SfLbU J38Ur54wWa0/flgAtuJiGub68MI 2020-04-20 11:51:16 104.206.237.24 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10000 +p reject 1-65535 +r PiratPartiet 8ntHztRXJMvOO0KSbdUvIJHzlaw M6o+IzZrZmPgPIhzA3DgxIOLF4w 2020-04-20 03:27:41 193.180.164.194 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r little 8n1dfSof5N99gm/zIXTGL/E5TKI CCq+M4fE7c0Pv8981JDmmPtdQfE 2020-04-20 07:28:39 5.252.176.20 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6760 +p accept 20-23,43,53,79,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r LiveLongAndProsper 8n+df8bUbg+RUzxotXI0dDV5fLA qb1gKwfvI1mupWUPuayAR3+NXbo 2020-04-20 00:31:12 23.129.64.182 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5480 +p accept 1-65535 +r gork 8omZgeOmAaey3cfd4CwkgGlwTZ8 e8btGZhzz1W8Fk8xWRfgyQsp0q0 2020-04-20 06:16:11 82.118.242.103 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r t4cc0reTor3 8psPGpG1XMt/bNyiodGMY1cfdms TSfvOhK5a7F8ES+7Tua8WmVsKTM 2020-04-20 00:21:33 51.15.44.157 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40000 +p reject 1-65535 +r Gandhi 8q+T0j2R+c/gPFFR3wGwSBv5nhI Dx9l8Cu5jeleb/2rpTpLvgkq2N8 2020-04-19 23:07:25 46.232.249.138 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7750 +p accept 53,80,443 +r Unnamed 8sBgghgBSDRhhMYawAljnAqU6SQ T3CO2Y61nBOkj9Qfv9lv83IMOM4 2020-04-20 12:09:02 158.69.172.229 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=10700 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r csskgrelay 8sYQGgyDEGzBniUM8M11eEVhL78 kUaEArQClM8+Mtjc5s20OORG9OM 2020-04-19 21:47:37 188.117.226.247 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=354 +p reject 1-65535 +r heyheyhey 8s7CXtr+9yj/sSrCMxW4OknHSI8 q9hYZ0NteWW0pgYzFsaqhom0p0g 2020-04-20 02:19:03 87.142.197.128 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=486 +p reject 1-65535 +r Allure 8tCevB8b2Xp+74ltAV1rucaHR1M +lBKbvXAIxfUDo8EoX2pFsDGxSE 2020-04-20 02:32:35 116.203.249.165 9001 9030 +a [2a01:4f8:c17:5851::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20000 +p reject 1-65535 +r anong33 8tbrIRdE1B3EHMtivxwyRtJLQqI DAJdSGY24zpU7WdGuJdrF1RrBgM 2020-04-20 12:24:20 79.244.148.223 443 80 +a [2003:ca:5f1c:ca00:dea6:32ff:fe49:9ad4]:443 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3180 +p reject 1-65535 +r relay 8timze0fS8QspLEWT7bGZEKYvhs iWUCu5ll8Fy+kUDa6jG2lLayXg8 2020-04-20 02:42:43 23.157.160.138 9050 9051 +a [2602:fe2e:1:9:a4:fdff:fea2:d22d]:9050 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13200 +p reject 1-65535 +r AlleKochenKaffee 8t/l+h5M9U+OdhptMEubTsab2ug Ci0/4R8/ToD/QKXvW065WhRRbcM 2020-04-20 07:37:47 129.13.131.140 443 80 +a [2a00:1398:5:f604:cafe:cafe:cafe:9001]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11500 +p reject 1-65535 +r Krombianschniedschn 8uYN4POb6oJrUOthmgFK3Olhk1k OkyWLYvP/patD6AYnyTk2KdArm4 2020-04-19 19:31:03 116.203.117.220 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4900 +p reject 1-65535 +r cyberbits 8ufo8wylLPzjXP1fRlpxJO390Xs sTR5YbiW1zMZFK7MOO8SkDgW5XI 2020-04-20 03:17:24 195.154.41.42 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=51000 +p reject 1-65535 +r snap277 8urb2FqKlti7bR+jq5gTSZIOwcc 1wyyKMQS1653AdPzxi4fmPO4W+g 2020-04-20 01:59:33 89.102.239.161 38401 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=785 +p reject 1-65535 +r runninglizard 8u1QMrUgIee627uC5llPGocv/Qk 9/9Sf+OLOBDwRTslLBRrjx0KiFM 2020-04-19 23:30:05 89.191.217.1 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2120 +p reject 1-65535 +r snap277 8vUUdOiepGFQ6Q9kB3qVwkiRZzQ WdTrEd5zjfmfnRIShcTw+BeezxE 2020-04-20 07:16:14 78.214.218.226 32853 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r FlashDeer 8wMX6f0MOlYFiSjWRUBnK1mQLR4 pTYTBv29WJn7ejZA+NJOtcpZu/g 2020-04-20 08:53:17 193.25.100.180 9001 0 +a [2001:67c:12a0:3:24a9:8838:3642:9244]:9001 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=980 +p reject 1-65535 +r snap277 8zUkjzalWFHmm6Y7PTrldiCB/+8 GgoaXhtBdyn9bEHWalExmTlK7JQ 2020-04-20 11:18:16 86.202.144.13 42145 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=488 +p reject 1-65535 +r SemiPvt 80guBGteYR/fJ5r1m3CoioBNFHA gsN83IIhwfJErJ71VWYp7vFzVns 2020-04-19 18:57:05 51.77.39.255 9001 0 +s Exit Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5910 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r kaeferbohne 805oGvgibevJE1pI9h3vn2iWa6U 0YrHpcHDhlwV32hFjKt526NYB5k 2020-04-20 04:39:23 109.70.100.13 443 80 +a [2a03:e600:100::d]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=91400 +p accept 43,80,443,853,873,993,995,1194,2086,3128,5222-5223,5269,8000,8008,8080,8232-8233,8443,8888,9418,11371 +r Harmony 83lYz1dTixDAQcnUZqWLCw6GM34 o5tRybch1f3UguLC5r0iwNuChwo 2020-04-20 10:29:46 51.15.126.106 9001 9030 +a [2001:bc8:182c:2121::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26900 +p reject 1-65535 +r sh0uld03 83mX+JBwhpo0xFai9UV3oydqrLI VLxvqEayUz9IuoBYoV+CtBgfVfo 2020-04-20 02:39:50 46.232.248.243 443 80 +a [2a03:4000:2b:50f:6826:2dff:fe8b:5c39]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11200 +p reject 1-65535 +r 550aca43 84ElGH9efO0f8xw3sK7qcSkmP4I vNXPncYGySkQF5xxEIwa20PQcjs 2020-04-20 08:43:59 85.10.202.67 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=87500 +p reject 1-65535 +r squirrel123 84eYUPnGeXrhSwnqPjhHyynZIyo HKm02H0512eFp6UIuEhWWGCRSMY 2020-04-19 19:02:56 92.60.37.40 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r FlashEagle 84ieLGimc4SMqQlPb0o2U9dpIQk dy9+PXfRfOZba6Tq+vlXJd2H7eo 2020-04-19 20:49:54 46.29.163.225 9001 0 +a [2a00:b700::5:22]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3750 +p reject 1-65535 +r Ichotolot64 84+1WozKagDN0CSl6iz+yzikjhU 4Hv7tLQw3N4VPsvB3V5gRmnMLu4 2020-04-20 04:48:03 91.143.81.27 443 9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16000 +p reject 1-65535 +r Unnamed 85J2+3cnEvaV7hrkYcgB994DIZs 0r5RyeetcyR6COVByoNn1SI/yZ8 2020-04-20 10:18:39 91.219.237.53 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r teeter 87vAiPKA/c2lxb0gYxL+Lfp+LbA Rkvt1ymZCL58wldDq54lbxeNuHM 2020-04-20 10:52:07 129.97.7.34 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5950 +p reject 1-65535 +r king 88fxvI9oSC2FOKDnR26tZ+rDCuY pHxKzUDaRC34LJapo7waSZiP50o 2020-04-20 05:20:33 51.89.213.89 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r TotorBE2 887IftkeCwsdhr5NfekPALYH7K8 p4eEASiqWkeiOvooxNWfP0+1pw8 2020-04-20 11:26:38 137.74.32.26 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48300 +p reject 1-65535 +r totodile 89d1xzvFdkCj6376wxz67dFMnHw 17pgWvT7n3uvxk0lgOU/6ISOkEY 2020-04-20 01:59:58 23.129.64.206 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6700 +p accept 1-65535 +r nott 898kFaXs+1eDXPfmKcOtDh2mcys 5p6+kiaa13lpA77g1ZifQw6GGoc 2020-04-20 03:00:00 95.217.0.144 443 0 +a [2a01:4f9:c010:1553::1]:443 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=32600 +p reject 1-65535 +r teutates 8+seH/RaPN5OAvvU6AXU/DekrVY 53LsLTSEWVHhTn5mTay7rbVpuuI 2020-04-20 09:10:59 37.120.190.6 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15900 +p reject 1-65535 +r Unnamed 8+0QGz8knfZMJw3oWTG/4/tILCA wtb6pyyyFnn7viJ4DY5TH/7J8ps 2020-04-20 07:17:24 137.116.57.117 443 0 +s Fast Running Stable Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5350 +p reject 1-65535 +r Merlin 8/P0kAuHz0prSn+UAlAvxFe3sfw vDnlkZHdD66gvi6bNecMC16dCVE 2020-04-20 11:08:26 46.59.40.218 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7900 +p reject 1-65535 +r PubliusAnonymous 8/nMlV98WZOPJEWR22uymct0Vac YVlMQntGPHz4Ydcf1CsD9FY7bHA 2020-04-19 23:35:41 77.74.96.43 1917 1953 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=96 +p reject 1-65535 +r uname 8/p6Ta/OygK0LiNvvyaPmoIliPM n+yZfU/30O2MsC3HHCkXWi60YAI 2020-04-20 10:01:15 86.57.149.4 1443 9130 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=4090 +p reject 1-65535 +r hulahula 9A5dY4UWlZpvk4kWK+9QUcZtdPg +S3gQdK6e4AS4D2dOwK0vOqEb5g 2020-04-20 06:00:28 134.3.74.103 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=244 +p reject 1-65535 +r TaurNuFuin 9CKTdDsLxKM8gKVCpFHubGSyfek I9FEUwsWchewxEyt62mhKuwQFrU 2020-04-19 22:15:27 188.193.23.113 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=203 +p reject 1-65535 +r pingo 9CSf6Ub5PBuedLBwOU7UYSa0Qmo rZnPcvStNAPad0zocykba0A2tUA 2020-04-19 19:42:07 94.32.66.48 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3100 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,50002,64738 +r EvilMoe 9CYydc9UpoNu571SexMog2pvBuE 8FbZoPHKwo+sryjB3IFK55dJkUI 2020-04-20 02:16:20 37.187.102.108 443 80 +a [2001:41d0:a:266c::1]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9470 +p reject 1-65535 +r fromrussiawithlove 9CtOq8MOtLpln/W7bInNf7sOJyE ccnyoZ7ZPZAGnJCkAloCpnnZGeI 2020-04-19 23:49:46 82.64.170.201 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6 +p reject 1-65535 +r ididntedittheconfig 9C4jSNZgL1K4VjHKbQm8VyvvdkQ PVLnvcnZo27UOgKachvXAvGA4HY 2020-04-20 12:08:02 78.63.158.220 443 0 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=22 +p reject 1-65535 +r snap277 9DEhs51YuTUzZ+Kn3rmI1sIUmBk sNVJHGe/DoNY2xq+FLgP7bdFdjc 2020-04-20 07:50:05 92.206.0.157 39419 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=228 +p reject 1-65535 +r AnotherRelayOnRPi4 9DGI2umj8ixkPNe4s8j+25OqjhI DTDpQ8ZCiYMyHZLqsoqZ132xJQQ 2020-04-20 03:02:51 93.237.150.200 4321 3210 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5360 +p reject 1-65535 +r hacksenkessel 9DxJcDn4Nv4y3kFvTL2XiSw/bp4 vBpxvP6QCN8VwooXpgYwjaqnSw0 2020-04-19 23:10:53 85.25.133.34 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5700 +p reject 1-65535 +r Unnamed 9FLC/efxgki7kEjoOh5/TYZYJTc yaAF74MVTcPZNyeYgGYy7TkVBmY 2020-04-20 11:01:54 185.9.19.83 61584 38495 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=137 +p reject 1-65535 +r freeKleptikov 9FlGCCcsgkB+nRN/GuiaQIzP0oU vdW2OCdukLsah263+WdEo1d+JcA 2020-04-20 12:05:58 77.247.181.165 110 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44000 +p reject 25 +r snap277 9F3+KMuIWhocy+oBuLXNankrQfU lN4votGQUrKWdWaF96Kq4GthxZw 2020-04-20 07:48:44 109.186.3.113 34899 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=177 +p reject 1-65535 +r origan 9GhU7azNFoKP6q/Gxu3cB93wRBE FiwRZm1uJ8NcEJTho5Y0UM8qP3w 2020-04-20 10:20:54 178.32.222.127 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=2290 +p reject 1-65535 +r 0x1ea7deadbeef 9HXlmH5EorexQ6K+4/gSju/X5aM AvpeWqKQ46857mZ5mGJ5eLZACNs 2020-04-20 00:31:46 188.68.45.180 9001 80 +a [2a03:4000:21:47a:de1:ea7:dead:beef]:9090 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12500 +p accept 23,43,53,88,110,143,194,220,464,531,543-544,563,902-904,989-995,1194,1220,1293,1500,1533,1677,1723,4321,5222-5223,5228,5900,6660-6669,6679,6697,8082,8332-8333,9418,10000,11371,14265,50002 +r Elenagb 9HsTv85O9Ize9sTXx6mSCOu5crU Dd3ch/60iwOnTxXbeNcDnIM9HTY 2020-04-20 07:43:14 185.233.100.23 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4900 +p reject 1-65535 +r IobnidnNvfXBcnP4KMf 9ITpAhi0vwuXjAsUbYZp21W57QE 37cW5kyB0stLWDCphh5+7mYJkSI 2020-04-19 21:07:11 98.165.46.62 8443 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=40 +p reject 1-65535 +r Islay 9Ic7PsMyW4HcNsfjitOl7RKy8zk iROl6zNAwOwWVVg4M2gYoDZVaz0 2020-04-20 08:01:01 37.187.23.232 80 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5370 +p reject 1-65535 +r SkynetC2 9I/RrtBoSW1R0ThLx0l8BOSYXaY pOixF6TXvUIFJ9FE4tA2xWbJh5M 2020-04-19 20:30:13 78.156.110.135 9090 9091 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6670 +p reject 1-65535 +r Kale 9KN28tz0Ck4UQXwHo+xfmqg+QKA /fRznknvx2gdR0BS4W5IASvq+WI 2020-04-20 07:33:57 46.19.141.83 8100 8000 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1220,1293,1500,1533,1677,1723,1755,1863,2082-2087,2095-2096,2102-2104,2374-2382,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000-8100,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r XtorX 9KTXjxbpoDU61bvvRjLHAi4g+yA K4DIU8Hx4jpv0zm3maoUwKCQk6w 2020-04-20 12:48:59 51.15.54.71 9001 9030 +a [2001:bc8:472c:690c::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23000 +p reject 1-65535 +r snap277 9KTkPbFFrmaMeKUiWALwSo33hOs dAdpY2fTcqAXsiF1/4nJVUO+uPs 2020-04-20 09:15:05 184.152.24.178 37341 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1020 +p reject 1-65535 +r HeirloomReaper 9LLDDX7nCNUSkUH3eWrP0RsBZfM if4F02i5AY/TOieFLaj42OdYW8U 2020-04-19 22:23:51 139.99.218.3 9001 9030 +a [2402:1f00:8102:100::497]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=259 +p reject 1-65535 +r nickname 9LmjhuON1sunwsZEBiMowZQNOzk 2iW54RAzGfreHfL8Lk/JdA3jkDo 2020-04-20 03:01:24 87.78.133.154 9031 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2950 +p reject 1-65535 +r eclipse07 9Lq9ql2hFd4SLeQVhxLVPXRQvGU oBj9u+RAR8uYHcBc5IF7sRvCaG8 2020-04-20 11:56:39 81.16.33.35 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3160 +p reject 1-65535 +r tornodenumber9004 9MDtqgvw9+wTh0b4/vHOJseGAmU lq65kwUM8mrzXhCaaQUozhGdcvc 2020-04-20 10:52:48 5.199.142.236 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5500 +p reject 1-65535 +r 5672345 9MOwY0wZVuzxQqGFWg/hOpPHxTA 29mwt/I3ibyhl3CjrbGdEy6joog 2020-04-20 09:16:13 94.158.244.32 443 80 +a [2a0a:c802:0:1::1f]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5800 +p accept 20-23,43,53,80-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r yawnbox 9Mg2onvxkvM2SmcWbo7isZaTrtE S0te3481QDeH8XW4ZcqZRVoanDM 2020-04-20 00:32:17 23.129.64.197 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8600 +p accept 1-65535 +r snap277 9M57h7Zreq9bDonQU8fLzrVhZi4 XuA8VEf6OAsIhly+Bhr7r/FjxJs 2020-04-20 11:05:10 108.54.105.201 40559 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4440 +p reject 1-65535 +r romero 9NP70eSRiXjR0TYEeYzste5ckYg zOsDYPw+z73Okg+7UlXLTk2feYs 2020-04-20 11:38:28 185.72.244.37 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5120 +p reject 1-65535 +r IQOnion 9Nbpir4GWA+KNTRwZSA33YZFtHQ pkiS6YBmuDK+OBzS7ljRhxnAhjs 2020-04-20 10:02:40 50.193.59.193 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5 +p reject 1-65535 +r puertasecreta 9PYFqiHEYzzLW427wc7uXFkMbc4 NptL6bgMWgOaxa/ix6AcSvFh4y8 2020-04-20 04:29:54 46.231.93.216 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24300 +p reject 1-65535 +r KagamineLenWoRd 9Pkti4QMLQUxl6w++cWPPc+7IP4 gudguhPkPTbL1cnYbx9lju19vC8 2020-04-19 22:19:14 91.121.86.59 993 0 +a [2001:41d0:1:8b3b::1]:993 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15700 +p reject 1-65535 +r Unnamed 9PuagDCK5xyoBX9BWN1rPI7jdfk KqqRca5lcDg8DA6+5L7bw/tpeHM 2020-04-20 00:53:39 199.15.250.210 443 80 +a [2001:470:7:b74::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8980 +p reject 1-65535 +r madnight 9P8q9ssFIkuuf8hEQQEIidCMtS4 83w0Lz9H6p0SGu9YXYnuipyHgRg 2020-04-20 09:12:41 195.201.103.59 3333 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13400 +p reject 1-65535 +r SwissLove 9QMWeTKexKBIy6U6ZQgQUGMv1uQ Kbb89L35DLqFcHchukkz5R7G07Y 2020-04-20 12:49:18 178.194.3.223 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r king 9Qq6Jsci7lLw5O9rnktzgGVb+TQ 2jISswCKX4gczXT7mJ9qUa05toE 2020-04-20 04:38:30 51.89.147.66 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7500 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r flowjob02 9QzwKg5qnZsl9+siD8Jve9G3SZk TKOntdcmIu+8Wq6bQ39l/pIet9I 2020-04-20 01:59:42 91.132.144.125 9001 9030 +a [2a03:4000:37:2c4:48ab:3fff:fef7:4fe8]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36400 +p reject 1-65535 +r angeltest26test 9RqSfjRmLWAFOT8jJ8hw+w0Nf+A HzseVu+WR1iUo2yjZtwkM3YKUdo 2020-04-20 02:00:22 91.243.50.239 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=143 +p reject 1-65535 +r nodvrelay12 9R2hF0vcrf1Y6py4ft/AHda2Mu0 ceD+TL7amqcUh1WZBYRKHUcc+Bk 2020-04-20 08:35:16 45.62.235.224 9001 9000 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=660 +p reject 1-65535 +r Unnamed 9SE6ralaF8B3RRwJEQBYQH8KhfM bPCpZfsLDSpUbmManOeHOVGw4sI 2020-04-19 22:13:43 46.72.31.116 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2400 +p reject 1-65535 +r Bob 9ShjHJnA5VJbFXV9rtMsjST9kyY ao2sBe/+RAuZdc0ksDGKzI6cSbU 2020-04-20 01:22:09 129.233.217.29 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=8330 +p reject 1-65535 +r tdideditheconfig42 9SuMd6xYhVZsBuWtszpaCcXotTQ o4XoMpOpCt5GX4fkTOUx9LbgHR4 2020-04-20 12:42:34 144.76.42.143 47193 36819 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=7380 +p reject 1-65535 +r tributdotde 9TWW1/xBpjn+QQxqH5sjqD94PGo FsoOG7sqFnlGw90DppdkmZhkpqk 2020-04-20 00:54:28 5.9.121.79 20 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1100 +p reject 1-65535 +r snap277 9Tqgkc83lgRzFxKdB3ii3q6ViL8 LyupVG5V3vP2K/9RgzB2E+0gnq8 2020-04-20 09:42:05 90.2.231.10 35701 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5 +p reject 1-65535 +r smell 9TvkdsoFm2jTuuyE1AV3TFD3miU hNgDY9k32pWFHMMJMNILQxA7NEk 2020-04-20 02:03:46 51.178.191.132 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9090 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r Wildtwister 9V6GatTLALZxuKMVrTqSibbowCw ku750DsNR2MlYyB77GgG93a1TeA 2020-04-20 09:01:57 94.100.6.72 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=8770 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8232-8233,8443,8888,9418,9999-10000,11371,19294,19638,64738 +r Unnamed 9WMotrGY9WP2VmAoZRNzc89ylbo 92fVPH5jHkvnxD9RmDlX26GAKYc 2020-04-20 11:11:45 158.69.172.224 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r erdbeerkuchen 9WyzP3WoRuxl8sOFWhhevQHR3zE K2iqFs1WS02STsFYSVQJURxqE7I 2020-04-20 05:54:57 116.202.18.167 9001 9030 +a [2a01:4f8:1c17:6675:e661:3ff1:a713:3891]:9001 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5040 +p reject 1-65535 +r Hijnn 9XRvYlff6H46kHU8KgQ5kmxVVS8 d/72XEAgnNtaHXgvpzHTnmPewRU 2020-04-20 08:23:25 82.169.130.61 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4040 +p reject 1-65535 +r relay653 9YANOwDmLUk8i+5oLDRCuBL9Ul4 cu2LtRBKBbq/5uQsGLlCWuj6sNY 2020-04-20 09:15:09 178.17.170.244 443 80 +a [2a00:1dc0:caff:16f::ca35]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10700 +p accept 20-23,43,53,80-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,981,989-991,993,995,1194,1220,1293,1500,1533,1677,1723,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,19294,19638,50002,64738 +r hittibuumi 9Y230XWuMZJBHL4+qekmMuzvvIU uQ36X07j1vamVsqizzyRePFfWwM 2020-04-20 10:36:37 95.216.144.113 9001 0 +s Fast Running Stable Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=15000 +p reject 1-65535 +r EF 9ZWaHxFUgH0+Uah7zcpuCWNTV50 9UUiHqTmknWPP6i2STnIRnX7JH8 2020-04-20 06:54:23 5.2.54.152 9443 9480 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=359 +p reject 1-65535 +r T0rR3l4y 9ZowMqeuY3aH6ZQ3ym2oHTWHoOw VKF4XQtuwc+e3Kt+T6zz+mDNC5A 2020-04-20 05:58:04 213.195.105.95 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1300 +p reject 1-65535 +r bistrv1 9bWP7kRXPDv9fRdtkYultAV1Gdc nKlBcNx5fVd3qQOhidtvGgNlRtQ 2020-04-20 02:00:18 212.47.227.71 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r UniGodPowerz 9bmpiFnFv+ft7spowASiT6Kc47M TfbdEvpSBBQgcAFq0fym2F6hHoA 2020-04-20 12:34:14 94.100.28.179 9001 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1780 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ansarelay 9cLrV4uYQgad5WDwD4CLa9NVTio 70vP8l7wA1OG1hdBq6jqskTGgr0 2020-04-20 12:08:08 91.145.123.22 993 0 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=285 +p reject 1-65535 +r FalkensteinTor02 9cPadkK7A34NJ5NZrojNf8A6mKA TYdrH3Iw93Li3W86vfce03W8V2s 2020-04-20 05:20:09 5.9.43.211 443 0 +a [2a01:4f8:161:32c7::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=45000 +p reject 1-65535 +r Vleiv 9dHAtMHSifo3BIgHXGCOd2E03ZQ RhXXcofbnAHHbQHiRFZutpwvA50 2020-04-19 22:44:45 192.222.248.219 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1200 +p reject 1-65535 +r mitropoulos 9duOM/jTUbYAkyJR7+ZzV0hUBfI /q7SeuSsbybaWfqHl9tKkgHuDjc 2020-04-19 21:37:20 212.83.61.218 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=34000 +p reject 1-65535 +r NEWYORKNEWYORK 9d2pMQ5ZfN6e1HrZ7dU9QAjlPBw Yj3mFjIf/5U6ZeZV1EBKzo8N62w 2020-04-19 22:58:55 198.98.59.161 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4600 +p accept 23,43,53,79-81,88,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r trustn00ne 9eG5a/5wD/i/Cd5aAhgeu0jiGPc +fm+nBe1asx2UzH6gP4xtcZn6ds 2020-04-20 11:58:25 87.248.7.41 9003 9032 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14400 +p reject 1-65535 +r Boedi9Berlin 9fJ/JukGZ4KNA99qoD++nOpWHnY 4HdotQbdyNxf9Xzx6fwPMAvYQpY 2020-04-20 01:58:13 89.14.63.243 32588 0 +s Fast Running Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=144 +p reject 1-65535 +r brooke 9fQBlQkQmgfpDEWgIs7tnsoWQ8g numTPlHjqtzspG9kAyohtPMe3QU 2020-04-19 23:15:40 176.9.1.98 8080 4443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=91000 +p reject 1-65535 +r Unnamed 9f51aHqmeLCvsTmcScJ6yzaxqNw akxIcyM16zobYlg5PPmeUlDHE3k 2020-04-19 22:06:02 118.243.156.49 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=421 +p reject 1-65535 +r oromis 9gQTHcxDA+UduHagF6PcloT9Yms XfBA5WpF9HGNpn/ONL12kdWvdLw 2020-04-20 10:36:06 217.112.131.98 9001 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6670 +p reject 1-65535 +r Unnamed 9jsXWdirnI2PHmBiUIYIL/Op19Y NluLy7ERF3Lj81E/BkJ3BD4Nwc8 2020-04-20 02:49:47 20.46.40.75 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=696 +p reject 1-65535 +r slalix 9kHwQ9UM76B+5B6yhEZkWHiICO0 LmmCBAdWMs7/UpZItPVA7glhtdY 2020-04-20 09:18:49 51.15.105.214 8443 8080 +a [2001:bc8:4700:2500::90f]:8443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15000 +p reject 1-65535 +r Unnamed 9kjI3xGKtEjQyJr2xW/1eRCy3OQ 66RHa5VN0QE88SLT40+L21vkqXE 2020-04-19 20:17:12 52.229.156.42 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=160 +p reject 1-65535 +r tolgerius 9lDAd7uJLhz7D0BjEwLa3Idmeic KzOg5my6KwE4j0lxq+naM6HGhaM 2020-04-19 23:57:42 164.132.43.57 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16800 +p reject 1-65535 +r binaery 9lmQwjqwF6w3Im6yrT2lqOrlXQw mHDqA/maIQGpIIAe7t0ImGhN0vA 2020-04-19 16:35:25 91.204.44.129 443 80 +s Fast Running StaleDesc V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12600 +p reject 1-65535 +r Kobayashi 9mPKInt9KzyFVvfdv8ZlOgEKLE8 RsH3RwQRk9sxy4itQgdwZ7jNpb8 2020-04-19 19:26:30 107.189.10.20 9001 9030 +a [2605:6400:30:fb32::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3500 +p reject 1-65535 +r anotherRelay 9mkePrfKs8h2qqiF5oAbY9yZjDk GlwdEoAbYVhS+2UXQbVJ7fI7e44 2020-04-20 02:33:39 144.217.4.166 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11400 +p reject 1-65535 +r poiuty 9nQN6r/V9iYS+gJaUHnqcoRrH2c EAXqxY9psEtbUY0rOvIGEyLVX7Y 2020-04-20 00:52:01 176.9.45.244 443 80 +a [2a01:4f8:150:61e3::2]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=91000 +p reject 1-65535 +r Unnamed 9oVv4tDMZXQQWlXb4ahVU5WxI4M GOGobFsbOy9GL8k4PefUKoldYKc 2020-04-19 21:43:01 163.172.41.242 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22300 +p reject 1-65535 +r CalyxInstitute16 9op2Ui01b4m+woaImjgiJQVnvi4 kJ4xMOo2meplV6IjtFipZovwt0g 2020-04-20 02:14:17 185.220.103.4 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23600 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,12350,19294,19638,23456,33033,64738 +r yesieditedtheconfig 9o56BKLgN1tXu8DSeU/Nld3ryjI RQCfxkz5rWY7GJGI+9P2mU7dXrk 2020-04-19 23:38:23 176.9.154.247 9090 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5800 +p reject 1-65535 +r Infiltrator 9pDgKE16uqIjF7yHFwxnw2rpUKg oMJVDr5zsl0cD6gp3QBGSn8YtKo 2020-04-20 12:00:51 82.165.206.196 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=69 +p reject 1-65535 +r prawksi 9qNY3TZ7MoLW71gkydReGhnH6BU OjQNDee1jszTAFUXJuqiUtg77r8 2020-04-20 01:28:00 192.160.102.168 9001 80 +a [2620:132:300c:c01d::8]:9002 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12800 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r ifigenia 9s1Nv1hQrEOG3ZpCSRitPGuicW8 /QpnvVxLqyKaoVdcehsAYogBMUw 2020-04-20 11:17:58 5.9.98.43 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=55000 +p reject 1-65535 +r interfesse1 9tYAzxOzu+KpGgZT8eydAOfLOms M/QW3fdN1KdrMRN08cjnJotNY+o 2020-04-20 08:47:09 85.195.208.94 9001 9030 +a [2001:678:d08:b01::42]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26800 +p reject 1-65535 +r depwnparty 9t0A8ne3QeT0ohZTJHbYR2uY2Ww lTkhWQzKUPr5bn1L74dV2ic3QtQ 2020-04-19 23:21:49 209.182.239.70 443 0 +a [2001:470:1f0a:2bb::2]:443 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=1240 +p reject 1-65535 +r JPsi2 9uxGkzzo1PrVzNqoscWjd2hfxSE wWdmGofgv6XnGKrubTEtxGlpoio 2020-04-20 09:51:11 37.200.99.251 9001 9030 +a [2a00:1158:3::1ba]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16900 +p reject 1-65535 +r hviv124 9vWbZLJJTymJnoByvLDms+BwqRc FQ/P6WX/qsw1nlSkPZ8De/h/3BM 2020-04-20 09:40:31 192.42.116.24 443 80 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638 +r dragomir 9wJiRoI8YyKSHzq4dTfrsCCrAeU unfy2WIKWby/UFMK0BvzWHeYD/c 2020-04-20 06:54:55 45.249.90.26 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=155 +p reject 1-65535 +r Visenya 9wPUWZg4dc6c7Wr3R4ill+1mJnQ MjMoRtxhmGWoFJE11OstnmkdZvk 2020-04-20 05:00:34 45.137.155.64 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11300 +p reject 1-65535 +r wedostor 9wt8XNctdMf58tyE+p0g1RuhNhA 6GUmm+36iIXFi2ug+AO/OxeGVIE 2020-04-20 05:22:54 46.28.109.231 9001 9030 +a [2a02:2b88:2:1::4205:1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8930 +p reject 1-65535 +r borisman 9xge0I4aLlZBBcNiCvoNeKEx9OU vJwM5vfPUfHES/7jUXsY9HB1iKM 2020-04-20 10:00:27 198.84.210.103 6882 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21 +p reject 1-65535 +r Motoringo 9yOARZyUdsDi/JmjR7bZRB9oHyU Ay6D/KQHU9VOq4R6Vsjo5QPQ4Rc 2020-04-20 05:41:05 187.244.191.9 9001 0 +s Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=42 +p reject 1-65535 +r C1karin4712 9ziw2KxEo/1CcZO+uNDCG75M1vM 7/rh8R/tRsKw5q2pt4uHgWi9NUg 2020-04-20 09:59:46 83.209.9.216 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=996 +p reject 1-65535 +r rofltor06 90HlEkyxJwDalGt4ybLdF11s0qE 8PXDk3SAk5m+srrz2siXvyjltoI 2020-04-20 11:04:55 163.172.154.162 9001 9030 +a [2001:bc8:47a0:162a::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21300 +p reject 1-65535 +r tor002 90JLTH7twXhKVQVoju+tW+6nufU 8m03+RkDxCHfYdVDw+TaAiS3mQs 2020-04-20 00:35:58 18.162.153.59 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=507 +p reject 1-65535 +r Unnamed 90L8Zorj/u5HiXHcoIuetGFK5kE LEHkfIgtCCq2GJ8jZ9a2gtziJDQ 2020-04-19 23:11:09 192.95.27.143 110 143 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=57 +p reject 1-65535 +r QuintexAirVPN1 90R+metcvU1euRPuDjWsZCtcHvM 2tN/wOR/xB+cL5nArM5JmFPLJss 2020-04-20 01:07:51 199.249.230.120 443 80 +a [2620:7:6001::120]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17400 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r PisMightBeSlow 91VMjcV7rsjBHHzjtmZiMO6QTw8 h9n9yvmWIDCdHXAK+YIRRbNuB10 2020-04-20 11:52:25 98.124.111.29 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9600 +p reject 1-65535 +r TeleMishka001 915H+8rPmexGghudD/XTBzOLEbY Y5iR2f4m0HceNDzCH2jngyzarQw 2020-04-19 22:31:04 71.182.155.144 9001 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=873 +p reject 1-65535 +r snap277 95b58acjsZ5l68uuj4/yFNGDzoc ZsOnQdr1b4vQEuAMIN8TU8mjl0k 2020-04-20 08:34:45 92.90.35.50 46201 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5 +p reject 1-65535 +r ponttor 96XJa7y7Eccrb6iKt/wyztuZHEM ZNQJEIdWX9ck5W4qU6xHAjhllrQ 2020-04-20 01:19:42 134.130.181.212 9001 9030 +a [2a00:8a60:e011:e1:b870:2400:35c:4592]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24200 +p reject 1-65535 +r relay0vpsfree0cz 97Ak2wLGARhcIC4m3/0q1SXBajY DgZwH6Ny6qmqnnIykGuvEDInHZE 2020-04-19 22:49:37 37.205.8.191 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=28900 +p reject 1-65535 +r 2600cityoflondon 97pMSQ73cgDbNe5130TqxU2mXXk CyXc4x+54ywD2jf/5l5Zi7XzrMs 2020-04-19 22:42:01 85.119.82.138 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=18 +p reject 1-65535 +r snap277 98EDGsXZfVLop3x/WO8/6MkUMew 3bXPRilfhaQzzJHSoIAv2DaYPz4 2020-04-20 02:56:34 92.52.6.135 41475 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3940 +p reject 1-65535 +r peterkofodmedsko 99PviIVB3eJG029OfI6Q8kYYkQ4 k7eOSOz59T1TgjWo4aak5SqRdeQ 2020-04-20 02:14:36 5.9.61.207 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.1-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16400 +p reject 1-65535 +r LIDSOL 99r6LZH34KgcmH1l6QYrZcxN9mA 6llmNI3numGtTOoiIrC0rg4fsXI 2020-04-20 04:55:00 132.248.59.72 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2500 +p reject 1-65535 +r MGoBlueRelay 9+rMr7VL6kMa+6aU1mlS2bXuKJQ jMlaRY0CL3hxKIZin/L/o4rwgkg 2020-04-19 21:15:37 50.4.127.14 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=540 +p reject 1-65535 +r snap277 9/B9ICI2iAR80F9ZyyRpxNOLiLs ik+MOX6BvABucNvKZZnpSKvPX0Y 2020-04-19 22:07:46 86.137.230.210 33024 0 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1930 +p reject 1-65535 +r TARS +A/eJ+/LP2p7TizFFxM9v/p4ui0 vYnS9Pex61b27K/bP5NDbA8ce4o 2020-04-20 08:41:32 213.183.48.84 9001 9030 +a [2a06:f900:1:100::53a]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5020 +p reject 1-65535 +r robcook +BXSpyDJf24bykyaNsZMrU3C+uo mmIXV+TawgipwvYz9PcSfVgj+Is 2020-04-19 20:25:38 139.59.8.134 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=739 +p reject 1-65535 +r Unnamed +BljwK6QiC8SRTzqV7JuZRv0OxA 73wZ2b8rYEMExbbPUAJ91rOl+/4 2020-04-20 10:36:21 104.210.157.234 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2940 +p reject 1-65535 +r IPXORELAYFR01 +B9j/fa1ZtY9OhES/J0+odOihdE fHXC5sGdR6dwtl0rBmgscXprRDM 2020-04-19 22:12:38 185.10.16.108 9001 9030 +a [2a07:8dc0:18:0:e7:e3ff:fe73:8a02]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2180 +p reject 1-65535 +r informationalley +Dpk4PqFvCJIB5GXcv4U4boHzvU Zo7kK2s7MyWGCSbAsL/rX8QajEo 2020-04-20 00:01:00 178.63.85.14 9001 0 +a [2a01:4f8:121:3431:4c84:c8a5:4c2d:c9bb]:9001 +s Fast Running Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=44400 +p reject 1-65535 +r Gateway0x91 +EO3vj3bRKqSjkxKzkhJ60rm7vI zmRMqwqoL9FT9tJWnj3OrpAm3y4 2020-04-20 12:32:15 77.255.156.222 2020 2021 +s Running V2Dir Valid +v Tor 0.4.3.3-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=86 +p reject 1-65535 +r S4C4D +Fq7WVhnH1A1+5E6SmX5EMCZPM8 0L45cLt9SUDGgB+c/0BG61q7pBE 2020-04-20 10:36:02 176.114.248.176 9001 0 +s Fast Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4330 +p reject 1-65535 +r BIGBEAR +GMnW21EXi5Tjg4vTE/qSHjistE RBwbUGjjfEaGvy3TZDD6gXY+TGA 2020-04-20 05:08:31 78.94.185.115 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=626 +p reject 1-65535 +r torushopyard +GS962bIoR4glFaEZJnC+ZVDV5c 2Dk/jWRbSaIMOxrvupArbjxezgQ 2020-04-20 03:57:04 73.241.193.203 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=75 +p reject 1-65535 +r default +GrGVXqhSRGCYn18s4Vc1i0T8mc DFX1/Xx2wWe+so6WMG1esDYGCuA 2020-04-20 10:31:10 114.174.0.5 443 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=303 +p reject 1-65535 +r Unnamed +HjjrVlPATGVoFHNEHK/M9VDojU P3wBQBckzxA7BUEotKrRWsnMi0o 2020-04-20 12:36:56 51.75.162.173 1999 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=15900 +p reject 1-65535 +r Chrysophylax +IM9F1ZCwXxQuFmppVfaRSlYi3o 6s7qz5DHA1erwhKwi83qP3XY+f0 2020-04-20 09:53:20 47.14.68.1 9001 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=140 +p reject 1-65535 +r bwanzie +IchsNGENhrSSxTP1WgygkoOefI Lz7d2J6ImmewqIbsOrKMsdMOVpc 2020-04-20 09:17:59 68.183.163.215 9001 9030 +a [2604:a880:2:d0::23c6:2001]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=680 +p reject 1-65535 +r Unnamed +JV9YeKaYmQAApoDpjSEAOdQJgQ BJ7SqMo6bfYlWD15QCZ/aeQW264 2020-04-20 05:54:41 108.161.139.183 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=560 +p reject 1-65535 +r grahamstaines +J/mAEu7wkvBd+FSuny/3isUVGk JRZHLSAwF9me6+RiD7mGTDL4mFE 2020-04-20 00:33:04 139.59.15.218 9001 0 +s Fast Running Stable Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=679 +p reject 1-65535 +r angeltest17 +KqNjMugxfKDbeYxXN+m5KMaCJA 4ZDSIV1mQ4kIaS7zqHSQ9pywSFo 2020-04-20 03:23:47 5.34.183.29 443 9030 +a [2a02:27a8:0:a::197]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12900 +p reject 1-65535 +r niftyguard42 +K6iglYp5Dg1mf0qS9V0DNEyLLw q1JPUjd9D13sgIgY5kt/NJ00iLE 2020-04-19 22:15:49 185.220.101.161 1161 2161 +a [2a0b:f4c2:1::161]:1161 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18600 +p reject 25 +r TheBlackRelay +LEzsoWnjn+vilTyfBU8jGCSB+I /CYGfE6JiFQdrHdZdM+pNHuyGEY 2020-04-20 06:11:50 79.52.242.65 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=62 +p reject 1-65535 +r nopeoutofhere +Md8FcFOBodDl6DVCNLS9Eew+jE 4aaGBOBveP1L0m85hNiCmxb/lOg 2020-04-19 23:33:57 95.164.49.150 443 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2390 +p reject 1-65535 +r firlefanz +M0HNgKFPrepBGle5+gnDjD0xHs JFR2GHnYQnIdodvASXNDzcXoLao 2020-04-20 12:24:08 62.46.205.208 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27 +p reject 1-65535 +r fluxe3 +NJ7FjuSR7Iyou7mjdi2mGlcKN4 1ocSU9TZLJJFnf+DN4EpKBnMlvo 2020-04-19 23:51:21 78.47.18.110 80 443 +a [2a01:4f8:120:4023::110]:80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23900 +p reject 1-65535 +r d3435c6c49af +NqmLBErKsfzzvAg9EeR60P0t58 TbUaZ824+9UBGSCrX25ZhMrDdPo 2020-04-20 07:15:59 51.81.254.28 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11500 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r flo +N6BMuWZoZTiDdtzivZKcgDNWUk 7dsWQ8EjEc/5dwoiZd3KitdO2gQ 2020-04-19 23:16:45 144.76.196.92 9001 9090 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=120000 +p reject 1-65535 +r k0nslNET2020 +ObkAwtugvOxUcO49cO6Men9QtI aclhtIV5Wl2olLIBMpyIxIlSK24 2020-04-19 19:06:12 192.227.215.192 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14300 +p accept 1-65535 +r niftyleithia +OnAw6S2HnWZqnoj163nflurJmM mf4w9LqWL9gJYmLxB4thbTX06ds 2020-04-19 20:26:30 185.220.101.8 10008 20008 +a [2a0b:f4c2::8]:10008 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=37200 +p reject 22,25 +r JustForFun +PIbGSWS4Nn5cSPI94T30JGNdmE B+ARGWzM8lUlGfeVyOq5RwQf2H4 2020-04-19 23:31:52 94.21.138.134 9001 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13000 +p reject 1-65535 +r Unnamed +RLAow3Jy9TnulZsI12hlMRiPsA VRtSeZ7JnpISIZEJJy/SvNFG0B4 2020-04-20 05:03:28 106.104.37.220 443 80 +s BadExit Exit Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=65 +p accept 53,80,110,143,220,443,993,995,3128,5228,8332-8333,19294,50002 +r Feidhlim +RkxwlNDwbBzZBtcRtK92/4EufE SRNa7kiT5vAqNrS9v8iq8+E4NO4 2020-04-20 10:24:24 188.192.138.7 9029 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2700 +p reject 1-65535 +r avarnerdotorg +Rmgy0kNoSu4w0wnP9dl+jLGnlU 9FjYsCuNfBn5Obx1dBTHJtUJsx8 2020-04-19 19:15:35 23.235.6.100 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=89 +p reject 1-65535 +r Freebird31 +SRt7ytlOAcjbaE08q6rED1Yq/4 gpYkZrD2WRq8RRrcGSSHc3zT5PM 2020-04-20 04:45:37 91.143.88.62 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14700 +p reject 1-65535 +r TorRelayHemdal +SgZ+bdL30OPqdouAWPDobRLDOo sfsfMHuGXT/MtiiaaqqUpaxHLcQ 2020-04-19 21:52:27 95.80.10.222 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=780 +p reject 1-65535 +r mountie +TVjP5B1BsMyfJzuK385pUuIw3U ETySmMPSlUVR6FFNvnt3+4E++bo 2020-04-20 04:16:21 91.233.116.119 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11900 +p reject 1-65535 +r default +TXaVC8mJ1GPCZNNa/C9rNcMgpo +SvsG3ePQV0LhaJ3YR366DB9oXc 2020-04-20 06:39:57 77.37.140.23 8443 8448 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3410 +p reject 1-65535 +r qwertyforceru +TnZGmQFpCE+z0aMlws0fJLNuAk gUrmp/g00pCDo2qgIivmVTqPyS4 2020-04-20 04:47:56 185.128.214.125 443 0 +s Fast Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=998 +p reject 1-65535 +r TykRelay06 +T2PN+NcOQvK2fkGnhMIW3RewhY uC4cXnYzFAsJz30A2U7cQvWAAoE 2020-04-20 10:09:17 185.96.180.29 443 80 +a [2a00:4820::185:96:180:29]:443 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21500 +p reject 1-65535 +r Torroncino +ULuc/G445El9hf6hegOTJ5UCi4 2qrURFZ0DTA/P0BzsznhzJHQiys 2020-04-19 19:45:10 151.52.223.45 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4510 +p reject 1-65535 +r kramse3 +Up7rF0ePZNyQ3FB4QaVpiW4tTM N9fX1s/IeaLGdTFM1K8q10zNmo0 2020-04-20 06:08:26 185.129.60.131 9001 9030 +a [2a06:d380:0:3065::131]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=55200 +p reject 1-65535 +r resistberlin +U4tSPLg+DkgyJPk8Z+FJRE1CvU bc5+/tv6HBmyaxxdWXjESdsFJJg 2020-04-19 22:25:59 46.89.209.94 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2070 +p reject 1-65535 +r Anonymous +VZYipnzIyJ89RwVrvU59u8PQpI PsheId6tqUG4Th6txC5MR3SpSSk 2020-04-20 12:36:40 212.51.158.110 9876 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=16700 +p reject 1-65535 +r sanchez +VnL3jQD7UeDVfYoG5bUdmhPQWw +25anZw7Jx2R8TpALbToKklk2UE 2020-04-19 22:15:25 88.208.121.78 9999 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=249 +p reject 1-65535 +r namedrelay +WbMYlIqT5xILLVV1DJJqYdEE9g wzExocTP9Y4UGgOqNpNVCuEqEYs 2020-04-20 07:21:52 167.86.110.254 443 80 +a [2a02:c207:2035:4794::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=19400 +p reject 1-65535 +r Aloha +WdPRaJcqpd+e4coB+CgcMEh9fo qSks7EfOVojv2EYW0Dqtuo58DP8 2020-04-20 10:25:15 95.211.136.23 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=59000 +p reject 1-65535 +r TzBakery +XhrgCEqP0/6+KJf2im/MbuHbuE 75ILGgvbPspMPp2WVQvxUN44BK0 2020-04-19 23:04:41 45.32.194.229 9001 9030 +a [2001:19f0:6401:e16:5400:2ff:fe9a:3bc]:9001 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=35 +p reject 1-65535 +r torlux +XlxSCQN6sRt6+VRMdUZH5JjSRI H3mLyBNY+JCJbJSNjP+inGVrnCI 2020-04-20 01:10:54 210.54.32.93 9001 9030 +s Running V2Dir Valid +v Tor 0.4.1.9 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=53 +p reject 1-65535 +r sbyfuc +XqTGvztAXso9JFZGl7ebBc3bLA KSPmTizHlMEiPfbVbuhlgNQgxf0 2020-04-20 05:26:51 172.96.228.119 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1800 +p reject 1-65535 +r byrnes +YPSN5sQ5tUyXuVjBuWSLS+5gsk fovVMQyCRHaFjEua4OHx0XSgKv0 2020-04-20 04:02:00 49.50.66.209 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=192 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r MarinAsagi +Ypw5UJ7/xEWQAEfeuMeU37PHdI Mzjp8gieWOjXjQQd5CZEk5LQaYY 2020-04-20 04:58:04 23.239.113.101 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=880 +p reject 1-65535 +r torproxy01 +YzkADF5XTcENlAZ6p+KxWrimUs dHDFjxmJyDklsc4tHsvF5ngtcMM 2020-04-19 22:08:47 51.15.80.14 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=54000 +p accept 20-21,43,53,80,443,873,989-992,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r recodex +ZEM4qPp1Gf83Z1SKGlboYJ7AQ0 ExHt0V+eG/VTO26kgmDPON799Xw 2020-04-20 12:31:52 138.201.132.34 993 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12400 +p reject 1-65535 +r persephone +ZFPvtUMmjx6LyIvwWRjKGfASYs BvyULmfKbLwalRuMEets+nySdkc 2020-04-19 20:08:39 73.201.16.196 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 FlowCtrl=1 +w Bandwidth=92 +p reject 1-65535 +r traclus +ZcgEsUrYJzUQAjCwCae9yX9Cus wai9vZAS7B1k0BILQB7Ns7hwJXU 2020-04-20 09:15:16 178.17.170.252 443 80 +a [2a00:1dc0:caff:171::5674]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9200 +p accept 20-23,43,53,80-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,853,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 +ZrCZvJ7TeeYrTXgUH6SzCstN8w PwOXdFLGE41AnYFdvAKPkWivnCU 2020-04-20 01:53:54 5.58.172.86 44647 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5000 +p reject 1-65535 +r darkharder +ZwBViJZuoyg5CuoUPE86Hpb04I joWtMwpxbrwZZH1q2SrM8Q7yjQM 2020-04-19 22:01:36 209.126.0.246 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1110 +p reject 1-65535 +r cxxnode2 +aNULVhjzWZbf/dY5z2tQIMtAGQ 5Ln6lOH0K4XLvuhOn7x4tgRvzlU 2020-04-20 04:17:45 217.79.190.25 9090 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=46700 +p reject 1-65535 +r snap277 +bmcgeR4UPzzz+2vaXRedqp13Ew hHluEVa0L2IRUq4ExClpCyNYT8c 2020-04-20 03:20:57 175.38.44.78 34475 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=14 +p reject 1-65535 +r noeditconfig2 +dlC1qMgd3lAoFHIpLPvPA8orTg PMXEs5/qO5zSLdZYTLDoffmtOsI 2020-04-19 22:09:39 149.56.157.119 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3300 +p reject 1-65535 +r Hydra +eCyXk/0Qwc1oFm2IZEijRyAtgY V9jE20DEqobgaXwa2cOZCKKQyrQ 2020-04-20 01:22:20 89.244.164.133 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4350 +p reject 1-65535 +r KagamineLenTwilight +eMtQFj3816bxPHYw7LaoMRGZmA jO8OufdgQo8BAwGEoRT8s2XU6/0 2020-04-19 21:00:05 51.158.148.230 993 0 +a [2001:bc8:2dd2:2000::1]:993 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=26500 +p reject 1-65535 +r Unnamed +el6rHrLa0jKF/pVVU/WyxZR7TM pJC69dCCMd79va4Qs8AmdSbX3CY 2020-04-20 06:37:39 51.79.53.145 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9960 +p reject 25 +r 2fast4you2 +gFyZq0QK/+QJNwpCeLwu2/Ms/8 5M68S93qynY6qrjjOcfcpd6wFoA 2020-04-19 23:46:02 178.254.1.90 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=22700 +p reject 1-65535 +r arbitraryKenzie2 +hhFwxO4jvSei+HyOwLNCscCtjY cNLirLwfx+qSK/kvInyss1Z3FZk 2020-04-20 03:21:31 95.216.14.206 443 80 +a [2a01:4f9:2a:f21::3]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.4-rc +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50300 +p reject 1-65535 +r vader +hoGdc9XfxPCe82chlDsM63iPPM jWMSO/8SAPBw0NpGqeEc+6jR4rs 2020-04-20 10:30:27 210.3.102.165 443 80 +s Fast Running V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=149 +p reject 1-65535 +r angryrocket +iDdYy3D+ll96KLhXvZ37zHAHuI qOAT41ee+JMuDK+epko3+ncwksE 2020-04-20 10:39:32 104.131.245.55 9001 0 +s Fast Running Stable Valid +v Tor 0.2.9.10 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=238 +p reject 1-65535 +r tor98072 +ik9khqpZNRsXH0SGUjaPhqgf2c u9qPPsrNgh8BHR6C1o7tgUGq/FI 2020-04-19 21:02:33 50.47.140.16 9081 9080 +a [2001:470:e920:1:ba27:ebff:fe9a:511c]:9081 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1040 +p reject 1-65535 +r Unnamed +ilL1Y+7GBM1ZHNKpVLPaBWd4f8 8TyULOO5ueNneGeBJvF1NFv0kSM 2020-04-19 20:04:21 5.79.109.48 9001 9030 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2600 +p accept 1-65535 +r k8r +jKZivVihIPY57e7CkZB0zogaig 2qcmWPOhehw0YwJNpX8DAaHUxLE 2020-04-20 02:42:31 51.75.75.18 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=14000 +p reject 1-65535 +r SleepJeep +jqVzWlst4ByqxJ7isFJfbxDxA0 CtQ20x8lw2bICillcSEUyBh4SCU 2020-04-19 19:47:48 31.220.2.133 9001 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=44800 +p accept 43,53,79-81,88,194,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-992,994,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r athoxx +lZH3pdFuiOcnzTiYlEsmWBUcsk BO2kUCGRoZN0MYepgXUrqtgUroU 2020-04-20 03:38:17 92.35.34.189 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5880 +p reject 1-65535 +r torpasta +loIILTQaPN6ZbgMkxVARVO1oFM yCgNidB6g1A2GJDor6tD1OFQJ4Q 2020-04-19 18:59:59 24.94.7.147 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=12 +p reject 1-65535 +r metaverse01 +l8as0aPgIsvsF8hVcBIGjUyx4c erdi3mScUOSTX06ZaBCZ4mWuyUs 2020-04-20 10:33:09 185.97.32.34 9001 9030 +a [2a00:66c0:1:1::34]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10000 +p reject 1-65535 +r KyleDewbrow +mn3xRBn2ahBaJYsRqykgKkM01Q RD/bRmlY8GmKtoFk3f84Q6lorPE 2020-04-20 06:06:40 202.165.228.225 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=550 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r snap277 +n/7Wuvuvo45s6l8fhOGVclndGg /X/+3MgTGtioTQCMe2BtshNVKBA 2020-04-20 06:29:15 91.154.115.191 39971 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=290 +p reject 1-65535 +r Elfenficker +oJBAcXD0yxQksk5276gU/8QvYw pyDfYgxyL00R94VlJSfyZb4Prz4 2020-04-20 00:15:52 217.250.223.209 443 80 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2960 +p reject 1-65535 +r Unnamed +oxzO6vXqU+repCttSVv/2NiYgM RFOiyDX3h4F41GHtUWeXwMxFTsM 2020-04-20 10:47:47 194.182.71.232 443 0 +s Running Stable Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=83 +p reject 1-65535 +r DonCoyote +pJQH4dfoDGdFkBjtw83w6tufOc A1mB65q42eqCFpMeGpd8fMtv3n8 2020-04-20 07:33:50 107.5.24.181 9090 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1900 +p reject 1-65535 +r DETor02 +qk1sLw7Q0jMvT66lWgatRcwl30 7XFN7pwb6bneoShC0O2oC85rPIY 2020-04-20 06:38:37 89.163.225.7 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21200 +p reject 1-65535 +r fiedlerRelay17 +rpjlMeQ6WgS0zaJ+ukHlvunmqg +ULEIHx8dGCf99bUPHmjJ1Kyx2A 2020-04-20 11:06:48 37.221.198.114 9001 0 +a [2a03:4000:9:533::2]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2550 +p reject 1-65535 +r mycelium +rta6klT+d7LmRmhkRbAPhgO8Kk DYCW2M5UX2ftV+ahb+kBPN7UoAQ 2020-04-19 21:33:00 18.223.132.180 9001 0 +s Running Stable Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12 +p reject 1-65535 +r AIgeneratedPostcard +scODitB/12xhnCNE8BphczBFuM cvcnYRL4TwdhD/YtcjW315oMD/c 2020-04-20 01:59:49 24.134.92.137 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=259 +p reject 1-65535 +r nonanet08 +srp3RkxWJjhth+ps/eGsDBAvnU gvIgkvSvAmGB1/a+mCi9Ql6JjCM 2020-04-19 21:24:31 198.251.83.193 443 80 +a [2605:6400:10:7b4::1]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7230 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r GiftedRosebud +syeskL0/aC9ZQjMuG2rzp6EZ38 C0Fgu3bEBqEpsxd+7YDN+iCGieY 2020-04-19 21:57:34 94.100.6.71 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4410 +p reject 1-65535 +r Gargoyles +uGfZPTDtTUdldF5TNxqatDIy4M /Laf9GVIaTVyus9uWS9YgHPl368 2020-04-20 08:15:00 94.155.49.47 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12000 +p reject 1-65535 +r jonsiii +uYXqBoDYXHdjiJajRVY+aVzeI4 315PyL8fczLzEj0aMrFv80AhjZg 2020-04-20 09:55:50 176.20.196.224 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 +p reject 1-65535 +r niftytreerat +uyGqaNxUvA3HWeRero5hGffvZw M0Dl3w4AWWEwSxDu8ofNkv60yLA 2020-04-19 20:27:16 185.220.101.27 10027 20027 +a [2a0b:f4c2::27]:10027 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=55900 +p reject 22,25 +r dfretlink +vBU3w5kMuVvJi0c2TN674k1Alw 0Xgdy+FFpkEyrHMT9X/TjHY1alI 2020-04-20 11:19:07 5.2.73.239 36701 0 +s Running Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 Unmeasured=1 +p reject 1-65535 +r MyCoolNick +vCbNeubiQxEw2OSEAxSt/IybdQ 3/g3ESmxh9FRNdrXUMtiSx3SjXs 2020-04-20 06:33:22 5.2.77.146 9001 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p accept 80,443 +r tor4thepeople2 +vMjbTewsY2EOMRjF5QPZC4paSQ yhdNHSDG45bXOvXZB7Bask3uFS4 2020-04-20 02:06:19 51.15.235.211 9101 9030 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=38000 +p accept 53,79-81,194,220,389,443,531,873,989-995,1723,2086-2087,4321,5222-5223,5228,6660-6669,6679,6697,8008,8332-8333,8443,8888,11371 +r LittleBits +wFuFrjNeg5T3u8x7YdU5Pa46Dc PLs1CefaObojhGGKlurl0mG1dLA 2020-04-20 04:27:06 136.243.82.188 8443 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=80000 +p reject 1-65535 +r CLOCKMASTER +zcgQ531JLc1RMtB3+2ICiEC+Kc qGFFCy0jHV87NkXhTApX0lCJy2U 2020-04-19 23:02:07 79.134.235.93 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3470 +p reject 1-65535 +r PankyBG1 +0UxgX23MWiwQQrUv+qv4gbxp2M D08nixpLnMEoN2RqVXePuHCsdWE 2020-04-20 05:34:07 213.183.63.36 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4100 +p reject 1-65535 +r awesomerelay +0niDSdF2lfQb+/DiXrpp36/Gcs Tl0Y/zFaQ+GCwhPu79hb/U3nHk4 2020-04-20 03:40:33 84.113.242.30 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47 +p reject 1-65535 +r jeepingben +0sLCmMlraKqOFLSi2gNMlns5E8 4cvhkInwkqgyKzI5JxVvPtEqjrU 2020-04-19 23:48:52 207.5.141.34 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r rortor5 +0vIoXrQFpY6o065gGD0dduy3Z0 oNM3Gu95xeS7K7W9b8+fC+roMQU 2020-04-20 12:32:07 109.74.203.71 9001 9030 +a [2a01:7e00::f03c:91ff:fea3:18d5]:9001 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5340 +p reject 1-65535 +r partyplanet +1LHPItyir3gFNsw3FPRYKceVwg w5L/AVb7XyyOXI0b4V3B2MoEkIM 2020-04-20 10:46:08 78.82.180.2 9001 0 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3730 +p reject 1-65535 +r jjc +2RtkV3X4VMXZKQqsUlBbn4O9Ck Bt3CVS1mwaUGboGmotAKr4wlkvk 2020-04-19 21:52:44 185.198.56.175 9035 9040 +s Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=35 +p reject 1-65535 +r idVDSTorNet +2cMBJ/9rg3XJdbi4OTiYn2y40I FleLYPHAlV352UBPH9JxynaovGs 2020-04-20 07:44:20 109.74.143.42 9009 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=13000 +p reject 1-65535 +r tron99Relay +2kdbj/uNcaXnucq8DpT3YYbTLs UR4OYl1Y3CATAN3Wbh08K86Zq3o 2020-04-20 00:26:41 91.121.52.156 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45700 +p reject 1-65535 +r Unnamed +3TGlBlLJNY/Q1ew/aLtoeV/NIs un9UM9VuhCj13Z5QBIXl1dS2358 2020-04-19 19:25:07 43.251.180.14 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=115 +p reject 1-65535 +r cghislaiA +4BksfiIubR9pZIdXuuSBkfncyY NeaRF94iORMLdlENGnBzp5xkTfU 2020-04-20 07:47:01 91.121.79.188 9001 9030 +a [2001:41d0:1:84bc::1]:9001 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=215 +p reject 1-65535 +r VSIFcopernicus +4VaTjYtnahmGkLTJKtaBtAuOTU NM1IrWkPfyUYSLvzfDzRQHcyxEk 2020-04-20 06:01:51 104.218.63.72 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=4360 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,636,706,749,873,902-904,981,989-993,995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3690,4321,4643,5050,5190,5222-5223,5228,8008,8074,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,10000,11371,19294,19638,50002,64738 +r niftyguard43 +4eWA2Bpu0eH1jn5JoHswv166yI NeicaHitoBwY35CxOflSqnJSPrU 2020-04-19 22:16:11 185.220.101.162 1162 2162 +a [2a0b:f4c2:1::162]:1162 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=27600 +p reject 25 +r vienttorrelay +5et748LhIh4GZN51zOfC+1zmQc 8WlSJZbZG54JehCvbdsoUnxGjb0 2020-04-20 12:47:28 209.182.217.18 9001 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26 +p reject 1-65535 +r smell +7Otv7zpv3ypzDoE08MM05IXYo4 3ZtfXb3wwQCKB13rN9a5Gt5HJnU 2020-04-19 22:24:04 45.9.148.215 443 0 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2140 +p accept 20-21,43,53,79-81,88,110,143,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999,11371,19294,19638,50002,64738 +r theyellowsubmarine +7w71YtHH2In3A8FJlxqN8dwkF8 Nokbpr+JijVwPwnradcEW80HHaU 2020-04-20 10:34:45 45.56.103.80 443 80 +s BadExit Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=3900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r zwewwlLV2 +7zjLhQr57WmQENFNXVsFkS6Kd8 wwCidmd7nO9U4DIxVCtx6BnKxUA 2020-04-20 12:20:45 195.123.209.7 9002 9031 +a [2a02:27ac::19]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6890 +p reject 1-65535 +r BraveGiza +8KFakhwXz7RflBPj8iexkM+0l0 UbVL3YOIMxJjN/pblJNBoFHMRtw 2020-04-20 04:34:06 65.49.20.11 443 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7000 +p reject 1-65535 +r snap277 +8txh0GfQvMfS9FYRMRyWJ0uNbQ o3XBSA0nETgM6QresqYWzrREExI 2020-04-20 07:23:49 82.64.135.204 42831 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=5790 +p reject 1-65535 +r PPSStudios +81dhCjDQrAtlBVvUjWLArPy5Rk mYsqjp53yo/BvklTHKoE3TxvMxI 2020-04-19 19:45:51 73.181.67.80 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=679 +p reject 1-65535 +r HeliosReaper +9IDh/ZNZ+1TrFvS4DAtRLLaNgw 26PMUXQC6dpkZb9rQOu5Q0HCJK8 2020-04-20 11:18:20 192.99.57.111 9001 9030 +a [2607:5300:201:3100::13b1]:9001 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=12100 +p reject 1-65535 +r Unnamed ++BBhvSdsrHt7zzgbbFvKWkK/Wk /+lKAHZBXG6l/0AngFKMzjNHFSw 2020-04-20 10:51:00 84.39.241.66 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4110 +p reject 1-65535 +r NochnoiDozor ++Va+726BGVD+FEXg3YN9B27IG4 SsnfqoR7sjYQR9hWhvD97RlCe44 2020-04-20 08:09:47 79.243.98.163 9443 9080 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=338 +p reject 1-65535 +r SEKI /ABAZqmPZeyIi86X2GjH3slArn8 IjCLseNtDcORkctpBQEei7ZpfBI 2020-04-20 03:04:25 103.216.223.11 2902 2901 +s Running V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=6 +p reject 1-65535 +r snap278 /ASfNJAuLMZr60oDp4Pw+JF+l5g 3szGk9UcNNEveEEvHjnLz1E+Lkk 2020-04-20 08:03:09 109.236.216.147 45369 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=617 +p reject 1-65535 +r justhelpingout2 /AWxz1mCYQfIGiiTlJMXZBAm1UQ 0cketAEBoesN8VgTkJ5XS2SilaA 2020-04-20 00:41:40 5.9.137.167 9010 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15000 +p reject 1-65535 +r artikel5ev9 /Ad8JbjbsxMtOX198DySv8FMnXY wxSmHJ7Ui0sfe0EUabKGBPnelQY 2020-04-19 20:39:22 94.16.121.91 443 9030 +a [2a03:4000:21:8a8:dead:beef:ca1f:1337]:443 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36000 +p accept 43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r tetsuo /A3mkLHfOhNwBiMpTW2yw/exAvY UYUG+hm1FM8LNZelsnHFR18LEGE 2020-04-20 11:07:00 185.185.196.153 443 80 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=98 +p reject 1-65535 +r VSIFskylab2 /CHCMZdSJQhGUXPDCxEmCZ+4qOw zpJsE5GcFgrdzj/urch+UTkeHGM 2020-04-20 01:24:12 45.76.197.130 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.1.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2000 +p reject 1-65535 +r WaddennnuunTOR3 /CMuyMNNKP1PxvoAEfh2zhksVUQ uWXoCBzr0k9+8kQomkKF9+modiA 2020-04-19 19:14:00 84.178.228.67 9003 9032 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=229 +p reject 1-65535 +r niftywabbit11 /COvc154KINGiKyOOsomYZFklcY 2HODiHJZI4QDxKtDFJVBpP0gOEY 2020-04-20 10:53:11 185.220.101.244 10244 20244 +a [2a0b:f4c2:2::244]:10244 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=28600 +p reject 25 +r Bilbon /Ce2Z87fME41W3U8E8axEwoaFlw mSo9Uxeaag0XpHQW7rjE8t8ae6M 2020-04-19 21:39:30 163.172.43.81 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3900 +p reject 1-65535 +r N0nam3 /DD1Zue1DZxu1ruG2kv0sHrVLeU 6X0xo/kH4RHDgN5w3T90xEW/E2I 2020-04-20 09:05:26 91.169.179.105 16382 16383 +s Fast Running V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=24100 +p reject 1-65535 +r DxForxDragon /DNvG1tDqYXec3gFGl3kShk5tuQ esV7nEuBvV1UmdS535ez47wfrOM 2020-04-20 00:02:22 47.41.175.138 443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=323 +p reject 1-65535 +r syzzzzurp /DQiKS8L2vRwaMdQwXk3EPUBmwc eB0qGUK2ttbLcUM1LiD5HVgCUWs 2020-04-20 07:58:49 85.17.88.174 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.0.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=1 +w Bandwidth=60400 +p reject 1-65535 +r kingsvillagetor /EO7IkIg2JEbrv1MLbSzYJJWdSA RMhuFSOMznRKc7rLJhPMzKDcHWI 2020-04-20 09:14:47 78.34.125.54 9001 9030 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=182 +p reject 1-65535 +r snap278 /E97OpTvcXNpQ77e3hvro3rgiaw vIQxibhYaN7eEizpxYNx/h8pPeU 2020-04-20 04:51:19 90.75.201.152 42625 0 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1970 +p reject 1-65535 +r GhostNetKennel /FtPkNGpu2tYhcprT07EfReDlS0 PZn6gWczqduM1kCw6275zqeJjWs 2020-04-20 10:11:37 85.91.227.113 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1330 +p reject 1-65535 +r lon /GJ9IdWvszwUb3dHSswzzxGaYPs 6Wlz2R0bCL7a9y1ypk/1wlwZJDQ 2020-04-20 03:17:00 160.119.253.114 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=682 +p reject 1-65535 +r Unnamed /GwPQyWh+rmmYqzu9BN8RuUHdo4 QDuc5MTyddlCLNBc+whO7ZGSO04 2020-04-19 20:22:49 163.43.193.192 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.1.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=450 +p reject 1-65535 +r undervillian /Hc9iHhc80zwAouhPFy9MsqyeuI iTDh+tNJn6vnJDJucoFlZfLi4eM 2020-04-19 23:01:01 23.129.64.192 443 80 +s Exit Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7500 +p accept 1-65535 +r ididnttheconfig /HnGZV+lJ3P/s2fSv3xQ2PE2HHE 5eLWW7UzcFkGE1Rz4W5KCifRIL8 2020-04-20 10:23:01 107.223.199.120 993 0 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=140 +p reject 1-65535 +r Sulaco /KNSCUTJ1mLmRh7eDop+kj7zYl0 1Zlot90ocFUImWEmoWP6gCIQHZM 2020-04-20 03:15:03 92.117.160.179 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1990 +p reject 1-65535 +r ktj8rmhy53b16bwqg /MOS/CClwcW16Vq24kc15JPjrrc GGxJXj+dtxpMoNI//agQPGysVxQ 2020-04-19 22:04:41 85.131.16.29 9050 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=910 +p reject 1-65535 +r fairtorrelay /MZVH/4CUgElJC8wx4EfzT2nJE4 6btgpUHe6xDT18Lpn5nf98ttTQQ 2020-04-19 21:12:49 83.166.154.244 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=9090 +p reject 1-65535 +r ChelseaManning /McNP1AMLqYgBBN7ATcgGpOitX4 8NWmLWPrvhrwRw3hybSvV20AF0E 2020-04-20 09:07:59 104.219.250.148 26918 7613 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5100 +p reject 1-65535 +r shrimpmaster /Mzs3EQnPGf7N0IAE4Rk843fOaw eE+F5iCnPlntddvQkKzxIOX+JBI 2020-04-20 07:42:15 145.239.76.95 6969 7734 +a [2001:41d0:302:2200::390e]:6969 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=724 +p reject 1-65535 +r Unnamed /NCKMaGAT0+OT+07BXjGXnUw9nQ 46+pdORPEFTmsxQ+1dZRqSnnbwU 2020-04-20 09:14:17 185.246.128.164 36780 64582 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=333 +p reject 1-65535 +r niftyguard37 /N4dko/5x4sNDh3o7h8XuWzahKA GozkzNedc2HLcVNuxwC4uZMCEEo 2020-04-20 12:45:42 185.220.101.247 1247 2247 +a [2a0b:f4c2:2::247]:1247 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9160 +p reject 1-65535 +r MyCoolNick /PYcJQk7szuqID2O5+ZUZtQuz5g lMlOXXM8rVDDSbpWV5277AeNHDQ 2020-04-19 19:36:42 51.15.91.78 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=8610 +p reject 1-65535 +r cebolin06fr1a /Pp8XRoamizdUHu+4C89Z+f/OlY ZaStLkqkabJRI4ZfvjJtjPnsxHM 2020-04-20 01:22:12 212.47.246.179 9001 9030 +a [2001:bc8:600:1b1c::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19600 +p reject 1-65535 +r SummerTIMEBlues /RlSsi71PUkeDX487LhcPO9jyrs hye7FRQ8zT0r5CvimdEOZNzQ0Wc 2020-04-20 10:26:37 178.201.218.104 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=334 +p reject 1-65535 +r nova /S+biBrGQBAMQo30fcmoY9wvJTY zI4lkfa73jPTcYeWL6LnTRKkwec 2020-04-20 07:01:10 37.187.17.67 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=5100 +p reject 1-65535 +r lw /USRJ9MNj10SRlPZ73Nu30oStNw VZuQkDosaFJTPWNFZcmamAwX/xo 2020-04-19 21:16:09 80.100.15.186 43261 43262 +a [2001:985:d640:1::bff]:43261 +s Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=45400 +p reject 1-65535 +r niftyentry96 /UgaUl2Gv4X/YW3EfIPN+IbTVN8 mw1ygizULS/G0rH4RkHe98QEtiw 2020-04-19 21:06:26 185.220.101.236 10096 20096 +a [2a0b:f4c2:2::236]:10096 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=13000 +p reject 1-65535 +r Unnamed /VNX6qJI4PToVTa+V5bhTbOMrV8 k5gN/5G3cqx7RVc3o9rClhZW7fI 2020-04-19 19:17:22 54.39.49.8 8061 11164 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.17 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=760 +p reject 1-65535 +r schlandtor01 /XCdvzr13eKBK85aXKL7tzPe9SA RMKn0uo+gvAJuosx5a3AqYCY+40 2020-04-20 11:51:42 5.146.153.62 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=842 +p reject 1-65535 +r dezember /Xm3+SMIWLSOdfOJZhhAxwJREHg U7sDB7hFLth/X7AlQ0rNX0OpOfI 2020-04-19 19:46:01 194.55.13.50 9001 9030 +a [2a03:4000:31:141::1337]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50000 +p reject 1-65535 +r Mikedideditheconfig /X7Z9IceLsRgNfxgKWDqzDLgj/g JdkfbSZrFfKwY1UUWX22yFNif+o 2020-04-20 06:01:34 46.4.233.104 443 80 +a [2a01:4f8:13b:3b59:2::104]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21700 +p reject 1-65535 +r Unnamed /Y8RyTFaeZgZiC0OMEv3nyva5rg uQKJJpQQvzBHdNOorUmDSosUpw8 2020-04-20 00:11:32 62.210.85.178 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17200 +p reject 1-65535 +r KlausTor01 /ZYrMAohVXAdRb2RJGcRpuJm7XI HXec3G+X8Mkh6/6Fw+zqN80PIGw 2020-04-20 10:03:36 94.130.187.210 9001 9030 +a [2a01:4f8:1c0c:47d4::1]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=21100 +p reject 1-65535 +r Maurer01 /ZwrRCjj+rDLri1WD500jvzCLw8 8ephm5tcmZNKK1tSLYYVOzMnlqk 2020-04-20 09:36:05 159.69.219.42 9001 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=97 +p reject 1-65535 +r snap277 /aV18e9qEf8VfZhs7jPoOuhoQgo 1NOG6hUjZTJFd4fqUwxAbZ9f7xQ 2020-04-20 07:01:48 89.157.251.8 34529 0 +s Fast Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2240 +p reject 1-65535 +r niftyrat /acOyT2wHjy0GMtpQ7DGhGSxi0w yHkpsvuzFTar+q1OF1GNFgnE9RA 2020-04-20 05:25:57 185.220.101.20 10020 20020 +a [2a0b:f4c2::20]:10020 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=47200 +p reject 22,25 +r RoseNao /as3IqTqaobjXZrIQiLz4R8vbW0 NVUDbHiwxE1AY4FCosCtV9oh0ng 2020-04-20 07:50:43 130.61.51.183 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2300 +p reject 1-65535 +r dorrisdeebrown /a7RXJjP56QW5WdvYUJU94QGEFw I1qkF3ZGOzeS0bnJYsu745NkKzg 2020-04-20 10:31:03 185.220.102.4 80 0 +a [2a0b:f4c1::4]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=50000 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464-465,531,543-544,554,563,587,636,706,749,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2083,2086-2087,2095-2096,2102-2104,3128,3690,4321,4643,5050,5190,5222-5223,5228,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r cylondetector /a9XwJfoywEQtbCGlZjEgZ+QBfY f1FS1nZG+VlFJOIBRZP3xn+1ehs 2020-04-19 18:55:43 178.238.224.97 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3990 +p reject 1-65535 +r fullmoonresort7 /bC/UtTthOY5raiIL/bN8ExNNS0 1O4Fhk0EAFKFOJV/z4ZqUi/oEas 2020-04-20 10:19:11 185.216.32.130 443 80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=26900 +p accept 20-23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r crabbe /bGi2HMOj7lGftvjRh7MwAuxkQ4 ILd+AO/lcT8IeQ4mH3HpUB03qrw 2020-04-20 11:30:57 102.130.112.81 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.3.2-alpha +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=487 +p reject 1-65535 +r niftyguard11 /b9gj5ouzQxgDK+WOYp9WwjUbKk gg5/ef6Xm9WzuJK0RVT5/F6vrOo 2020-04-20 12:45:45 185.220.101.220 1220 2220 +a [2a0b:f4c2:2::220]:1220 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22500 +p accept 80,443 +r mirondal /dQKpXOvq7VIE7tl8CPXXtSal+g eZV+Y40pPITv1UM62QFKqU+fGVc 2020-04-20 02:04:33 185.103.135.19 9002 9032 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2080 +p reject 1-65535 +r QuintexAirVPN24 /dcAx5HMa7CsHCCZqCy8NnrUt2Q VNCd5/6JBAGpAq1QbXYyeQ4vjJo 2020-04-19 19:57:27 199.249.230.77 443 80 +a [2620:7:6001::ffff:c759:e64d]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=18100 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r wollwoll /eztTCylPSjr2MsN3We52PZBCSo MlrJvCQAlW9pfruybPhFHa5vuzo 2020-04-19 20:04:56 86.59.21.163 9001 9030 +a [2001:858:6:2001::3]:9001 +s Running Stable V2Dir Valid +v Tor 0.2.9.16 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=48 +p reject 1-65535 +r kellertur /fsEObc43iZ+v9mgSn2UjUYaX3Y rOvEcS/jIWnropuGyp2x0dcw3zA 2020-04-19 20:11:17 51.15.42.19 9001 9030 +s Fast Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1780 +p reject 1-65535 +r niftywabbit8 /f1nXQUhZUnrfaVF4y7PzuroBfI h9jKDIcf745uTRm0Vh8JkeSl81Q 2020-04-20 10:52:00 185.220.101.200 1200 2200 +a [2a0b:f4c2:2::200]:1200 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=66000 +p reject 25 +r Unnamed /f7TWpGH+4iuxkzJugVxvpuKjVs Nq87LOi0JDQ+fa932EAGC9IoXPQ 2020-04-19 23:39:16 80.251.126.229 9001 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3140 +p reject 1-65535 +r Quintex42 /gCjqDVoDmf7vIlack4mV7slPpc PZYzY5x9y1ZZaHF/tXs6PWiJmLY 2020-04-20 06:45:35 199.249.230.65 443 80 +a [2620:7:6001::ffff:c759:e641]:80 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=17200 +p accept 43,53,80,443,991,1194,1293,3690,4321,5222-5223,5228,9418,11371,64738 +r king /gqpdh577E7yoy6bCi5ywNCBCUE CWqLjftNsuaaIXNblfvISXvfDDY 2020-04-20 05:59:32 51.89.213.84 443 0 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=15500 +p accept 20-21,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,6660-6669,6679,6697,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r viktortan /hr16QkAITS/+DT0rV4d5yN3kAI KgiozGLA0lejk1L2nZZIpdcK9j0 2020-04-20 06:00:45 5.9.124.99 9090 8080 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.1.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=96000 +p reject 1-65535 +r unnamed /ht0x87gSTYTkpqS+aHYkOWNxkk DQcUMXgRvRON96S4BG2i1uhDqzE 2020-04-19 21:55:29 195.154.237.147 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=23300 +p reject 1-65535 +r Unnamed /hzNuYVCxW0y6Qv9+9dMX32nQCg hv/yZ0SziMor8KJUZn/ChWkWjL8 2020-04-20 11:15:06 51.77.94.226 443 0 +s Exit Fast Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22000 +p accept 20-21,23,43,53,79-81,88,110,143,194,220,389,443,464,531,543-544,554,563,636,706,749,853,873,902-904,981,989-995,1194,1220,1293,1500,1533,1677,1723,1755,1863,2082-2083,2086-2087,2095-2096,2102-2104,3128,3389,3690,4321,4643,5050,5190,5222-5223,5228,5900,8000,8008,8074,8080,8082,8087-8088,8232-8233,8332-8333,8443,8888,9418,9999-10000,11371,19294,19638,50002,64738 +r Tapioca /iaOlSiO4+9Y2mBtqxKrIWz2S2g VlZeTeDU0F86E0Su3L4PSnHLWUI 2020-04-20 10:20:47 200.98.136.76 443 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=130 +p reject 1-65535 +r PyotrTorpotkinOne /ilhgAGIM68DqOrNWJSmFGI9P3Y wGigkdbihjZLymh8k2DX8JONPpA 2020-04-20 09:13:23 149.56.45.200 9001 9030 +a [2607:5300:201:3000::17d3]:9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=11500 +p reject 1-65535 +r Unnamed /jyCfVZfkA0RE7KrN2CFQV02+gQ u6YY+ZKmn8cSAeqHJiJ20I3IvKQ 2020-04-20 02:05:36 13.71.64.166 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=1600 +p reject 1-65535 +r TORPEDO /jy3Quc2dPG8I4JyMgns7kStSuw adU7wU1XK2xOvAh+5BqTKog2jp0 2020-04-19 21:55:58 77.250.227.202 7002 7003 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1630 +p accept 443,1194,6667,6697,8080 +r onionVFUcz /lR+fR0rN5fqB77NXnXIWqlKXko xELUTpm4yBOhxJWILik5Cn8KDH4 2020-04-20 03:22:34 195.113.199.99 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=9220 +p reject 1-65535 +r mythaicontribution /lnBLJaX50LNP3rbr2OF6hyLN58 coV+EHjlEm3k7WUcannJpoA/H2I 2020-04-20 08:55:37 45.64.186.102 443 80 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=523 +p accept 20-21,43,53,143,220,389,443,531,636,706,873,989-995,1194,1293,1723,1755,1863,2001,2086-2087,3690,5000-5051,5190,5222-5223,5228,5555,6881-6889,6969,8082,8332-8333,8884-8892,9418,11371,11964-12966,19294,20001-50001,64738 +r stardust /myRvZ+w9XBliqqQS/i0AAhEZWs TZ+OKyQXMJRRRONtMBJGe8dEl2k 2020-04-20 01:16:35 46.249.59.89 443 0 +s Exit Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=19900 +p accept 20-23,79-81,88,443,8000,8008,8080,8888 +r snap277 /nWuXnEXZQF7P5D3OY+Xpy+kK10 kH60mi8ZdBSWrZTbA4Pmat0VUIs 2020-04-19 20:08:04 79.64.128.101 42973 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=13 +p reject 1-65535 +r volodymir /oV8MENBL9VFTtX+9VxMVy5bcM8 ZC7F4+nDXGbgBEWk337idTVI7iQ 2020-04-20 09:25:25 46.229.55.118 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=7230 +p reject 1-65535 +r simplerelayREEE /pH74BEk76/hT76ooBShD87NrlY cS8MY/n400GCs5Y1LdC96rFIrm0 2020-04-20 06:13:31 185.108.81.14 9001 0 +s Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=2 +p reject 1-65535 +r Unnamed /pyw4GKWNuvY0McfRuOHuUTAG88 Iq3L39f/L6CBGMgJPIOLnzRqnAY 2020-04-19 21:48:51 163.172.63.122 36663 0 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=22500 +p reject 1-65535 +r ADKP /qrpusi2dHu8OhTZ6aw5JKD946c 9oNoG2IKfu+p6JGfxSE3++LFr2s 2020-04-20 09:49:55 185.41.154.130 9001 9030 +s Running Stable V2Dir Valid +v Tor 0.4.3.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=20 +p reject 1-65535 +r theprocess /q/TVTkktROTG9j60cxShhxLqB8 2x+7LHvRg6o9IstngyaVn+pU1C0 2020-04-20 08:58:44 34.216.205.9 9001 0 +s Fast Running Stable Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=99 +p reject 1-65535 +r AltroSkyVPS /s7a87kEIQNcBMGHN6ixiEe1BKc ml54z4kQ8gDJlacjYb6wxadUBVE 2020-04-20 06:28:12 45.67.14.0 80 443 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.4.0-alpha-dev +pr Cons=1-2 Desc=1-2 DirCache=1-2 FlowCtrl=1 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Padding=2 Relay=1-2 +w Bandwidth=88000 +p reject 25,587 +r snap277 /tEaRsFJBEqIHT7aV3DGxW84ra4 CBPNRQvc2z+Ybs0F0GzxqNQrPvY 2020-04-19 23:08:20 190.105.67.86 37685 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=30 +p reject 1-65535 +r csUniHB /t4xM35OGeBrl9KC8IsKDoucVSY xcou4z9Gq75dbdccpzfMrb/rrQE 2020-04-20 02:22:39 134.102.200.101 9001 9030 +a [2001:638:708:30c8::65]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=43000 +p reject 1-65535 +r eierschwammerl /t9JmJUadQ1deXTfJDA1SZ6EiC4 SUyxtmWr8d0WLuu1cV47oVQp6uo 2020-04-20 05:16:25 37.252.185.87 443 80 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21000 +p reject 1-65535 +r Cagri /uXJJLNGEjpVJedgP+1pqGli7JU 47S8cIq12mgWqV5LhcIGoAOzFRA 2020-04-20 07:40:23 194.135.82.36 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4850 +p reject 1-65535 +r Unnamed /uw35XQR3koGHc/3QhyeeMDKouo K2DoW4a/KiAh10FQT5DyaggyVF8 2020-04-20 05:10:46 98.116.155.39 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=3470 +p reject 1-65535 +r Donatello /u8kzfFbtZtBjRv5SmS9PmK7LPM ZQdA/dGgAg3SSzlMKZL1QK7gAhE 2020-04-20 11:15:54 190.10.8.166 443 80 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=630 +p reject 1-65535 +r Unnamed /vX/SDn8KE59LkgVRGvqN+tPKwI 4skcpCJOoHzvcVk6MDdgXd0kygA 2020-04-20 08:13:28 20.36.47.165 443 0 +s Fast Running Stable Valid +v Tor 0.4.2.6 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=180 +p reject 1-65535 +r torrelay666 /v+XWkXLs1DXpZqL5hoQcaN8UqM jrH04ObfDBBcEzk6GFi2inus9lw 2020-04-20 03:30:23 91.7.113.234 443 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=250 +p reject 1-65535 +r onedilight /v+5YNkvQtUIeX9ACBgCxxK4jP0 pzbOkGZW2j/dIzVJfG8AO0aszz8 2020-04-20 07:36:46 45.77.174.250 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.13 +pr +w Bandwidth=223 +p reject 1-65535 +r hsjeufh24h6 /wbnoGihymbOWT3OheJHeAfEgwI WmsUw+x7MMtzqXJKZjScuRnog7c 2020-04-20 12:01:46 51.15.37.100 9001 9030 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.5 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=21400 +p reject 1-65535 +r BestKorea /xVOAmWtwk/bHYu6NEVeMkyf5Ac zPb6B4uYQe0ZRepSg2YZ66tWGVo 2020-04-20 11:14:15 51.15.220.171 9001 0 +s Fast Running V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6990 +p reject 1-65535 +r middlesharprelay /xqghTAChLparHNBZx5X1T7ED+M ExfPsYlvM2js8q5gxznlYpglBoU 2020-04-20 01:40:51 213.32.71.116 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=17100 +p reject 1-65535 +r niftywabbit16 /x7ZoX9ggd60YH/a9D+t8WuUqVU xuJqjI5ldMcjdpgu6mgw2cv1fxc 2020-04-20 10:54:16 185.220.101.246 10246 20246 +a [2a0b:f4c2:2::246]:10246 +s Exit Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=70200 +p reject 25 +r relay /zBZ535dIvHDsgzL4SVpGtJ1iN0 yjyQZa39cKgSiHDu2A0YVaK+Uag 2020-04-19 22:01:19 185.163.45.247 443 80 +s Fast Guard Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4620 +p reject 1-65535 +r snap277 /1KwaooMv9CjDcnUU/BlT/cnahg WHWYU0TBCud9Awqhmp/VVh0axVQ 2020-04-20 06:30:28 90.76.79.201 45629 0 +s Running V2Dir Valid +v Tor 0.3.5.8 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=10 +p reject 1-65535 +r Gemini2 /1N3TuT5mbw2IxctRLwIYpDh+tU vzOzY7sM4l8eaSN1qmgpRWlcj/s 2020-04-20 05:14:04 69.195.146.154 9001 9002 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=11300 +p reject 1-65535 +r enif /2Cz/JoYbjmIRuCVrDeLE+yAlP0 aMh+QQp9H64iblfXMVXjjASCHS0 2020-04-19 19:01:09 144.76.50.37 9050 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=4200 +p reject 1-65535 +r sofbg /4DrdkjlSBnzdSLE/B8a6edgwKg +hNBSqQ9z//mYd2aYuCfsC5yU/Q 2020-04-20 02:33:34 195.123.224.108 9001 9030 +s Exit Fast HSDir Running Stable V2Dir Valid +v Tor 0.2.9.14 +pr Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2 +w Bandwidth=790 +p accept 43,53,79-81,443,531,873,981,8008,8080-8082,8888 +r MehlTor1 /4fknvMweLBKXeJqrhcN34uuE58 BiB0TCZWMgODY6zZXL/0Q5lAzc0 2020-04-20 10:06:27 188.68.36.209 59001 59030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=460 +p reject 1-65535 +r angeltest3 /5/G0TD6Jq466LI2iGkdxBnw8i4 reaMsCQTBVoQsPC0mHokFg35x5M 2020-04-20 10:41:57 62.141.38.69 443 80 +a [2001:4ba0:cafe:ac5::]:443 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=48000 +p reject 1-65535 +r Lule /6cr1oO8L8+Yg1bmvsHkkPMT+wc SikumV6p4WBjGy3J/eUNXQpN+Ck 2020-04-20 00:22:33 193.11.164.243 9001 9030 +a [2001:6b0:7:125::243]:9001 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=36000 +p reject 1-65535 +r Unnamed /7YFyG1gaZGt7XhCJp+iWgO0pNA 0heGvQ0as0uYnGBinZBzfPBdzC0 2020-04-20 04:41:52 165.227.174.150 9001 9030 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=430 +p reject 1-65535 +r plan9leia /7xpRns31qxmWYu9KV+bDXQRmtw AHIgB9zqJe6W5bNgtWl9h9zRYAY 2020-04-20 00:46:43 213.239.217.68 4433 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=787 +p reject 1-65535 +r tRr /9MtQzCLeew3i6zco1UueqJmnGk J7aeeLKqls+YghrH++xznNfXTmY 2020-04-20 01:33:30 173.79.173.49 12000 0 +s Fast HSDir Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=1920 +p reject 1-65535 +r ddetor2 //eMRLpua291JQlbvhTvfL64l0Q KbdFofFgecV4Wa+douqGjKeHiJo 2020-04-19 21:15:10 144.76.75.137 9001 9030 +s Fast Guard HSDir Running Stable V2Dir Valid +v Tor 0.3.5.10 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +w Bandwidth=2100 +p reject 1-65535 +r nestor00patof //v7UKg6QUzCG0zak6lnSwBHBeg Wxif5ITXaY7h5Oo8oF3aRe145TU 2020-04-20 06:40:32 144.172.153.165 1337 0 +s Running Stable V2Dir Valid +v Tor 0.4.2.7 +pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-5 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 Padding=2 FlowCtrl=1 +w Bandwidth=6 +p reject 1-65535 +directory-footer +bandwidth-weights Wbd=0 Wbe=0 Wbg=4148 Wbm=10000 Wdb=10000 Web=10000 Wed=10000 Wee=10000 Weg=10000 Wem=10000 Wgb=10000 Wgd=0 Wgg=5852 Wgm=5852 Wmb=10000 Wmd=0 Wme=0 Wmg=4148 Wmm=10000 +directory-signature 0232AF901C31A04EE9848595AF9BB7620D4C5B2E B71116D3FB864E3BBA99370CF4E9611B9ACF569F +-----BEGIN SIGNATURE----- +BcWNRGGJXgNizcTIwXP3lSOFJ0k5byZ2Fy21Agorkuvgfh/KvzXNGpVbCbgDvoNU +YkwBOL4C9ng1C3Ka9WY6cwIMhUu7yfO76VHsL//Ywdkpe3sHAKkMYPXeF/+MMB7K +uC9WHdeweAez62bFjztiEUjejFtlUyODLqBgD6lV35zGBu0Fi8wGyrzwtldbQrIG +VKiXggCY4/J6xm70FyKJ8l3ml8AguZgoo7riTlYDT2X5q2vOlUDUGe4ubqG3Qfyx +LonuLlyK9hfik6CBuiBT8PR7BgxhaKrZdlp3KIzl0HmoJGSvi9JRfdxoBVHy4Ssp +ymQNCLsMuODuOAq6WKOs0Q== +-----END SIGNATURE----- +directory-signature 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4 4ABD14E600065842C3A3D1079BD39CDB1969A51F +-----BEGIN SIGNATURE----- +HS/W4LHrRvROiLjA2Tk9R/awlYU+gwhwqGRwlNFiWJ7qV7M9kY9rEp2i/fYnTAUy +OjhCtQpdRLrrTEf6dReUgeX6eFJqWcKyzQPXvgQd0iZ7mcYjqFA4KElDvPF/DjYn +h7gxXoGINtq7Ys9Vi3XIS1Pqp81Mci3+VHdbNmCP74YfRJ92+F0Iz7aREBF7vz1K +2UGskeP9Wp8vWKtjySzo3V5FRj+2sirC/2Ts+cAhZIankulykBFOhL6k/Qbctujc +dXbr0ppWMGkio2Mkj+zs0OijtU6cD4KlE5iFzEUe0KyZ6pzuBxrrY82oPGwWtjdG +wbNxm1Z/EUezSR9+aWRW0PSx1DjuJircOsBJ4HNqCAyMZNbj5iHsruz3s5nmT5zT +JU5awp8D9UPnQxtqfmXMu3AwJPKyhhVN2tZZSEclSYAjFozR0s5ihG/eTy3kqyCV +P1aMnK5AmUbOh/ElPm69FE8c0Dc5aUuwvkWKczTGmrCfd3Ldhck4EmSdzTholWgb +-----END SIGNATURE----- +directory-signature 23D15D965BC35114467363C165C4F724B64B4F66 509EF6508DD58C083D55BECAC7C1B6B8BED4D358 +-----BEGIN SIGNATURE----- +oE9nr9s5tCl17pPH7x/sncIMZd5NEoy1IQKoQXLE1z/yLQks4zWt4tPHfgDYLmXW +WLkPGQ+kGC2hezSQ7YtoBj3cQXMl7oihSY5lcpXta09wB4xzu6ToLTW4AHPPPeuV +K4M/aX0MjKN6hMec3IhJQObPjtZKDX3aWoL6Qlmfb5Xpuum4nARMm/udrlqi2xxw +RY0fTkDDiUgpCvMFhMm8WzA2j2cnJwemF7nNC3js+37KeOtiofvaUJxiK6HgE7IQ +2FoekXKRh4M3VU+8rsQbZxIYCl5PGou7cvgS0Pn4sVtQvas7DpdfjGETWcj9ZGUr +1NgnLaDWKm1woHOCWOTHnA== +-----END SIGNATURE----- +directory-signature 27102BC123E7AF1D4741AE047E160C91ADC76B21 430B061F428EAE23240631406F9FF0E3A5966D96 +-----BEGIN SIGNATURE----- +b/SKk1Q3vGsJfqCsmW11iqr16FmderlH+k3AZ/DCdfatYVMMBdSKKLMb0hP0Shcm +mZd+/H/oe9AdvAMq1HfHJgujLFcF37EiUYdGQRRcSxr17h5VXySJl+1rrznrkSiO +axTIDzpzaHJEKUzz+xrleSK+pJfGvqirk/OT926cRJ4ldhNd8szrVHfddpix9FQV +K0ss6LkwqUrsekCR2bo7SAfsEc/FtVJhdXu/5TiSgCqEtLMGbfqFvkZXAZ8fQXNJ +J1cMDz9z7PK4u4z/5+cKNirwPUfvldiSPueTKZHPo4BDsMrAa8BDbsP3Aciae0S8 +VDvk79+NWA5if5zqOu5ATg== +-----END SIGNATURE----- +directory-signature 49015F787433103580E3B66A1707A00E60F2D15B 7BB01AE548AC472C2C4CE42C651D37FE1AC0D453 +-----BEGIN SIGNATURE----- +JXNn7bNhLCn16RdRSM1+msGhNBehm3VXNd+DaGSD2zi0WeacEMtRRHAANw7hDzKr +VJ8jUEQSmD+Ik/U/hnc2Oap5r4KMJdz97lrlnEqb9FRwZSwPoKaU8ZCHL5nYCfXN +IfIOLD7QozI+C7Wiz1LjjoIF4SUYU+Ejlzmbf/yhmHYfADKfQXVnRAiloIv+J2S1 +fAtcSHnARh/aBunzwpPlGnOBQ4twg8liuDGw7Sl8IV4tfl5QoIbndHriiPFRBo3U +nWGLOIXWpZx4l9+H3ftK81CMmF2k/D22vpBNuelDKZEfZQ26YVyghbm7iXWBN/Dz +Q9J6sf6xYXitijyRJWluUg== +-----END SIGNATURE----- +directory-signature D586D18309DED4CD6D57C18FDB97EFA96D330566 ACE88AC828C1641CD528F8681F570FB53A65807E +-----BEGIN SIGNATURE----- +PS49FkiqLUEsMeJg3/GkoVZhqtAvBCv76BJ19pOWqO02zePU0nXXQKsp+IGwu2fX +sYZ+ZrPC79JfCxsyBQ/fKIhPoyLbsZYyVknSWe+CAo1TU85WT1uC6W2AZM7GCung +QOpBN1C9f8BTAQfxNQ4hj/1WkzCYKYMll+KER9ovrZpmMvRZiNjZg/w3xds6Q14h +ILQYS6BxAZ9RE+yjOqSxtG6Pp+/K7qpm3VAEynIiv+AUH0G5IhoHRQSX56Xw0WfF +fSYVQ4Yaavmi+4UYcw3+Up7FDdLmPIMGXXOLqYH4JXrI71AOdN6sLKIWkJ+yX03x +N5M8isrc/T9RXZI5Avqv/w== +-----END SIGNATURE----- +directory-signature E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58 7020598CED8DFAED7618ABF4D9D8C0282F3A9ABE +-----BEGIN SIGNATURE----- +jL6xnVOtgm3FVrru6OjdCgv5n5XeY5TGMMMCuMgJOE7H6kPIOVzV/lJZ+byhzDiD +Dg4OIdGzF5bnwO6CnrpFbkQ/llbjMtSyTaIesMcc3RxOlMhDaXluYK8gIs5hhKh5 +03r1B2lZ3wfA4AfsfBvxGzjdj9KUiBPL/h2foLLDnCjnY9p10qSIbLA2u6q3UELl +j39p9PGeu6B23M4PC5PChKLrVky+OwZ0xTv9Y6RWma4Xe9gtP3jzq1rRa3VkYt6y +KgYclC8qKpK0kOe06L/kh9xdXiif2CVfxX45HRrbrCOXRQc6eZIfplldEwJH6j5k +d7qef23vIhH7TCtPV+cuaQ== +-----END SIGNATURE----- +directory-signature ED03BB616EB2F60BEC80151114BB25CEF515B226 C4F720E2C59F9DDD4867FFF465CA04031E35648F +-----BEGIN SIGNATURE----- +u9Mk5/HP3jJU6yMiB3nAeO8YyKNJ0d3Acec4x7lwJ72JI8WGCmnVUqdRo7VCciko +K1TklOeCQ/BaTx/LEgs+JWOC1n0w9bO7DQY2JI28lxVCNhmTJVrXLSxuKXZc5BzN +/0HaO2LtjndgaD/shC0m4shW57AztS/l4Jq833wm6+zJH3ZjefcaIna6uwVCI3PE +wXsaoVS0XftVQ0ygn5B3HniOPG52fPJtrqb8ED8p0CszPNIzVQAW/cPZNh2h9g+R +bSuTRN4DRe0S4p55anJA4pOqbBk3M+eagC0DYqHKfMX9vK92bYNkJ9Kbrb5CoQzL +50k27xV8IAaDhXg2OO76+g== +-----END SIGNATURE----- +directory-signature EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97 310ED41DA061602C0D3127ED493C2D476426D73F +-----BEGIN SIGNATURE----- +4iM4Nn17e96yCyWG+eN4tuP5OOGzrgDogaSoijFoj/PHrIV2ib0N/Tuix05lYbym +JVm0Ah8HCaD4lG4iJ7yZXjR7Wl/imp9np4z5J+3dyK46ObwlovqeuGjzc2oJpLt5 +0gT5u4OiSP6GJhXSTP314y2Uh8rSddvBoUgakc8dZGcgV38QThsHYIU1PzfP2Nqc +QPWLsWtnDe5NPSPJXO6gh1E8YgzFYSOtE1gGLHDRlB+qSAKg4oLk/8lCPBh1z8Wg +WombN/z7n8xX7hNJCJB4HbVka9T0eDl6JROasoonDis9RkQwSBYnVERy0Taxp312 +g7B5yAc18UfQm9C+Gy3/1A== +-----END SIGNATURE----- diff --git a/data/descriptors_micro_parsed.txt b/data/descriptors_micro_parsed.txt new file mode 100644 index 0000000..266c83d --- /dev/null +++ b/data/descriptors_micro_parsed.txt @@ -0,0 +1,175 @@ +{ + "flavor": "microdesc", + "descriptors": [ + { + "micro-digest": "/oBdxYE6dEsNEuhT+eCKq5LbsJhz/5aE/CQlHeYQqy0", + "onion-key": "MIGJAoGBAMXGxwPQGH9t9pfQSnqrJd7r4ppFaalVCd+HROsS6CA/znvpf/2b9uer5qucAUYRL0Uhr0o6J0TldxSd3d8WY5Lwn/ZrJ7h4U6SDV024BxqW7R4OMT5ISFgh89DQN6p1g8mMslGktwZUrCGeEhL32WQAEB/so5wnv7Aa6yYWBDZbAgMBAAE=", + "ntor-onion-key": "pwiw7FWsyJXlLyAa7kOTSyKgaqG3xV+stOE+uGEvsE0=", + "policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "ipv6-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "identity": { + "type": "ed25519", + "master-key": "RVD4e+ZpIO5hJFWZ1mQvPbpp8YiASSsdM3x+eUDPSGM" + }, + "flavor": "microdesc" + }, + { + "micro-digest": "vsIfsfWipqVVIP/sPw71/GVuqFBACo8isd0QE5IHWRA", + "onion-key": "MIGJAoGBALS2aufFNN2vT315425F+PwmNV8WILh08q3aEVmcn2qpny12d9S2KA/tU//ZlJhguqVTV1MMY52FstR0NKETDD9pdzHUFSsFCOzLhOzSdNPRrp7+ldZCV+mrmd2i2Dob3dVcyZP8iGORSQDR0D6c70Cfv2jM9LW5FTnaOZ3Dld5LAgMBAAE=", + "ntor-onion-key": "aWrb8rS++QFQnEDvEnSWFQ5Wh8q7JGYY90bkx05LfCM=", + "policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "ipv6-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "identity": { + "type": "ed25519", + "master-key": "3QRD2H4MaOulm41T865Ya4/xJfO6vNMSl+yfOWksCoo" + }, + "flavor": "microdesc" + }, + { + "micro-digest": "sOncg9KObIVQCj2qbmTa166mzTNuYLq/78NnH4j9Rpg", + "onion-key": "MIGJAoGBAMelRVut9suHj0F4uYyAZCsmtlrjRbdmZNvSy7oYbMpdRsKrmEhckXd10UIJOU5oI9+Kf+dWyggcs6/Nx4qar7hXF9nTf18wCYm+UbFtcNzCXLeseaZtDj/MbHa0+ptykcLFb1VkI4a7cAQ5qPlWUG0qpE/yUGa3kifRd78icwWVAgMBAAE=", + "ntor-onion-key": "3nwr7McqePaQrbawf0Lkuj72l61AreUJ4ulxjY1grFg=", + "identity": { + "type": "ed25519", + "master-key": "A1Ly6Uf+PRVV+CeVAQF1FKPYLNrPsWeuXed2h/KLGX0" + }, + "flavor": "microdesc" + }, + { + "micro-digest": "r5w5OtvIDxowqug0biGBmqR6Fm2D0lukwOdAS+3f0nI", + "onion-key": "MIGJAoGBANXWu7tNGp/m326Ua3ZBr78lRfPD2xPn+R5zU/SjWa32/QpkLPyloJt7XzI1JGxMdU+bVgOXuprW51nm+gtfbZ64g6DFFuBEmAEOVfqgCRfgz3yx5J0f9WchdfoXqbD2oYxleVZ5qd0VeUve+1uKsB1t6oOIhBbW5VwqhmNbGL63AgMBAAE=", + "ntor-onion-key": "GXljNcag/Y28zUyMWvwzoGTrY93JtUcNW+E5nx49+Wg=", + "policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "ipv6-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "identity": { + "type": "ed25519", + "master-key": "Z79/Yq1oq8nT82SKCdV7f8wyofn57h2GVFNQvr2kAns" + }, + "flavor": "microdesc" + }, + { + "micro-digest": "hXFJseLWgaqAea7Hpd5cBfEbTTISuFv92sTBLOJY6Mg", + "onion-key": "MIGJAoGBALudw0y5z2HX0Yq/jrqjt2lk/GgtuDAIlGaeCa+3Y6Wz/N5UkFfPFb2b6Rlbgih5IsStFbsI9byY+TuTbQVrJJoSzYxbaOJkNqBxItfWy21x0In0k23FgdjhJtb+CKU3pB3Jtr6ggQ6YiO+RDuyBOx1tpckxxVzD8gqWuOldKrRXAgMBAAE=", + "ntor-onion-key": "PF0gSkZSg5tg/cpO+COBy4MuOBUFy0i24UN1ANjwYBQ=", + "policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "ipv6-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "identity": { + "type": "ed25519", + "master-key": "40FnzSdF/otItPbTowtcDS7+UzqAw6g9kbmppFeuN3g" + }, + "flavor": "microdesc" + }, + { + "micro-digest": "apfWPB1RoS+VCxl84H7LPEvhTzaZPJo4pDT5ykzNcVw", + "onion-key": "MIGJAoGBAKo/yPehcMW+7t05pCn5afpDbjSQxlu3PfD+L0AhafCHNv0rTAQIdbj3YgQSAutk87HM8MUNPDDSgwvv0coMwfvgAe4reOvtikXoWJSsNq0c4/nZgYbofJms3mmyHAgp3wIf8BfIV9p5yfwPdrpwQMYpcB+WOeEk3zpwsZvK/xIlAgMBAAE=", + "ntor-onion-key": "Gfrvc+6ChY2HVlODeevwtCkYdngLpV+/Y/rUHb4qpFc=", + "policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "ipv6-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "identity": { + "type": "ed25519", + "master-key": "V3yVgZOBaTl0S62HZws3zcw1WDVEEu7wx0qEbVCKaE4" + }, + "flavor": "microdesc" + }, + { + "micro-digest": "CgFLrWqo2d17GIiSmHkos8ptM6hAXZsPpahMNsgRtuc", + "onion-key": "MIGJAoGBALZfNLHagu0C7pRHN8XLZJ/X6U/HVXRmnGRXPEDzjri2bvkljoo9SevPGy33KNsztJW370dqvag0ECiMQskdKbI7YTpYfgYkPXL6PhpKWkN2JA/TNKeCZ4QueJke2I/eYdDqolWaFeO/gqVFZJVNuAEjuBM8LpW5kmApRnAE2hv1AgMBAAE=", + "ntor-onion-key": "rHEisTL/3HGQ+BOgmG4C7hEbWCSiV1a6+0NaStxwUEM=", + "identity": { + "type": "ed25519", + "master-key": "4GIxWx53osRVYGGk2RzThPkCcdCNj1njcHhUl7NEu1g" + }, + "flavor": "microdesc" + }, + { + "micro-digest": "Ce65iO65lvDwWdyvlWh4St0qNniQ7RS3XzstrFSpYto", + "onion-key": "MIGJAoGBAOSrVSP4UbX152npOD2+DcZsHtLCEkutdMxM/8+XCjrCrK8h4lo3GkBGHrA5piJadIUwWJzzmWjx20k8vTXvFQDAnVuBTz+QTJU/QrM5DamNhHDY5kwKyt8vCyHIb7TXIeKlaBaOMGuebH/37ePZqzEvwAU31TfADT35od1FtBn7AgMBAAE=", + "ntor-onion-key": "tWQ0zfFeYziPs/nZ6qovq2cb9N1xnDT5tn/iZ6+kbSM=", + "identity": { + "type": "ed25519", + "master-key": "lDbXHVUAjECEijL+rQsmTaxkwAHpAsca81v+Hd/TjRg" + }, + "flavor": "microdesc" + } + ] +} diff --git a/data/descriptors_micro_raw.txt b/data/descriptors_micro_raw.txt new file mode 100644 index 0000000..f2e1cd8 --- /dev/null +++ b/data/descriptors_micro_raw.txt @@ -0,0 +1,74 @@ +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAMXGxwPQGH9t9pfQSnqrJd7r4ppFaalVCd+HROsS6CA/znvpf/2b9uer +5qucAUYRL0Uhr0o6J0TldxSd3d8WY5Lwn/ZrJ7h4U6SDV024BxqW7R4OMT5ISFgh +89DQN6p1g8mMslGktwZUrCGeEhL32WQAEB/so5wnv7Aa6yYWBDZbAgMBAAE= +-----END RSA PUBLIC KEY----- +ntor-onion-key pwiw7FWsyJXlLyAa7kOTSyKgaqG3xV+stOE+uGEvsE0= +p accept 1-65535 +p6 accept 1-65535 +id ed25519 RVD4e+ZpIO5hJFWZ1mQvPbpp8YiASSsdM3x+eUDPSGM +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBALS2aufFNN2vT315425F+PwmNV8WILh08q3aEVmcn2qpny12d9S2KA/t +U//ZlJhguqVTV1MMY52FstR0NKETDD9pdzHUFSsFCOzLhOzSdNPRrp7+ldZCV+mr +md2i2Dob3dVcyZP8iGORSQDR0D6c70Cfv2jM9LW5FTnaOZ3Dld5LAgMBAAE= +-----END RSA PUBLIC KEY----- +ntor-onion-key aWrb8rS++QFQnEDvEnSWFQ5Wh8q7JGYY90bkx05LfCM= +p accept 1-65535 +p6 accept 1-65535 +id ed25519 3QRD2H4MaOulm41T865Ya4/xJfO6vNMSl+yfOWksCoo +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAMelRVut9suHj0F4uYyAZCsmtlrjRbdmZNvSy7oYbMpdRsKrmEhckXd1 +0UIJOU5oI9+Kf+dWyggcs6/Nx4qar7hXF9nTf18wCYm+UbFtcNzCXLeseaZtDj/M +bHa0+ptykcLFb1VkI4a7cAQ5qPlWUG0qpE/yUGa3kifRd78icwWVAgMBAAE= +-----END RSA PUBLIC KEY----- +ntor-onion-key 3nwr7McqePaQrbawf0Lkuj72l61AreUJ4ulxjY1grFg= +id ed25519 A1Ly6Uf+PRVV+CeVAQF1FKPYLNrPsWeuXed2h/KLGX0 +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBANXWu7tNGp/m326Ua3ZBr78lRfPD2xPn+R5zU/SjWa32/QpkLPyloJt7 +XzI1JGxMdU+bVgOXuprW51nm+gtfbZ64g6DFFuBEmAEOVfqgCRfgz3yx5J0f9Wch +dfoXqbD2oYxleVZ5qd0VeUve+1uKsB1t6oOIhBbW5VwqhmNbGL63AgMBAAE= +-----END RSA PUBLIC KEY----- +ntor-onion-key GXljNcag/Y28zUyMWvwzoGTrY93JtUcNW+E5nx49+Wg= +p accept 1-65535 +p6 accept 1-65535 +id ed25519 Z79/Yq1oq8nT82SKCdV7f8wyofn57h2GVFNQvr2kAns +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBALudw0y5z2HX0Yq/jrqjt2lk/GgtuDAIlGaeCa+3Y6Wz/N5UkFfPFb2b +6Rlbgih5IsStFbsI9byY+TuTbQVrJJoSzYxbaOJkNqBxItfWy21x0In0k23Fgdjh +Jtb+CKU3pB3Jtr6ggQ6YiO+RDuyBOx1tpckxxVzD8gqWuOldKrRXAgMBAAE= +-----END RSA PUBLIC KEY----- +ntor-onion-key PF0gSkZSg5tg/cpO+COBy4MuOBUFy0i24UN1ANjwYBQ= +p accept 1-65535 +p6 accept 1-65535 +id ed25519 40FnzSdF/otItPbTowtcDS7+UzqAw6g9kbmppFeuN3g +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAKo/yPehcMW+7t05pCn5afpDbjSQxlu3PfD+L0AhafCHNv0rTAQIdbj3 +YgQSAutk87HM8MUNPDDSgwvv0coMwfvgAe4reOvtikXoWJSsNq0c4/nZgYbofJms +3mmyHAgp3wIf8BfIV9p5yfwPdrpwQMYpcB+WOeEk3zpwsZvK/xIlAgMBAAE= +-----END RSA PUBLIC KEY----- +ntor-onion-key Gfrvc+6ChY2HVlODeevwtCkYdngLpV+/Y/rUHb4qpFc= +p accept 1-65535 +p6 accept 1-65535 +id ed25519 V3yVgZOBaTl0S62HZws3zcw1WDVEEu7wx0qEbVCKaE4 +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBALZfNLHagu0C7pRHN8XLZJ/X6U/HVXRmnGRXPEDzjri2bvkljoo9SevP +Gy33KNsztJW370dqvag0ECiMQskdKbI7YTpYfgYkPXL6PhpKWkN2JA/TNKeCZ4Qu +eJke2I/eYdDqolWaFeO/gqVFZJVNuAEjuBM8LpW5kmApRnAE2hv1AgMBAAE= +-----END RSA PUBLIC KEY----- +ntor-onion-key rHEisTL/3HGQ+BOgmG4C7hEbWCSiV1a6+0NaStxwUEM= +id ed25519 4GIxWx53osRVYGGk2RzThPkCcdCNj1njcHhUl7NEu1g +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAOSrVSP4UbX152npOD2+DcZsHtLCEkutdMxM/8+XCjrCrK8h4lo3GkBG +HrA5piJadIUwWJzzmWjx20k8vTXvFQDAnVuBTz+QTJU/QrM5DamNhHDY5kwKyt8v +CyHIb7TXIeKlaBaOMGuebH/37ePZqzEvwAU31TfADT35od1FtBn7AgMBAAE= +-----END RSA PUBLIC KEY----- +ntor-onion-key tWQ0zfFeYziPs/nZ6qovq2cb9N1xnDT5tn/iZ6+kbSM= +id ed25519 lDbXHVUAjECEijL+rQsmTaxkwAHpAsca81v+Hd/TjRg diff --git a/data/descriptors_parsed.txt b/data/descriptors_parsed.txt new file mode 100644 index 0000000..2186d88 --- /dev/null +++ b/data/descriptors_parsed.txt @@ -0,0 +1,872 @@ +{ + "flavor": "unflavored", + "descriptors": [ + { + "digest": "3PwzAvlHnjBMdal83IP/VLRe/8o", + "router": { + "nickname": "test006r", + "address": "127.0.0.1", + "orport": 5006, + "socksport": 0, + "dirport": 7006, + "identity": "DZZkh3UlCcgcxHqUEb2HozksADc" + }, + "identity": { + "type": "ed25519", + "cert": "AQQABrr8AW0IbAOjuA1MlGc16R5kfrmeMZqt/wWNV/qagfCLhPYrAQAgBADdBEPYfgxo66WbjVPzrlhrj/El87q80xKX7J85aSwKijmSLlwSWmn0VMyIdLVhUIzpi8T86kCAEgI3kWxVuYxfrVnpQsyeXsxK1HFGiNJ0IwumEO17D2uoUSeDUQ5aEAE=", + "master-key": "3QRD2H4MaOulm41T865Ya4/xJfO6vNMSl+yfOWksCoo" + }, + "platform": "Tor 0.3.5.10 on Linux", + "proto": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "published": { + "date": "2020-04-23", + "time": "13:03:18", + "stamp": 1587646998.0 + }, + "fingerprint": "0D96 6487 7525 09C8 1CC4 7A94 11BD 87A3 392C 0037", + "uptime": 0, + "bandwidth": { + "avg": 1073741824, + "burst": 1073741824, + "observed": 189440 + }, + "extra-info-digest": { + "sha1": "4D6DD8AE820EA87C2F5D92FEB45659B2EB2D8B23", + "sha256": "8H0dw2JR42GgubX7ukH3G1c2vdvadQwWQNsZAefr0iI" + }, + "onion-key": "MIGJAoGBALS2aufFNN2vT315425F+PwmNV8WILh08q3aEVmcn2qpny12d9S2KA/tU//ZlJhguqVTV1MMY52FstR0NKETDD9pdzHUFSsFCOzLhOzSdNPRrp7+ldZCV+mrmd2i2Dob3dVcyZP8iGORSQDR0D6c70Cfv2jM9LW5FTnaOZ3Dld5LAgMBAAE=", + "signing-key": "MIGJAoGBAPzna9Lyc/l6oPWsS6wbMeiN29QyVFCNx7KlYc/1D8XCjoDhnRudt0l6lhfsRdKcTYRiWk2+zHx1mrLUK7iWEEdNkO3uzIMDBlGgjluyPRSmIY1j49KFV9efmHIoa1Jh4xY5J4OBfq6YiRztqEGXVw26yo+aUxkYhrQwtHdpxhXBAgMBAAE=", + "onion-key-crosscert": "Hkuje2pP0ApipboOWs2lSHnNm3kDOd5p7isgR/yBRYSFQsuRHrQllxMkL+bNZ19CiglZMp3cFCA7PzvIhswzQ18zHnjtW38x7GD1lK3tbbzjhCpdSfwAd0scGwAfkvV2lcnFlfS16g1szg3iBwphOkRsF+dV2FCgRO+knpZNVo8=", + "ntor-onion-key-crosscert": { + "bit": 0, + "cert": "AQoABr1WAd0EQ9h+DGjrpZuNU/OuWGuP8SXzurzTEpfsnzlpLAqKAKigoipXObaMLxcxf4e6NLwM7NzhrQ3pYt1sbkuywsAwVSdTJpmK7u3ZJaG5We8wkmTjYzCiN+5XV/zKn/hV2gM=" + }, + "hidden-service-dir": true, + "ntor-onion-key": "aWrb8rS++QFQnEDvEnSWFQ5Wh8q7JGYY90bkx05LfCM=", + "policy": { + "type": "exitpattern", + "rules": [ + { + "type": "accept", + "pattern": "*:*" + } + ] + }, + "ipv6-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "tunnelled-dir-server": true, + "router-signatures": { + "ed25519": "KjlTgXjrJyfmlCvHHTzbN7su0s209DwWkGRLOrj8P3wytuFMCMVwtVm0FUzfzRGP7cdrXU1yoTReDTkVNRS2Aw", + "rsa": "pMnn6YA9DlPZtqzrkCqbUUbwzOdb7v3Uotg8Q8QemAwN44TAIl4Bp7wdwAvokd2GOtbvln/M5SlsB6f8Qej8pYGQjBX4PTS2FdkWPINZRcAOnDWIkTxV7KNmgf1/esuZbO/BPXNCIJDjFwxgnDVxsTC9z1uGMvj7B1M7uu0v6B8=" + }, + "flavor": "unflavored" + }, + { + "digest": "oFui9xopnP51itNGwljfo7HbT0o", + "router": { + "nickname": "test003r", + "address": "127.0.0.1", + "orport": 5003, + "socksport": 0, + "dirport": 7003, + "identity": "fyG+MaPfsktC+PscyWbZlnKXHJ4" + }, + "identity": { + "type": "ed25519", + "cert": "AQQABrr8AWlxroUvsO7RQFFS+JK7m+ns3LNjMtMJy3UCS4oKipBIAQAgBABXfJWBk4FpOXRLrYdnCzfNzDVYNUQS7vDHSoRtUIpoTpzjZGXWN1htRuEsoqeqdMh1jCTw/EuZoutyIcykN3ZvVeBR68cXhFX6ZOEWAe4VUkCJQ8e7Z/pD14NgmUXqiwQ=", + "master-key": "V3yVgZOBaTl0S62HZws3zcw1WDVEEu7wx0qEbVCKaE4" + }, + "platform": "Tor 0.3.5.10 on Linux", + "proto": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "published": { + "date": "2020-04-23", + "time": "13:03:17", + "stamp": 1587646997.0 + }, + "fingerprint": "7F21 BE31 A3DF B24B 42F8 FB1C C966 D996 7297 1C9E", + "uptime": 0, + "bandwidth": { + "avg": 1073741824, + "burst": 1073741824, + "observed": 177152 + }, + "extra-info-digest": { + "sha1": "C25E5E4C11398A3F812874ADCC12F3950C24B594", + "sha256": "+sT2tuFtt+Nk7pcrZ8IwNCE1kpZttDuN1oEo1qCyCBY" + }, + "onion-key": "MIGJAoGBAKo/yPehcMW+7t05pCn5afpDbjSQxlu3PfD+L0AhafCHNv0rTAQIdbj3YgQSAutk87HM8MUNPDDSgwvv0coMwfvgAe4reOvtikXoWJSsNq0c4/nZgYbofJms3mmyHAgp3wIf8BfIV9p5yfwPdrpwQMYpcB+WOeEk3zpwsZvK/xIlAgMBAAE=", + "signing-key": "MIGJAoGBAN7mRAhH47fns8JOFzkiNkWhdD/pc0BxamTvjJN2uKH/vaN/t9EmjD+ABmpNDCuGua1LfSxikFb2UuyH9jyiGBzOGOJwlTsz7GkqA4skw90u6vw8NrDQel3pILpv/4L8xGWDSadXJjxdvkiQILBM+i0/GVTffPIY1bAJUggTR3bPAgMBAAE=", + "onion-key-crosscert": "B8TGGDQ7SYSxeDQtk/bGocC2pE6JvA5yZzJ3NrTG6eYG2oGwjJMDMkzMn3CQ1Qid0HMienn/7yzOnrX+SUOICxapBV8FKtA1adgKwaV4ZNSiQCjrfhRgLXyoWZXPlbl7/bUnRgsbIg0DLiBeMBHhqyHPNBS0tQZS+2t8kLAJk6k=", + "ntor-onion-key-crosscert": { + "bit": 0, + "cert": "AQoABr1WAVd8lYGTgWk5dEuth2cLN83MNVg1RBLu8MdKhG1QimhOABVYWMeymwYxTzSTIG6Kb3A+d/Q9wUm4mo4PHFfB7C1gzpS3n3ZsUP2PoAwaVgXOABA0FZxu9RVZj0cuhKbp/QA=" + }, + "hidden-service-dir": true, + "ntor-onion-key": "Gfrvc+6ChY2HVlODeevwtCkYdngLpV+/Y/rUHb4qpFc=", + "policy": { + "type": "exitpattern", + "rules": [ + { + "type": "accept", + "pattern": "*:*" + } + ] + }, + "ipv6-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "tunnelled-dir-server": true, + "router-signatures": { + "ed25519": "TPBHM0+J5l7eGnTkszDzTiTqwQdRMNQKJ4a5HX4LTUNRdMHadDWn98xpD6TEk9PCX9JWUesckGMgCvQtQOehAA", + "rsa": "QtYjMswOniakAAwTrcRR+fpRj4hTIw+x9uagsKEveBL7mq3WzIBUb3AF9dHEQTbZUJ+8KZLEvU7ypmFBcyqh7jQMOhI4VCUesL1GmMLMBmAcHFw7O6Bgv0OW1bWmwErIgpay16p2vt8HVM7mBgN6cBoyzkIifoRyB3ummtM6KqA=" + }, + "flavor": "unflavored" + }, + { + "digest": "nqEUOJNLYa8/uoLqj4SWRRe1IXk", + "router": { + "nickname": "test001a", + "address": "127.0.0.1", + "orport": 5001, + "socksport": 0, + "dirport": 7001, + "identity": "/Vd+YTRcdGVeZ7R61X23NSUf634" + }, + "identity": { + "type": "ed25519", + "cert": "AQQABrr8ARflhB/X8ODKSsuPbmUgm2GGTlG9GUn/aMkbMb4vEZcvAQAgBADgYjFbHneixFVgYaTZHNOE+QJx0I2PWeNweFSXs0S7WPsaUwmUpD7F3cekyDuj/6gVQhfBVLp8WVtGBCkjbdMrNhyPFqtXRW8RgLB39wu2NvngdatO1Zvt+E5sDoFWLwA=", + "master-key": "4GIxWx53osRVYGGk2RzThPkCcdCNj1njcHhUl7NEu1g" + }, + "platform": "Tor 0.3.5.10 on Linux", + "proto": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "published": { + "date": "2020-04-23", + "time": "14:05:47", + "stamp": 1587650747.0 + }, + "fingerprint": "FD57 7E61 345C 7465 5E67 B47A D57D B735 251F EB7E", + "uptime": 1, + "bandwidth": { + "avg": 1073741824, + "burst": 1073741824, + "observed": 159744 + }, + "extra-info-digest": { + "sha1": "D2E5DF7EC379702F299EB7488DCF9588529A4BF5", + "sha256": "cmFu5HDDJlreMq7tmTaGDTIrS96K9GXJAjyiBSmlYIM" + }, + "caches-extra-info": true, + "onion-key": "MIGJAoGBALZfNLHagu0C7pRHN8XLZJ/X6U/HVXRmnGRXPEDzjri2bvkljoo9SevPGy33KNsztJW370dqvag0ECiMQskdKbI7YTpYfgYkPXL6PhpKWkN2JA/TNKeCZ4QueJke2I/eYdDqolWaFeO/gqVFZJVNuAEjuBM8LpW5kmApRnAE2hv1AgMBAAE=", + "signing-key": "MIGJAoGBAM2l5g/jG5MFSKyx5fUvGW8MORY8bj8hbkzYV8M4Urnp2IuO8zOUUou3KBkcM8ECnmsuAITwF3oZTxFVbJm9O0fMFmq/6WhBYeby2AYWCVWTNJIKf/h/iUsPIC8hbKLtemPjg9aw5bMaM//1X1Qw4Fj+yyEaUHA11+y9YMp9LL9jAgMBAAE=", + "onion-key-crosscert": "XKQM9Ifbsuw68pGTcnajaDiNJqXgNpk2t6pE4UZz7jTXPYiM87KJXWb5PNjI16wfEB2jjw44FHkC3zX+Vf7gKVptL65jPHRq4OMSmQufhudzPY5RfKOJBoMhxZ8nPbwOuTFMtZaIH50eDAtEgF6g5GTKlBrCBRVeIh0vDGlz3Yg=", + "ntor-onion-key-crosscert": { + "bit": 1, + "cert": "AQoABr1XAeBiMVsed6LEVWBhpNkc04T5AnHQjY9Z43B4VJezRLtYAEuC1rDzjUq7MgSfbK89i2aXoOe+RyMyMhF9LcYJht2Ny4NaS2cmKQKPuNomVf4jCF/HA+ZeZ6Uil1lwvbIsqwQ=" + }, + "hidden-service-dir": true, + "contact": "auth1@test.test", + "ntor-onion-key": "rHEisTL/3HGQ+BOgmG4C7hEbWCSiV1a6+0NaStxwUEM=", + "policy": { + "type": "exitpattern", + "rules": [ + { + "type": "reject", + "pattern": "*:*" + } + ] + }, + "tunnelled-dir-server": true, + "router-signatures": { + "ed25519": "hCXu7qGmcqldIWYmTdzRPbE0hpKWXgfw5TySqUoVY/D+zTbG/hSrEg0yS4sw8DQ7nLgXVtevkw7LY1gFIXwODg", + "rsa": "Do+H9dvTpuMLiipNWw9wgZGovZnI5lNgSuN+38bg0KA5wiBKH5Xe+V3nvdZa3gviTTRCJ8eG690xF96oYLdeDXOx2VarRsJrK/TcOgcXmuaqBhxZgl2vmbhiRBmSNRt+3HWOL227MX5uRL9LuGWcr0qYmL7BanKqYC6jWRmTQhw=" + }, + "flavor": "unflavored" + }, + { + "digest": "gnIFTS4rtcqqKOb0ZQSN6Y9A2GQ", + "router": { + "nickname": "test000a", + "address": "127.0.0.1", + "orport": 5000, + "socksport": 0, + "dirport": 7000, + "identity": "S7wZlq4DvwY/2ZA/WrIzydmmRoY" + }, + "identity": { + "type": "ed25519", + "cert": "AQQABrr8Adp+flIgMdM1u8bxfTBjyuLyzKjAZGc7BVdEGKfZvXC1AQAgBAADUvLpR/49FVX4J5UBAXUUo9gs2s+xZ65d53aH8osZfXGo6nw2oar6vrc0/xUOOIZLMRjH/EaIpCPWoCIScTTocq2igb2I505Lpux0fZtYCf9biQSxS4xsmcXv5tb+bQs=", + "master-key": "A1Ly6Uf+PRVV+CeVAQF1FKPYLNrPsWeuXed2h/KLGX0" + }, + "platform": "Tor 0.3.5.10 on Linux", + "proto": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "published": { + "date": "2020-04-23", + "time": "14:05:47", + "stamp": 1587650747.0 + }, + "fingerprint": "4BBC 1996 AE03 BF06 3FD9 903F 5AB2 33C9 D9A6 4686", + "uptime": 1, + "bandwidth": { + "avg": 1073741824, + "burst": 1073741824, + "observed": 224256 + }, + "extra-info-digest": { + "sha1": "6D9372261E444BF26567C9D781DFEAC9575EA00E", + "sha256": "8ublGY+pE+AERi/45al4GrzeJbwdeS7u3bacedxf3J8" + }, + "caches-extra-info": true, + "onion-key": "MIGJAoGBAMelRVut9suHj0F4uYyAZCsmtlrjRbdmZNvSy7oYbMpdRsKrmEhckXd10UIJOU5oI9+Kf+dWyggcs6/Nx4qar7hXF9nTf18wCYm+UbFtcNzCXLeseaZtDj/MbHa0+ptykcLFb1VkI4a7cAQ5qPlWUG0qpE/yUGa3kifRd78icwWVAgMBAAE=", + "signing-key": "MIGJAoGBAL51NXLR4J1WUreKNmwYVAJG3e0K7MNC/6mM3UK8CYg04AykYFchRcXZpqFR6JnvxCL603zQ5/AXozLOVPd1ioQKCnAb1AQSMJ0wn34B0CFkJTBJ1TMZGy8/k9L493V4xzS36cRLv5XHpQHiFCEC6R/qFqJm+IA9wi99a4NE4itdAgMBAAE=", + "onion-key-crosscert": "sEP32JDdsB7Tt0H8ObsAXHseNcsZqT9VvghhCAyS0sIGZtENE+bAm1zvQqeT/09I7PIaivX2H4iEl2L5abgip+tGM+/o+SOyHSwLuNK4AXXE01Q8Jweg/iFxW3FyoMt3RUM9F3a9vzCETjfXb9Z57p+JRMk5zDwgjrDFoMhD/tA=", + "ntor-onion-key-crosscert": { + "bit": 1, + "cert": "AQoABr1XAQNS8ulH/j0VVfgnlQEBdRSj2Czaz7Fnrl3ndofyixl9AGwgu2vZXabOLBQkdCzqAPX+WPxJuz/vb7eOD8PE8p3KVUK1gZrCFjsqKVgxg5LzjtWRz6jTtTwj3aXkMbbR1w4=" + }, + "hidden-service-dir": true, + "contact": "auth0@test.test", + "ntor-onion-key": "3nwr7McqePaQrbawf0Lkuj72l61AreUJ4ulxjY1grFg=", + "policy": { + "type": "exitpattern", + "rules": [ + { + "type": "reject", + "pattern": "*:*" + } + ] + }, + "tunnelled-dir-server": true, + "router-signatures": { + "ed25519": "ddERq8NwwXQqCECtbhNLLGiJDLELtasGJ8AsXGzfSAKpepO7HDpFSrLp1SIbqVwA4E+XAC1ecC0UUFsn0UttDw", + "rsa": "S6egsvA+DEU5J7hAPwTkGth2jCQXx2ACYIJjBTYalm6TutOgSsNRItq52SwUXyxGHcFscDarXSMpwb6Ib0TIvn9KWJVsK9RcYpPudMiFjc5vEqf0J2UmW5c4CZ0agjbDbGMsBQW+YppPf3UjvxxoAxx/GcK7C0dz+QtgNeJAr0A=" + }, + "flavor": "unflavored" + }, + { + "digest": "csdBDdGdl0KWL6mMlgpqB6W5me0", + "router": { + "nickname": "test004r", + "address": "127.0.0.1", + "orport": 5004, + "socksport": 0, + "dirport": 7004, + "identity": "PE+93pE5LeQheWR29bZjhX3zqnQ" + }, + "identity": { + "type": "ed25519", + "cert": "AQQABrr8AYoG/9r512Cml9ZeRg/pkYe4g9q88zoNiZaHBHpUxUaZAQAgBABnv39irWirydPzZIoJ1Xt/zDKh+fnuHYZUU1C+vaQCe43URBPKgztmDxfGlj/lbCMpw9H7RRHx/mhX+eGrcisx7tPSsyO3mOAu5T68CC2BxSncmpjjoWm/g2vwTa6L2gE=", + "master-key": "Z79/Yq1oq8nT82SKCdV7f8wyofn57h2GVFNQvr2kAns" + }, + "platform": "Tor 0.3.5.10 on Linux", + "proto": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "published": { + "date": "2020-04-23", + "time": "13:03:18", + "stamp": 1587646998.0 + }, + "fingerprint": "3C4F BDDE 9139 2DE4 2179 6476 F5B6 6385 7DF3 AA74", + "uptime": 0, + "bandwidth": { + "avg": 1073741824, + "burst": 1073741824, + "observed": 174080 + }, + "extra-info-digest": { + "sha1": "E5E2234DF477A870F6B11ED0887CA785B7CFCC3C", + "sha256": "NVVQEW9XoRTxhzZ4GaynkC8NNiptVwqxqKA+fggtjYg" + }, + "onion-key": "MIGJAoGBANXWu7tNGp/m326Ua3ZBr78lRfPD2xPn+R5zU/SjWa32/QpkLPyloJt7XzI1JGxMdU+bVgOXuprW51nm+gtfbZ64g6DFFuBEmAEOVfqgCRfgz3yx5J0f9WchdfoXqbD2oYxleVZ5qd0VeUve+1uKsB1t6oOIhBbW5VwqhmNbGL63AgMBAAE=", + "signing-key": "MIGJAoGBAKLhsoHCOYO7izilNEnzx2K7zHF7QiGTjXYtlCE+nsa5vSDys0mjwiKoAzsSiMCmMwhHd7/DQLDRwuW9qyzc26k0sPqANe8QLb5URRrEBDIgajhzVw7gZGxM2+tgjl14sU+okyreCLRb3WorEIG4TdN6b6fYZrBbjsaaBhtAqyMBAgMBAAE=", + "onion-key-crosscert": "LH8XjjKXgCzdtbutJqWg/RsqrKoL2b8AtfyQC5E31nN9ZDetDKzYyY/a3lXR0nxdrUsm6bOzDNt67YQYCJ8hlw51BDC1Jue2rmvLhqm+GHTGMIWLmSTYFPjUa0KWziTA35pi3pXStr7oOgyoVt5OQ/Byidv1U1aVL87nOHHPye4=", + "ntor-onion-key-crosscert": { + "bit": 0, + "cert": "AQoABr1WAWe/f2KtaKvJ0/NkignVe3/MMqH5+e4dhlRTUL69pAJ7AKSkGEdPDl632LhYLVCtGT7aDzr6QRfHdkd5aWfAFbwVUj5K4K85AGyrLz97nCCEV2t940kkcmd07p/0Vx4XWA0=" + }, + "hidden-service-dir": true, + "ntor-onion-key": "GXljNcag/Y28zUyMWvwzoGTrY93JtUcNW+E5nx49+Wg=", + "policy": { + "type": "exitpattern", + "rules": [ + { + "type": "accept", + "pattern": "*:*" + } + ] + }, + "ipv6-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "tunnelled-dir-server": true, + "router-signatures": { + "ed25519": "KstXDyPHMNcEcL/zai9sQfwXcAdZ6VkPU76mwJX7IvKGbUaVFozIeYnDt3Oa0Hd2wSzMK4nr67XaW3uDvpNQBQ", + "rsa": "VVDAWwWFfA7hiSTbaTrslICU14AIO/cF0/tsBGtv2wyBmxSlW9yYARvLKkiGPfXnFYqSwH4Nd/MvadF2E+dkYSYsnPYqeFxN9mKN2csNeF3PmeL/1254bQx8RKbBy8pi4mnkeBAA6OqOa44CTkMQfP4A6iSsGpbKrarslHo9uEg=" + }, + "flavor": "unflavored" + }, + { + "digest": "E2Xey5uxMfoMjewSace3TG/+Id8", + "router": { + "nickname": "test002a", + "address": "127.0.0.1", + "orport": 5002, + "socksport": 0, + "dirport": 7002, + "identity": "gwTBYQWI3XQvsEkcal8NUySwsVA" + }, + "identity": { + "type": "ed25519", + "cert": "AQQABrr8AeOCME3/p+dJeC85a+wrBmqz26UzrCRo6Xe8e3SJCQ3LAQAgBACUNtcdVQCMQISKMv6tCyZNrGTAAekCxxrzW/4d39ONGBafrqeRTbGsrdq7TcIyjdxdvNTlBzPv2IRArJ9acR3e4ob/yLUKu1AkAFD1A+jkqEBl0+uMT7a4Pr6eapH8ZgI=", + "master-key": "lDbXHVUAjECEijL+rQsmTaxkwAHpAsca81v+Hd/TjRg" + }, + "platform": "Tor 0.3.5.10 on Linux", + "proto": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "published": { + "date": "2020-04-23", + "time": "14:05:47", + "stamp": 1587650747.0 + }, + "fingerprint": "8304 C161 0588 DD74 2FB0 491C 6A5F 0D53 24B0 B150", + "uptime": 1, + "bandwidth": { + "avg": 1073741824, + "burst": 1073741824, + "observed": 237568 + }, + "extra-info-digest": { + "sha1": "51BB38ECA5F77F18D52F460B6A00A4C411081F72", + "sha256": "CrUyVdL0IJHxiasJEJN09E7RZN9wc8wRYe2kOsZiFrg" + }, + "caches-extra-info": true, + "onion-key": "MIGJAoGBAOSrVSP4UbX152npOD2+DcZsHtLCEkutdMxM/8+XCjrCrK8h4lo3GkBGHrA5piJadIUwWJzzmWjx20k8vTXvFQDAnVuBTz+QTJU/QrM5DamNhHDY5kwKyt8vCyHIb7TXIeKlaBaOMGuebH/37ePZqzEvwAU31TfADT35od1FtBn7AgMBAAE=", + "signing-key": "MIGJAoGBAKFkXl9LlavRpeM9Ku2Qg4Np5SRrnjkgLwDzO+8iHTV9AryCfDvHJ28kCl3FouvEe5XOY95bOyMVY94XSjMjRbcrn+srmurAedCg8RulfZf83z1Bt/CpsrZ3fUH7WJiFPBY+J/0OKjoYenZpYf1qIONoHU6x+qmtg1smMuZUa2VzAgMBAAE=", + "onion-key-crosscert": "4TJXl8rbc6eGJx9yDWJUiEI1jhT+HZ2FEYgTx/0KcJscR48UNzYd/koTWJgWJ8L6+M9JHqXi6WUJfqPZvpignQ7k++KWe74XCZ1n+Qncbx3hQkHMqWpAO8NYeGRG9qZzVoE/chVH3DeWPTLSEx48vUuzLarnQ3Rwm9hc1RoCT3Y=", + "ntor-onion-key-crosscert": { + "bit": 0, + "cert": "AQoABr1XAZQ21x1VAIxAhIoy/q0LJk2sZMAB6QLHGvNb/h3f040YAEb4mIEsNJbi1ackkJsDkPkNrn40m0ErB5Nvhu/VDb2SJ86O36CRX/Y8vOiu2AWRVIEkQ1bRBt6CR0a7wEzw/gw=" + }, + "hidden-service-dir": true, + "contact": "auth2@test.test", + "ntor-onion-key": "tWQ0zfFeYziPs/nZ6qovq2cb9N1xnDT5tn/iZ6+kbSM=", + "policy": { + "type": "exitpattern", + "rules": [ + { + "type": "reject", + "pattern": "*:*" + } + ] + }, + "tunnelled-dir-server": true, + "router-signatures": { + "ed25519": "OVaWiTk3zNj3dM0SpS095xzYZN1B3BP9C//L0UbI5ter/1Yszg5df8sQtdlEdcfc3q5o2/HaAvwy44ggYDkWDA", + "rsa": "N5wMY7P6q9zQwKbBfqArMnnl1xE6Q5dLicXNx1cvEn+VBuJwFFlqzYV/vzM7bvBwdTHlVRxxx7MKaVpFuPJKLeezYLArWMnJYalWtfFd/IKBfH8ykhKkKAaPw16XmyF1pt9iQ91c15ogaHZeh/f9bzl9ej1YKleVhJQ8nvM46l4=" + }, + "flavor": "unflavored" + }, + { + "digest": "BZBtDoo3FMkyFg5trmoZgcHWH3w", + "router": { + "nickname": "test007r", + "address": "127.0.0.1", + "orport": 5007, + "socksport": 0, + "dirport": 7007, + "identity": "mXQh1rmHcqj+uqptfh158WA5bfo" + }, + "identity": { + "type": "ed25519", + "cert": "AQQABrr8AWk/NSWnFyEYyp3OyTZVWud6VJ8FuXLFzpmatS+wLmHPAQAgBADjQWfNJ0X+i0i09tOjC1wNLv5TOoDDqD2RuamkV643eNNQ7/uevaTjIY0MpDS7SwP3Oq74X1FePV8jtgI7ql8Gvr/W5zZgmsc2z7hdBn+TaETPlimjU91/3CbHTX3+1QU=", + "master-key": "40FnzSdF/otItPbTowtcDS7+UzqAw6g9kbmppFeuN3g" + }, + "platform": "Tor 0.3.5.10 on Linux", + "proto": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "published": { + "date": "2020-04-23", + "time": "13:03:18", + "stamp": 1587646998.0 + }, + "fingerprint": "9974 21D6 B987 72A8 FEBA AA6D 7E1D 79F1 6039 6DFA", + "uptime": 0, + "bandwidth": { + "avg": 1073741824, + "burst": 1073741824, + "observed": 189440 + }, + "extra-info-digest": { + "sha1": "56FE973CD5A174114589264751D266E281A38C48", + "sha256": "TzShXNTaP17YBiUr17G5yZEdLA35HiqNMMF7Y8KR7fw" + }, + "onion-key": "MIGJAoGBALudw0y5z2HX0Yq/jrqjt2lk/GgtuDAIlGaeCa+3Y6Wz/N5UkFfPFb2b6Rlbgih5IsStFbsI9byY+TuTbQVrJJoSzYxbaOJkNqBxItfWy21x0In0k23FgdjhJtb+CKU3pB3Jtr6ggQ6YiO+RDuyBOx1tpckxxVzD8gqWuOldKrRXAgMBAAE=", + "signing-key": "MIGJAoGBAJ/xoMb6ioCY0tnjCceKn0QDothQfRO0KDvIJWae/mV5nsOTx4PNMqnb+CQ3S2fw6P6KouIe+kD2RbmB1eBWIq5hvqrRAFhgjDZl7TvVb7HmdZzDNzYZIf/4ugvOYypDejtvusV0POxkkm4+Fl+zhKt8AOXDTuEAexxmZZVBjHPJAgMBAAE=", + "onion-key-crosscert": "qggW8Tvd1ruGUDFYT9llbVvJ57l50JKJd9fBrhfaG9/ddLySWNVNGQ80+azoKqumZEb/PF6kmkJJfywUfsbz5dbw0Hm2VROuK5RlHzw7hjjZZYU/f+egiyIQKHOXI9lN9Vu9Y55vTpFnJLyIxNeps3n33LYsoIBktfCCZI7qmmI=", + "ntor-onion-key-crosscert": { + "bit": 1, + "cert": "AQoABr1WAeNBZ80nRf6LSLT206MLXA0u/lM6gMOoPZG5qaRXrjd4ADNCsVBg3PAANCoTDPbwvMrd0TlZO5QfflO6S22BBjPSCCqS/Sx/7nBT3an2cfKq0k4q+osZOhogpzFXEYf8/gY=" + }, + "hidden-service-dir": true, + "ntor-onion-key": "PF0gSkZSg5tg/cpO+COBy4MuOBUFy0i24UN1ANjwYBQ=", + "policy": { + "type": "exitpattern", + "rules": [ + { + "type": "accept", + "pattern": "*:*" + } + ] + }, + "ipv6-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "tunnelled-dir-server": true, + "router-signatures": { + "ed25519": "y17o7UoOY6iU8tQeAYlmfyB28QyBGHRq2eAYMNBatpBnRHqrEQOCi19T9T0OHXsth88IIN17dSde9Rz8okW0Bg", + "rsa": "FDz5y5IDxnBZXOV3dpPTZ5cFKcz5r5N3hwWrf5PCEIx9sL4SWgM6MxtVCDPmcAG9ZFXettHOFUPzqQ30ARgMy5wUhk5pvH7QHp7rsJmQ5rqa8ph26KR4tsNOB8pZm9W7N7KhMfC5/dcMviLEOBSfaeG1+BkPjF4ePv7TrK47zc8=" + }, + "flavor": "unflavored" + }, + { + "digest": "AACG/Oo9Q3PdYwer8Amxufwv44c", + "router": { + "nickname": "test005r", + "address": "127.0.0.1", + "orport": 5005, + "socksport": 0, + "dirport": 7005, + "identity": "nu8OBtyhPu7L2+p0cdzQSZc5hbA" + }, + "identity": { + "type": "ed25519", + "cert": "AQQABrr8AWE1SUv5e7hKhWzVlBXH98Gfab6Y9h55g631DH7y+TTHAQAgBABFUPh75mkg7mEkVZnWZC89umnxiIBJKx0zfH55QM9IYxvs7AWek+i9Ifxwz2VxTrh3eVOXq1Y/6Bdmj5lw96VTDzftYwciyZkZntYZXCdVYavT7wCt+/e7py1SX3G2fQ4=", + "master-key": "RVD4e+ZpIO5hJFWZ1mQvPbpp8YiASSsdM3x+eUDPSGM" + }, + "platform": "Tor 0.3.5.10 on Linux", + "proto": { + "Cons": [ + 1, + 2 + ], + "Desc": [ + 1, + 2 + ], + "DirCache": [ + 1, + 2 + ], + "HSDir": [ + 1, + 2 + ], + "HSIntro": [ + 3, + 4 + ], + "HSRend": [ + 1, + 2 + ], + "Link": [ + 1, + 2, + 3, + 4, + 5 + ], + "LinkAuth": [ + 1, + 3 + ], + "Microdesc": [ + 1, + 2 + ], + "Relay": [ + 1, + 2 + ] + }, + "published": { + "date": "2020-04-23", + "time": "13:03:18", + "stamp": 1587646998.0 + }, + "fingerprint": "9EEF 0E06 DCA1 3EEE CBDB EA74 71DC D049 9739 85B0", + "uptime": 0, + "bandwidth": { + "avg": 1073741824, + "burst": 1073741824, + "observed": 189440 + }, + "extra-info-digest": { + "sha1": "820DBEF5FC8FDD057F1FE574D0CCCF1F41EBEC8F", + "sha256": "dVw7XxBxmgqk5jH2q3O5rvt3hNnZSj4v+IHnP74FXkk" + }, + "onion-key": "MIGJAoGBAMXGxwPQGH9t9pfQSnqrJd7r4ppFaalVCd+HROsS6CA/znvpf/2b9uer5qucAUYRL0Uhr0o6J0TldxSd3d8WY5Lwn/ZrJ7h4U6SDV024BxqW7R4OMT5ISFgh89DQN6p1g8mMslGktwZUrCGeEhL32WQAEB/so5wnv7Aa6yYWBDZbAgMBAAE=", + "signing-key": "MIGJAoGBALlb0Bwo4WAKyF7hHRv3bD/MSf2k77zHB1CF4a8CocSqDcbqscnQf1JwzL/UFzhTcCL24schDUE7itY50bkBTRZFo9XG2giEm5nNkAe8PuHy1GK5HZK0uRWwT3P7B+/PYgw0EQm0x7evDp2QW/I7DLnQCJwY7Ltde013VcEM1W+1AgMBAAE=", + "onion-key-crosscert": "MFKBENIMaIWMa9rJhlAcNMdy+SJnOJ2vCfzkqC8JezOCrJKv1yAQVGCGihM2jre6H1aLMqG7JTScpQ138q0pMJObvv6CIjRFiiy9KB43oufbjGYmVIkLpvQy/T21mgc+PW4qWhNQHng8xDG2Wb6pBhwUASK31g32p3LXRj8P1vg=", + "ntor-onion-key-crosscert": { + "bit": 0, + "cert": "AQoABr1WAUVQ+HvmaSDuYSRVmdZkLz26afGIgEkrHTN8fnlAz0hjACh5/LiYnwvSwy3bgnk7olcN+Wzou7TAqgKZ0Or3TNcxx/v5tLpaaUJ9i4MZAmlNg+IhKhuVKW6CICb05F54oQo=" + }, + "hidden-service-dir": true, + "ntor-onion-key": "pwiw7FWsyJXlLyAa7kOTSyKgaqG3xV+stOE+uGEvsE0=", + "policy": { + "type": "exitpattern", + "rules": [ + { + "type": "accept", + "pattern": "*:*" + } + ] + }, + "ipv6-policy": { + "type": "accept", + "PortList": [ + [ + 1, + 65535 + ] + ] + }, + "tunnelled-dir-server": true, + "router-signatures": { + "ed25519": "SrUQnmdUxyWERZM6KWhjEheb0A7HLQSjGAi3DbhCtuvQ6Ho4RDHbsB5NpzOL6Xu/lpW3YBORnBzkBxQOT7QPDg", + "rsa": "PIrLtjkjB73TqQRsxwIGfZxaUtnDedKnrvs4181L+mBL51uoN248Q81UrtJkCK8nU1qIlxGT++dO3dxVp/KbS8x65/6YXXtynb/hoQBW7L8KkV9E4kabzWT5jAlzggHvE8AVQplUEw8QUga/WmkG+FOvYGenYfKgeudUdSYQsR8=" + }, + "flavor": "unflavored" + } + ] +} \ No newline at end of file diff --git a/data/descriptors_raw.txt b/data/descriptors_raw.txt new file mode 100644 index 0000000..4dda544 --- /dev/null +++ b/data/descriptors_raw.txt @@ -0,0 +1,411 @@ +router test006r 127.0.0.1 5006 0 7006 +identity-ed25519 +-----BEGIN ED25519 CERT----- +AQQABrr8AW0IbAOjuA1MlGc16R5kfrmeMZqt/wWNV/qagfCLhPYrAQAgBADdBEPY +fgxo66WbjVPzrlhrj/El87q80xKX7J85aSwKijmSLlwSWmn0VMyIdLVhUIzpi8T8 +6kCAEgI3kWxVuYxfrVnpQsyeXsxK1HFGiNJ0IwumEO17D2uoUSeDUQ5aEAE= +-----END ED25519 CERT----- +master-key-ed25519 3QRD2H4MaOulm41T865Ya4/xJfO6vNMSl+yfOWksCoo +platform Tor 0.3.5.10 on Linux +proto Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +published 2020-04-23 13:03:18 +fingerprint 0D96 6487 7525 09C8 1CC4 7A94 11BD 87A3 392C 0037 +uptime 0 +bandwidth 1073741824 1073741824 189440 +extra-info-digest 4D6DD8AE820EA87C2F5D92FEB45659B2EB2D8B23 8H0dw2JR42GgubX7ukH3G1c2vdvadQwWQNsZAefr0iI +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBALS2aufFNN2vT315425F+PwmNV8WILh08q3aEVmcn2qpny12d9S2KA/t +U//ZlJhguqVTV1MMY52FstR0NKETDD9pdzHUFSsFCOzLhOzSdNPRrp7+ldZCV+mr +md2i2Dob3dVcyZP8iGORSQDR0D6c70Cfv2jM9LW5FTnaOZ3Dld5LAgMBAAE= +-----END RSA PUBLIC KEY----- +signing-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAPzna9Lyc/l6oPWsS6wbMeiN29QyVFCNx7KlYc/1D8XCjoDhnRudt0l6 +lhfsRdKcTYRiWk2+zHx1mrLUK7iWEEdNkO3uzIMDBlGgjluyPRSmIY1j49KFV9ef +mHIoa1Jh4xY5J4OBfq6YiRztqEGXVw26yo+aUxkYhrQwtHdpxhXBAgMBAAE= +-----END RSA PUBLIC KEY----- +onion-key-crosscert +-----BEGIN CROSSCERT----- +Hkuje2pP0ApipboOWs2lSHnNm3kDOd5p7isgR/yBRYSFQsuRHrQllxMkL+bNZ19C +iglZMp3cFCA7PzvIhswzQ18zHnjtW38x7GD1lK3tbbzjhCpdSfwAd0scGwAfkvV2 +lcnFlfS16g1szg3iBwphOkRsF+dV2FCgRO+knpZNVo8= +-----END CROSSCERT----- +ntor-onion-key-crosscert 0 +-----BEGIN ED25519 CERT----- +AQoABr1WAd0EQ9h+DGjrpZuNU/OuWGuP8SXzurzTEpfsnzlpLAqKAKigoipXObaM +Lxcxf4e6NLwM7NzhrQ3pYt1sbkuywsAwVSdTJpmK7u3ZJaG5We8wkmTjYzCiN+5X +V/zKn/hV2gM= +-----END ED25519 CERT----- +hidden-service-dir +ntor-onion-key aWrb8rS++QFQnEDvEnSWFQ5Wh8q7JGYY90bkx05LfCM= +accept *:* +ipv6-policy accept 1-65535 +tunnelled-dir-server +router-sig-ed25519 KjlTgXjrJyfmlCvHHTzbN7su0s209DwWkGRLOrj8P3wytuFMCMVwtVm0FUzfzRGP7cdrXU1yoTReDTkVNRS2Aw +router-signature +-----BEGIN SIGNATURE----- +pMnn6YA9DlPZtqzrkCqbUUbwzOdb7v3Uotg8Q8QemAwN44TAIl4Bp7wdwAvokd2G +Otbvln/M5SlsB6f8Qej8pYGQjBX4PTS2FdkWPINZRcAOnDWIkTxV7KNmgf1/esuZ +bO/BPXNCIJDjFwxgnDVxsTC9z1uGMvj7B1M7uu0v6B8= +-----END SIGNATURE----- +router test003r 127.0.0.1 5003 0 7003 +identity-ed25519 +-----BEGIN ED25519 CERT----- +AQQABrr8AWlxroUvsO7RQFFS+JK7m+ns3LNjMtMJy3UCS4oKipBIAQAgBABXfJWB +k4FpOXRLrYdnCzfNzDVYNUQS7vDHSoRtUIpoTpzjZGXWN1htRuEsoqeqdMh1jCTw +/EuZoutyIcykN3ZvVeBR68cXhFX6ZOEWAe4VUkCJQ8e7Z/pD14NgmUXqiwQ= +-----END ED25519 CERT----- +master-key-ed25519 V3yVgZOBaTl0S62HZws3zcw1WDVEEu7wx0qEbVCKaE4 +platform Tor 0.3.5.10 on Linux +proto Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +published 2020-04-23 13:03:17 +fingerprint 7F21 BE31 A3DF B24B 42F8 FB1C C966 D996 7297 1C9E +uptime 0 +bandwidth 1073741824 1073741824 177152 +extra-info-digest C25E5E4C11398A3F812874ADCC12F3950C24B594 +sT2tuFtt+Nk7pcrZ8IwNCE1kpZttDuN1oEo1qCyCBY +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAKo/yPehcMW+7t05pCn5afpDbjSQxlu3PfD+L0AhafCHNv0rTAQIdbj3 +YgQSAutk87HM8MUNPDDSgwvv0coMwfvgAe4reOvtikXoWJSsNq0c4/nZgYbofJms +3mmyHAgp3wIf8BfIV9p5yfwPdrpwQMYpcB+WOeEk3zpwsZvK/xIlAgMBAAE= +-----END RSA PUBLIC KEY----- +signing-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAN7mRAhH47fns8JOFzkiNkWhdD/pc0BxamTvjJN2uKH/vaN/t9EmjD+A +BmpNDCuGua1LfSxikFb2UuyH9jyiGBzOGOJwlTsz7GkqA4skw90u6vw8NrDQel3p +ILpv/4L8xGWDSadXJjxdvkiQILBM+i0/GVTffPIY1bAJUggTR3bPAgMBAAE= +-----END RSA PUBLIC KEY----- +onion-key-crosscert +-----BEGIN CROSSCERT----- +B8TGGDQ7SYSxeDQtk/bGocC2pE6JvA5yZzJ3NrTG6eYG2oGwjJMDMkzMn3CQ1Qid +0HMienn/7yzOnrX+SUOICxapBV8FKtA1adgKwaV4ZNSiQCjrfhRgLXyoWZXPlbl7 +/bUnRgsbIg0DLiBeMBHhqyHPNBS0tQZS+2t8kLAJk6k= +-----END CROSSCERT----- +ntor-onion-key-crosscert 0 +-----BEGIN ED25519 CERT----- +AQoABr1WAVd8lYGTgWk5dEuth2cLN83MNVg1RBLu8MdKhG1QimhOABVYWMeymwYx +TzSTIG6Kb3A+d/Q9wUm4mo4PHFfB7C1gzpS3n3ZsUP2PoAwaVgXOABA0FZxu9RVZ +j0cuhKbp/QA= +-----END ED25519 CERT----- +hidden-service-dir +ntor-onion-key Gfrvc+6ChY2HVlODeevwtCkYdngLpV+/Y/rUHb4qpFc= +accept *:* +ipv6-policy accept 1-65535 +tunnelled-dir-server +router-sig-ed25519 TPBHM0+J5l7eGnTkszDzTiTqwQdRMNQKJ4a5HX4LTUNRdMHadDWn98xpD6TEk9PCX9JWUesckGMgCvQtQOehAA +router-signature +-----BEGIN SIGNATURE----- +QtYjMswOniakAAwTrcRR+fpRj4hTIw+x9uagsKEveBL7mq3WzIBUb3AF9dHEQTbZ +UJ+8KZLEvU7ypmFBcyqh7jQMOhI4VCUesL1GmMLMBmAcHFw7O6Bgv0OW1bWmwErI +gpay16p2vt8HVM7mBgN6cBoyzkIifoRyB3ummtM6KqA= +-----END SIGNATURE----- +router test001a 127.0.0.1 5001 0 7001 +identity-ed25519 +-----BEGIN ED25519 CERT----- +AQQABrr8ARflhB/X8ODKSsuPbmUgm2GGTlG9GUn/aMkbMb4vEZcvAQAgBADgYjFb +HneixFVgYaTZHNOE+QJx0I2PWeNweFSXs0S7WPsaUwmUpD7F3cekyDuj/6gVQhfB +VLp8WVtGBCkjbdMrNhyPFqtXRW8RgLB39wu2NvngdatO1Zvt+E5sDoFWLwA= +-----END ED25519 CERT----- +master-key-ed25519 4GIxWx53osRVYGGk2RzThPkCcdCNj1njcHhUl7NEu1g +platform Tor 0.3.5.10 on Linux +proto Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +published 2020-04-23 14:05:47 +fingerprint FD57 7E61 345C 7465 5E67 B47A D57D B735 251F EB7E +uptime 1 +bandwidth 1073741824 1073741824 159744 +extra-info-digest D2E5DF7EC379702F299EB7488DCF9588529A4BF5 cmFu5HDDJlreMq7tmTaGDTIrS96K9GXJAjyiBSmlYIM +caches-extra-info +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBALZfNLHagu0C7pRHN8XLZJ/X6U/HVXRmnGRXPEDzjri2bvkljoo9SevP +Gy33KNsztJW370dqvag0ECiMQskdKbI7YTpYfgYkPXL6PhpKWkN2JA/TNKeCZ4Qu +eJke2I/eYdDqolWaFeO/gqVFZJVNuAEjuBM8LpW5kmApRnAE2hv1AgMBAAE= +-----END RSA PUBLIC KEY----- +signing-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAM2l5g/jG5MFSKyx5fUvGW8MORY8bj8hbkzYV8M4Urnp2IuO8zOUUou3 +KBkcM8ECnmsuAITwF3oZTxFVbJm9O0fMFmq/6WhBYeby2AYWCVWTNJIKf/h/iUsP +IC8hbKLtemPjg9aw5bMaM//1X1Qw4Fj+yyEaUHA11+y9YMp9LL9jAgMBAAE= +-----END RSA PUBLIC KEY----- +onion-key-crosscert +-----BEGIN CROSSCERT----- +XKQM9Ifbsuw68pGTcnajaDiNJqXgNpk2t6pE4UZz7jTXPYiM87KJXWb5PNjI16wf +EB2jjw44FHkC3zX+Vf7gKVptL65jPHRq4OMSmQufhudzPY5RfKOJBoMhxZ8nPbwO +uTFMtZaIH50eDAtEgF6g5GTKlBrCBRVeIh0vDGlz3Yg= +-----END CROSSCERT----- +ntor-onion-key-crosscert 1 +-----BEGIN ED25519 CERT----- +AQoABr1XAeBiMVsed6LEVWBhpNkc04T5AnHQjY9Z43B4VJezRLtYAEuC1rDzjUq7 +MgSfbK89i2aXoOe+RyMyMhF9LcYJht2Ny4NaS2cmKQKPuNomVf4jCF/HA+ZeZ6Ui +l1lwvbIsqwQ= +-----END ED25519 CERT----- +hidden-service-dir +contact auth1@test.test +ntor-onion-key rHEisTL/3HGQ+BOgmG4C7hEbWCSiV1a6+0NaStxwUEM= +reject *:* +tunnelled-dir-server +router-sig-ed25519 hCXu7qGmcqldIWYmTdzRPbE0hpKWXgfw5TySqUoVY/D+zTbG/hSrEg0yS4sw8DQ7nLgXVtevkw7LY1gFIXwODg +router-signature +-----BEGIN SIGNATURE----- +Do+H9dvTpuMLiipNWw9wgZGovZnI5lNgSuN+38bg0KA5wiBKH5Xe+V3nvdZa3gvi +TTRCJ8eG690xF96oYLdeDXOx2VarRsJrK/TcOgcXmuaqBhxZgl2vmbhiRBmSNRt+ +3HWOL227MX5uRL9LuGWcr0qYmL7BanKqYC6jWRmTQhw= +-----END SIGNATURE----- +router test000a 127.0.0.1 5000 0 7000 +identity-ed25519 +-----BEGIN ED25519 CERT----- +AQQABrr8Adp+flIgMdM1u8bxfTBjyuLyzKjAZGc7BVdEGKfZvXC1AQAgBAADUvLp +R/49FVX4J5UBAXUUo9gs2s+xZ65d53aH8osZfXGo6nw2oar6vrc0/xUOOIZLMRjH +/EaIpCPWoCIScTTocq2igb2I505Lpux0fZtYCf9biQSxS4xsmcXv5tb+bQs= +-----END ED25519 CERT----- +master-key-ed25519 A1Ly6Uf+PRVV+CeVAQF1FKPYLNrPsWeuXed2h/KLGX0 +platform Tor 0.3.5.10 on Linux +proto Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +published 2020-04-23 14:05:47 +fingerprint 4BBC 1996 AE03 BF06 3FD9 903F 5AB2 33C9 D9A6 4686 +uptime 1 +bandwidth 1073741824 1073741824 224256 +extra-info-digest 6D9372261E444BF26567C9D781DFEAC9575EA00E 8ublGY+pE+AERi/45al4GrzeJbwdeS7u3bacedxf3J8 +caches-extra-info +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAMelRVut9suHj0F4uYyAZCsmtlrjRbdmZNvSy7oYbMpdRsKrmEhckXd1 +0UIJOU5oI9+Kf+dWyggcs6/Nx4qar7hXF9nTf18wCYm+UbFtcNzCXLeseaZtDj/M +bHa0+ptykcLFb1VkI4a7cAQ5qPlWUG0qpE/yUGa3kifRd78icwWVAgMBAAE= +-----END RSA PUBLIC KEY----- +signing-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAL51NXLR4J1WUreKNmwYVAJG3e0K7MNC/6mM3UK8CYg04AykYFchRcXZ +pqFR6JnvxCL603zQ5/AXozLOVPd1ioQKCnAb1AQSMJ0wn34B0CFkJTBJ1TMZGy8/ +k9L493V4xzS36cRLv5XHpQHiFCEC6R/qFqJm+IA9wi99a4NE4itdAgMBAAE= +-----END RSA PUBLIC KEY----- +onion-key-crosscert +-----BEGIN CROSSCERT----- +sEP32JDdsB7Tt0H8ObsAXHseNcsZqT9VvghhCAyS0sIGZtENE+bAm1zvQqeT/09I +7PIaivX2H4iEl2L5abgip+tGM+/o+SOyHSwLuNK4AXXE01Q8Jweg/iFxW3FyoMt3 +RUM9F3a9vzCETjfXb9Z57p+JRMk5zDwgjrDFoMhD/tA= +-----END CROSSCERT----- +ntor-onion-key-crosscert 1 +-----BEGIN ED25519 CERT----- +AQoABr1XAQNS8ulH/j0VVfgnlQEBdRSj2Czaz7Fnrl3ndofyixl9AGwgu2vZXabO +LBQkdCzqAPX+WPxJuz/vb7eOD8PE8p3KVUK1gZrCFjsqKVgxg5LzjtWRz6jTtTwj +3aXkMbbR1w4= +-----END ED25519 CERT----- +hidden-service-dir +contact auth0@test.test +ntor-onion-key 3nwr7McqePaQrbawf0Lkuj72l61AreUJ4ulxjY1grFg= +reject *:* +tunnelled-dir-server +router-sig-ed25519 ddERq8NwwXQqCECtbhNLLGiJDLELtasGJ8AsXGzfSAKpepO7HDpFSrLp1SIbqVwA4E+XAC1ecC0UUFsn0UttDw +router-signature +-----BEGIN SIGNATURE----- +S6egsvA+DEU5J7hAPwTkGth2jCQXx2ACYIJjBTYalm6TutOgSsNRItq52SwUXyxG +HcFscDarXSMpwb6Ib0TIvn9KWJVsK9RcYpPudMiFjc5vEqf0J2UmW5c4CZ0agjbD +bGMsBQW+YppPf3UjvxxoAxx/GcK7C0dz+QtgNeJAr0A= +-----END SIGNATURE----- +router test004r 127.0.0.1 5004 0 7004 +identity-ed25519 +-----BEGIN ED25519 CERT----- +AQQABrr8AYoG/9r512Cml9ZeRg/pkYe4g9q88zoNiZaHBHpUxUaZAQAgBABnv39i +rWirydPzZIoJ1Xt/zDKh+fnuHYZUU1C+vaQCe43URBPKgztmDxfGlj/lbCMpw9H7 +RRHx/mhX+eGrcisx7tPSsyO3mOAu5T68CC2BxSncmpjjoWm/g2vwTa6L2gE= +-----END ED25519 CERT----- +master-key-ed25519 Z79/Yq1oq8nT82SKCdV7f8wyofn57h2GVFNQvr2kAns +platform Tor 0.3.5.10 on Linux +proto Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +published 2020-04-23 13:03:18 +fingerprint 3C4F BDDE 9139 2DE4 2179 6476 F5B6 6385 7DF3 AA74 +uptime 0 +bandwidth 1073741824 1073741824 174080 +extra-info-digest E5E2234DF477A870F6B11ED0887CA785B7CFCC3C NVVQEW9XoRTxhzZ4GaynkC8NNiptVwqxqKA+fggtjYg +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBANXWu7tNGp/m326Ua3ZBr78lRfPD2xPn+R5zU/SjWa32/QpkLPyloJt7 +XzI1JGxMdU+bVgOXuprW51nm+gtfbZ64g6DFFuBEmAEOVfqgCRfgz3yx5J0f9Wch +dfoXqbD2oYxleVZ5qd0VeUve+1uKsB1t6oOIhBbW5VwqhmNbGL63AgMBAAE= +-----END RSA PUBLIC KEY----- +signing-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAKLhsoHCOYO7izilNEnzx2K7zHF7QiGTjXYtlCE+nsa5vSDys0mjwiKo +AzsSiMCmMwhHd7/DQLDRwuW9qyzc26k0sPqANe8QLb5URRrEBDIgajhzVw7gZGxM +2+tgjl14sU+okyreCLRb3WorEIG4TdN6b6fYZrBbjsaaBhtAqyMBAgMBAAE= +-----END RSA PUBLIC KEY----- +onion-key-crosscert +-----BEGIN CROSSCERT----- +LH8XjjKXgCzdtbutJqWg/RsqrKoL2b8AtfyQC5E31nN9ZDetDKzYyY/a3lXR0nxd +rUsm6bOzDNt67YQYCJ8hlw51BDC1Jue2rmvLhqm+GHTGMIWLmSTYFPjUa0KWziTA +35pi3pXStr7oOgyoVt5OQ/Byidv1U1aVL87nOHHPye4= +-----END CROSSCERT----- +ntor-onion-key-crosscert 0 +-----BEGIN ED25519 CERT----- +AQoABr1WAWe/f2KtaKvJ0/NkignVe3/MMqH5+e4dhlRTUL69pAJ7AKSkGEdPDl63 +2LhYLVCtGT7aDzr6QRfHdkd5aWfAFbwVUj5K4K85AGyrLz97nCCEV2t940kkcmd0 +7p/0Vx4XWA0= +-----END ED25519 CERT----- +hidden-service-dir +ntor-onion-key GXljNcag/Y28zUyMWvwzoGTrY93JtUcNW+E5nx49+Wg= +accept *:* +ipv6-policy accept 1-65535 +tunnelled-dir-server +router-sig-ed25519 KstXDyPHMNcEcL/zai9sQfwXcAdZ6VkPU76mwJX7IvKGbUaVFozIeYnDt3Oa0Hd2wSzMK4nr67XaW3uDvpNQBQ +router-signature +-----BEGIN SIGNATURE----- +VVDAWwWFfA7hiSTbaTrslICU14AIO/cF0/tsBGtv2wyBmxSlW9yYARvLKkiGPfXn +FYqSwH4Nd/MvadF2E+dkYSYsnPYqeFxN9mKN2csNeF3PmeL/1254bQx8RKbBy8pi +4mnkeBAA6OqOa44CTkMQfP4A6iSsGpbKrarslHo9uEg= +-----END SIGNATURE----- +router test002a 127.0.0.1 5002 0 7002 +identity-ed25519 +-----BEGIN ED25519 CERT----- +AQQABrr8AeOCME3/p+dJeC85a+wrBmqz26UzrCRo6Xe8e3SJCQ3LAQAgBACUNtcd +VQCMQISKMv6tCyZNrGTAAekCxxrzW/4d39ONGBafrqeRTbGsrdq7TcIyjdxdvNTl +BzPv2IRArJ9acR3e4ob/yLUKu1AkAFD1A+jkqEBl0+uMT7a4Pr6eapH8ZgI= +-----END ED25519 CERT----- +master-key-ed25519 lDbXHVUAjECEijL+rQsmTaxkwAHpAsca81v+Hd/TjRg +platform Tor 0.3.5.10 on Linux +proto Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +published 2020-04-23 14:05:47 +fingerprint 8304 C161 0588 DD74 2FB0 491C 6A5F 0D53 24B0 B150 +uptime 1 +bandwidth 1073741824 1073741824 237568 +extra-info-digest 51BB38ECA5F77F18D52F460B6A00A4C411081F72 CrUyVdL0IJHxiasJEJN09E7RZN9wc8wRYe2kOsZiFrg +caches-extra-info +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAOSrVSP4UbX152npOD2+DcZsHtLCEkutdMxM/8+XCjrCrK8h4lo3GkBG +HrA5piJadIUwWJzzmWjx20k8vTXvFQDAnVuBTz+QTJU/QrM5DamNhHDY5kwKyt8v +CyHIb7TXIeKlaBaOMGuebH/37ePZqzEvwAU31TfADT35od1FtBn7AgMBAAE= +-----END RSA PUBLIC KEY----- +signing-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAKFkXl9LlavRpeM9Ku2Qg4Np5SRrnjkgLwDzO+8iHTV9AryCfDvHJ28k +Cl3FouvEe5XOY95bOyMVY94XSjMjRbcrn+srmurAedCg8RulfZf83z1Bt/CpsrZ3 +fUH7WJiFPBY+J/0OKjoYenZpYf1qIONoHU6x+qmtg1smMuZUa2VzAgMBAAE= +-----END RSA PUBLIC KEY----- +onion-key-crosscert +-----BEGIN CROSSCERT----- +4TJXl8rbc6eGJx9yDWJUiEI1jhT+HZ2FEYgTx/0KcJscR48UNzYd/koTWJgWJ8L6 ++M9JHqXi6WUJfqPZvpignQ7k++KWe74XCZ1n+Qncbx3hQkHMqWpAO8NYeGRG9qZz +VoE/chVH3DeWPTLSEx48vUuzLarnQ3Rwm9hc1RoCT3Y= +-----END CROSSCERT----- +ntor-onion-key-crosscert 0 +-----BEGIN ED25519 CERT----- +AQoABr1XAZQ21x1VAIxAhIoy/q0LJk2sZMAB6QLHGvNb/h3f040YAEb4mIEsNJbi +1ackkJsDkPkNrn40m0ErB5Nvhu/VDb2SJ86O36CRX/Y8vOiu2AWRVIEkQ1bRBt6C +R0a7wEzw/gw= +-----END ED25519 CERT----- +hidden-service-dir +contact auth2@test.test +ntor-onion-key tWQ0zfFeYziPs/nZ6qovq2cb9N1xnDT5tn/iZ6+kbSM= +reject *:* +tunnelled-dir-server +router-sig-ed25519 OVaWiTk3zNj3dM0SpS095xzYZN1B3BP9C//L0UbI5ter/1Yszg5df8sQtdlEdcfc3q5o2/HaAvwy44ggYDkWDA +router-signature +-----BEGIN SIGNATURE----- +N5wMY7P6q9zQwKbBfqArMnnl1xE6Q5dLicXNx1cvEn+VBuJwFFlqzYV/vzM7bvBw +dTHlVRxxx7MKaVpFuPJKLeezYLArWMnJYalWtfFd/IKBfH8ykhKkKAaPw16XmyF1 +pt9iQ91c15ogaHZeh/f9bzl9ej1YKleVhJQ8nvM46l4= +-----END SIGNATURE----- +router test007r 127.0.0.1 5007 0 7007 +identity-ed25519 +-----BEGIN ED25519 CERT----- +AQQABrr8AWk/NSWnFyEYyp3OyTZVWud6VJ8FuXLFzpmatS+wLmHPAQAgBADjQWfN +J0X+i0i09tOjC1wNLv5TOoDDqD2RuamkV643eNNQ7/uevaTjIY0MpDS7SwP3Oq74 +X1FePV8jtgI7ql8Gvr/W5zZgmsc2z7hdBn+TaETPlimjU91/3CbHTX3+1QU= +-----END ED25519 CERT----- +master-key-ed25519 40FnzSdF/otItPbTowtcDS7+UzqAw6g9kbmppFeuN3g +platform Tor 0.3.5.10 on Linux +proto Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +published 2020-04-23 13:03:18 +fingerprint 9974 21D6 B987 72A8 FEBA AA6D 7E1D 79F1 6039 6DFA +uptime 0 +bandwidth 1073741824 1073741824 189440 +extra-info-digest 56FE973CD5A174114589264751D266E281A38C48 TzShXNTaP17YBiUr17G5yZEdLA35HiqNMMF7Y8KR7fw +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBALudw0y5z2HX0Yq/jrqjt2lk/GgtuDAIlGaeCa+3Y6Wz/N5UkFfPFb2b +6Rlbgih5IsStFbsI9byY+TuTbQVrJJoSzYxbaOJkNqBxItfWy21x0In0k23Fgdjh +Jtb+CKU3pB3Jtr6ggQ6YiO+RDuyBOx1tpckxxVzD8gqWuOldKrRXAgMBAAE= +-----END RSA PUBLIC KEY----- +signing-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAJ/xoMb6ioCY0tnjCceKn0QDothQfRO0KDvIJWae/mV5nsOTx4PNMqnb ++CQ3S2fw6P6KouIe+kD2RbmB1eBWIq5hvqrRAFhgjDZl7TvVb7HmdZzDNzYZIf/4 +ugvOYypDejtvusV0POxkkm4+Fl+zhKt8AOXDTuEAexxmZZVBjHPJAgMBAAE= +-----END RSA PUBLIC KEY----- +onion-key-crosscert +-----BEGIN CROSSCERT----- +qggW8Tvd1ruGUDFYT9llbVvJ57l50JKJd9fBrhfaG9/ddLySWNVNGQ80+azoKqum +ZEb/PF6kmkJJfywUfsbz5dbw0Hm2VROuK5RlHzw7hjjZZYU/f+egiyIQKHOXI9lN +9Vu9Y55vTpFnJLyIxNeps3n33LYsoIBktfCCZI7qmmI= +-----END CROSSCERT----- +ntor-onion-key-crosscert 1 +-----BEGIN ED25519 CERT----- +AQoABr1WAeNBZ80nRf6LSLT206MLXA0u/lM6gMOoPZG5qaRXrjd4ADNCsVBg3PAA +NCoTDPbwvMrd0TlZO5QfflO6S22BBjPSCCqS/Sx/7nBT3an2cfKq0k4q+osZOhog +pzFXEYf8/gY= +-----END ED25519 CERT----- +hidden-service-dir +ntor-onion-key PF0gSkZSg5tg/cpO+COBy4MuOBUFy0i24UN1ANjwYBQ= +accept *:* +ipv6-policy accept 1-65535 +tunnelled-dir-server +router-sig-ed25519 y17o7UoOY6iU8tQeAYlmfyB28QyBGHRq2eAYMNBatpBnRHqrEQOCi19T9T0OHXsth88IIN17dSde9Rz8okW0Bg +router-signature +-----BEGIN SIGNATURE----- +FDz5y5IDxnBZXOV3dpPTZ5cFKcz5r5N3hwWrf5PCEIx9sL4SWgM6MxtVCDPmcAG9 +ZFXettHOFUPzqQ30ARgMy5wUhk5pvH7QHp7rsJmQ5rqa8ph26KR4tsNOB8pZm9W7 +N7KhMfC5/dcMviLEOBSfaeG1+BkPjF4ePv7TrK47zc8= +-----END SIGNATURE----- +router test005r 127.0.0.1 5005 0 7005 +identity-ed25519 +-----BEGIN ED25519 CERT----- +AQQABrr8AWE1SUv5e7hKhWzVlBXH98Gfab6Y9h55g631DH7y+TTHAQAgBABFUPh7 +5mkg7mEkVZnWZC89umnxiIBJKx0zfH55QM9IYxvs7AWek+i9Ifxwz2VxTrh3eVOX +q1Y/6Bdmj5lw96VTDzftYwciyZkZntYZXCdVYavT7wCt+/e7py1SX3G2fQ4= +-----END ED25519 CERT----- +master-key-ed25519 RVD4e+ZpIO5hJFWZ1mQvPbpp8YiASSsdM3x+eUDPSGM +platform Tor 0.3.5.10 on Linux +proto Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 +published 2020-04-23 13:03:18 +fingerprint 9EEF 0E06 DCA1 3EEE CBDB EA74 71DC D049 9739 85B0 +uptime 0 +bandwidth 1073741824 1073741824 189440 +extra-info-digest 820DBEF5FC8FDD057F1FE574D0CCCF1F41EBEC8F dVw7XxBxmgqk5jH2q3O5rvt3hNnZSj4v+IHnP74FXkk +onion-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBAMXGxwPQGH9t9pfQSnqrJd7r4ppFaalVCd+HROsS6CA/znvpf/2b9uer +5qucAUYRL0Uhr0o6J0TldxSd3d8WY5Lwn/ZrJ7h4U6SDV024BxqW7R4OMT5ISFgh +89DQN6p1g8mMslGktwZUrCGeEhL32WQAEB/so5wnv7Aa6yYWBDZbAgMBAAE= +-----END RSA PUBLIC KEY----- +signing-key +-----BEGIN RSA PUBLIC KEY----- +MIGJAoGBALlb0Bwo4WAKyF7hHRv3bD/MSf2k77zHB1CF4a8CocSqDcbqscnQf1Jw +zL/UFzhTcCL24schDUE7itY50bkBTRZFo9XG2giEm5nNkAe8PuHy1GK5HZK0uRWw +T3P7B+/PYgw0EQm0x7evDp2QW/I7DLnQCJwY7Ltde013VcEM1W+1AgMBAAE= +-----END RSA PUBLIC KEY----- +onion-key-crosscert +-----BEGIN CROSSCERT----- +MFKBENIMaIWMa9rJhlAcNMdy+SJnOJ2vCfzkqC8JezOCrJKv1yAQVGCGihM2jre6 +H1aLMqG7JTScpQ138q0pMJObvv6CIjRFiiy9KB43oufbjGYmVIkLpvQy/T21mgc+ +PW4qWhNQHng8xDG2Wb6pBhwUASK31g32p3LXRj8P1vg= +-----END CROSSCERT----- +ntor-onion-key-crosscert 0 +-----BEGIN ED25519 CERT----- +AQoABr1WAUVQ+HvmaSDuYSRVmdZkLz26afGIgEkrHTN8fnlAz0hjACh5/LiYnwvS +wy3bgnk7olcN+Wzou7TAqgKZ0Or3TNcxx/v5tLpaaUJ9i4MZAmlNg+IhKhuVKW6C +ICb05F54oQo= +-----END ED25519 CERT----- +hidden-service-dir +ntor-onion-key pwiw7FWsyJXlLyAa7kOTSyKgaqG3xV+stOE+uGEvsE0= +accept *:* +ipv6-policy accept 1-65535 +tunnelled-dir-server +router-sig-ed25519 SrUQnmdUxyWERZM6KWhjEheb0A7HLQSjGAi3DbhCtuvQ6Ho4RDHbsB5NpzOL6Xu/lpW3YBORnBzkBxQOT7QPDg +router-signature +-----BEGIN SIGNATURE----- +PIrLtjkjB73TqQRsxwIGfZxaUtnDedKnrvs4181L+mBL51uoN248Q81UrtJkCK8n +U1qIlxGT++dO3dxVp/KbS8x65/6YXXtynb/hoQBW7L8KkV9E4kabzWT5jAlzggHv +E8AVQplUEw8QUga/WmkG+FOvYGenYfKgeudUdSYQsR8= +-----END SIGNATURE----- diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..69fe55e --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,19 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..543c6b1 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% + +:end +popd diff --git a/docs/source/_build/html/.buildinfo b/docs/source/_build/html/.buildinfo new file mode 100644 index 0000000..4bf79d7 --- /dev/null +++ b/docs/source/_build/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: aee8bc56d238abbb697652f22fed45c2 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/source/_build/html/.doctrees/environment.pickle b/docs/source/_build/html/.doctrees/environment.pickle new file mode 100644 index 0000000..e6e9dd1 Binary files /dev/null and b/docs/source/_build/html/.doctrees/environment.pickle differ diff --git a/docs/source/_build/html/.doctrees/index.doctree b/docs/source/_build/html/.doctrees/index.doctree new file mode 100644 index 0000000..57ba1a6 Binary files /dev/null and b/docs/source/_build/html/.doctrees/index.doctree differ diff --git a/docs/source/_build/html/.doctrees/install.doctree b/docs/source/_build/html/.doctrees/install.doctree new file mode 100644 index 0000000..900ce59 Binary files /dev/null and b/docs/source/_build/html/.doctrees/install.doctree differ diff --git a/docs/source/_build/html/.doctrees/lightnion.cell.doctree b/docs/source/_build/html/.doctrees/lightnion.cell.doctree new file mode 100644 index 0000000..269b37c Binary files /dev/null and b/docs/source/_build/html/.doctrees/lightnion.cell.doctree differ diff --git a/docs/source/_build/html/.doctrees/lightnion.cell.relay.doctree b/docs/source/_build/html/.doctrees/lightnion.cell.relay.doctree new file mode 100644 index 0000000..39108bf Binary files /dev/null and b/docs/source/_build/html/.doctrees/lightnion.cell.relay.doctree differ diff --git a/docs/source/_build/html/.doctrees/lightnion.crypto.doctree b/docs/source/_build/html/.doctrees/lightnion.crypto.doctree new file mode 100644 index 0000000..54f91b9 Binary files /dev/null and b/docs/source/_build/html/.doctrees/lightnion.crypto.doctree differ diff --git a/docs/source/_build/html/.doctrees/lightnion.doctree b/docs/source/_build/html/.doctrees/lightnion.doctree new file mode 100644 index 0000000..82ae3a1 Binary files /dev/null and b/docs/source/_build/html/.doctrees/lightnion.doctree differ diff --git a/docs/source/_build/html/.doctrees/lightnion.http.doctree b/docs/source/_build/html/.doctrees/lightnion.http.doctree new file mode 100644 index 0000000..2095708 Binary files /dev/null and b/docs/source/_build/html/.doctrees/lightnion.http.doctree differ diff --git a/docs/source/_build/html/.doctrees/lightnion.proxy.doctree b/docs/source/_build/html/.doctrees/lightnion.proxy.doctree new file mode 100644 index 0000000..d67dacb Binary files /dev/null and b/docs/source/_build/html/.doctrees/lightnion.proxy.doctree differ diff --git a/docs/source/_build/html/.doctrees/lightnion.tests.doctree b/docs/source/_build/html/.doctrees/lightnion.tests.doctree new file mode 100644 index 0000000..a0aac7a Binary files /dev/null and b/docs/source/_build/html/.doctrees/lightnion.tests.doctree differ diff --git a/docs/source/_build/html/.doctrees/modules.doctree b/docs/source/_build/html/.doctrees/modules.doctree new file mode 100644 index 0000000..cf66db8 Binary files /dev/null and b/docs/source/_build/html/.doctrees/modules.doctree differ diff --git a/lightnion/tests/__init__.py b/docs/source/_build/html/.nojekyll similarity index 100% rename from lightnion/tests/__init__.py rename to docs/source/_build/html/.nojekyll diff --git a/docs/source/_build/html/_modules/index.html b/docs/source/_build/html/_modules/index.html new file mode 100644 index 0000000..fdfb955 --- /dev/null +++ b/docs/source/_build/html/_modules/index.html @@ -0,0 +1,237 @@ + + + + + + + + + + + Overview: module code — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Overview: module code
  • + + +
  • + +
  • + +
+ + +
+
+ +
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cache.html b/docs/source/_build/html/_modules/lightnion/cache.html new file mode 100644 index 0000000..ffba96b --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cache.html @@ -0,0 +1,298 @@ + + + + + + + + + + + lightnion.cache — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cache

+import os
+import time
+import json
+import shutil
+import base64
+import logging
+
+cache_directory = '.lightnion-cache.d'
+
+
[docs]def directory(base_dir=None): + if base_dir is None: + base_dir = os.getcwd() + base_dir = os.path.join(base_dir, cache_directory) + + if not os.path.isdir(base_dir): + logging.info( + 'Note: creating {} to cache descriptors.'.format(base_dir)) + os.mkdir(base_dir) + + if not os.path.isdir(base_dir): + raise RuntimeError( + 'Unable to fetch cache directory: {}'.format(base_dir)) + + return base_dir
+ +
[docs]def purge(): + base_dir = directory() + logging.warning('Note: removing {} to purge cache.'.format(base_dir)) + shutil.rmtree(base_dir)
+ +
[docs]class descriptors: +
[docs] @staticmethod + def filename(descriptor, get=False): + base_dir = 'descriptors' + if 'micro' in descriptor['flavor']: + base_dir = 'micro-' + base_dir + base_dir = os.path.join(directory(), base_dir) + + if not os.path.isdir(base_dir): + os.mkdir(base_dir) + + field = 'digest' + if 'micro' in descriptor['flavor']: + field = 'micro-digest' + + digest = descriptor[field] + if (not get) or 'micro' in descriptor['flavor']: + digest = base64.b64decode(descriptor[field] + '====').hex() + + half_dir = os.path.join(base_dir, digest[:2]) + if not os.path.isdir(half_dir): + os.mkdir(half_dir) + + return os.path.join(half_dir, digest)
+ +
[docs] @staticmethod + def put(descriptor): + filename = descriptors.filename(descriptor) + if os.path.isfile(filename): + return + with open(filename, 'w') as f: + json.dump(descriptor, f)
+ +
[docs] @staticmethod + def get(flavor, digest): + field = 'digest' + if 'micro' in flavor: + field = 'micro-digest' + + descriptor = {'flavor': flavor, field: digest} + filename = descriptors.filename(descriptor, get=True) + with open(filename, 'r') as f: + descriptor = json.load(f) + + if not descriptor['flavor'] == flavor: + raise ValueError('Mismatched flavor.') + + new_digest = descriptor[field] + if not 'micro' in field: + new_digest = base64.b64decode(new_digest + '====').hex() + + if not new_digest == digest: + raise ValueError('Mismatched digest.') + + return descriptor
+ +
[docs]class consensus: +
[docs] @staticmethod + def filename(flavor): + return os.path.join(directory(), 'consensus-{}'.format(flavor))
+ +
[docs] @staticmethod + def put(fields): + filename = consensus.filename(fields['flavor']) + with open(filename, 'w') as f: + json.dump(fields, f)
+ +
[docs] @staticmethod + def get(flavor): + filename = consensus.filename(flavor) + with open(filename, 'r') as f: + fields = json.load(f) + + if not fields['flavor'] == flavor: + raise ValueError('Mismatched flavor.') + + if fields['headers']['valid-until']['stamp'] < time.time(): + raise ValueError('Consensus need to be refreshed: {} < {}'.format( + fields['headers']['valid-until']['stamp'], time.time())) + + return fields
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell.html b/docs/source/_build/html/_modules/lightnion/cell.html new file mode 100644 index 0000000..2138bcd --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell.html @@ -0,0 +1,276 @@ + + + + + + + + + + + lightnion.cell — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell

+from .. import constants
+from . import view
+
+
[docs]class cmd(view.enum(1)): + PADDING = 0x00 + CREATE = 0x01 + CREATED = 0x02 + RELAY = 0x03 + DESTROY = 0x04 + CREATE_FAST = 0x05 + CREATED_FAST = 0x06 + VERSIONS = 0x07 + NETINFO = 0x08 + RELAY_EARLY = 0x09 + CREATE2 = 0x0a + CREATED2 = 0x0b + PADDING_NEGOTIATE = 0x0c + VPADDING = 0x80 + CERTS = 0x81 + AUTH_CHALLENGE = 0x82 + AUTHENTICATE = 0x83 + AUTHORIZE = 0x84 + + @property + def is_fixed(self): + return not self.is_variable + + @property + def is_variable(self): + if bool(0x80 & self._value_): + return True + return self._value_ == int(cmd.VERSIONS)
+ +header_view = view.fields( + circuit_id=view.uint(4), cmd=cmd) +header_legacy_view = view.fields( + circuit_id=view.uint(2), cmd=cmd, length=view.cache(view.uint, init=[2])) +header_variable_view = view.fields( + circuit_id=view.uint(4), cmd=cmd, length=view.cache(view.uint, init=[2])) + +
[docs]class cell_view(view.packet): + _whitelist = [header_view, header_legacy_view, header_variable_view] + def __init__(self, header): + if header not in self._whitelist: + raise ValueError('Invalid header type: {}'.format(header)) + super().__init__(header_view=header, fixed_size=constants.payload_len) + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd.is_fixed == self.fixed_size
+ +variable_size = view.like(cell_view(header_variable_view), 'variable_size') +legacy_size = view.like(cell_view(header_legacy_view), 'legacy_size') +fixed_size = view.like(cell_view(header_view), 'fixed_size') + +header = view.like(header_view, 'header') +header_legacy = view.like(header_legacy_view, 'header_legacy') +header_variable = view.like(header_variable_view, 'header_variable') + +
[docs]def pad(payload): + try: + payload = payload.raw + except AttributeError: + pass + + cell_header = header(payload) + if not cell_header.valid: + raise RuntimeError('Invalid cell header: {}'.format(cell_header.raw)) + + length = constants.payload_len + cell_header.width + if not cell_header.cmd.is_fixed: + cell_header = header_variable(payload) + if not cell_header.valid: + raise RuntimeError( + 'Invalid variable cell header: {}'.format(cell_header.raw)) + + length = cell_header.length + cell_header.width + if length > constants.max_payload_len: + raise RuntimeError('Invalid cell length: {}'.format(length)) + + return payload.ljust(length, b'\x00')
+ +from . import address +from . import ( + padding, relay, destroy, create_fast, created_fast, versions, netinfo, + relay_early, create2, created2, certs, challenge) +
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/address.html b/docs/source/_build/html/_modules/lightnion/cell/address.html new file mode 100644 index 0000000..286d1fe --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/address.html @@ -0,0 +1,244 @@ + + + + + + + + + + + lightnion.cell.address — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.address

+from . import view as _view
+
+import ipaddress
+
+
[docs]class addr_type(_view.enum(1, cached=True)): + HOSTNAME = 0x00 + IPV4_ADDR = 0x04 + IPV6_ADDR = 0x06 + ERROR_TRANS = 0xF0 + ERROR_NON_TRANS = 0xF1
+ +header_view = _view.fields(**{ + 'type': addr_type, + 'length': _view.cache(_view.uint, init=[1])}) + +
[docs]class address_view(_view.packet): + _default_extra_fields = ['type'] + _default_header_view = header_view + _default_data_name = 'host' + + def __init__(self, *kargs, **kwargs): + super().__init__(*kargs, **kwargs) + + length = self.header._fields['length'] + self._fields['host'] = _view.union( + view_table={ + addr_type.HOSTNAME: _view.codec('utf8', size=length), + addr_type.IPV4_ADDR: _view.ip_address(version=4), + addr_type.IPV6_ADDR: _view.ip_address(version=6), + addr_type.ERROR_TRANS: _view.data(length), + addr_type.ERROR_NON_TRANS: _view.data(length) + }, union_tag=self.header._fields['type'])
+ +view = address_view() +address = _view.like(view, 'address') + +
[docs]def pack(host, type_hint=None): + if type_hint is None: + try: + ipaddress.IPv4Address(host) + type_hint = addr_type.IPV4_ADDR + except ValueError: + ipaddress.IPv6Address(host) + type_hint = addr_type.IPV6_ADDR + + base = address(b'') + base.header.set(**{'type': type_hint, 'length': 0}) + + length = base._view.host.width() + if length == 0: + length = len(host) + base.header.set(length=length) + + base.set(host=host) + return base
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/certs.html b/docs/source/_build/html/_modules/lightnion/cell/certs.html new file mode 100644 index 0000000..27c00e1 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/certs.html @@ -0,0 +1,231 @@ + + + + + + + + + + + lightnion.cell.certs — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.certs

+from .. import cell as _cell
+from . import view as _view
+
+
[docs]class cert_type(_view.enum(1)): + RSA_SIGNED_LINK_KEY = 0x01 + RSA_SELF_SIGNED_IDENTITY = 0x02 + RSA_SIGNED_AUTHENTICATE = 0x03 + ED_SIGNED_SIGNING_KEY = 0x04 + ED_SIGNED_TLS_LINK = 0x05 + ED_SIGNED_AUTHENTICATE = 0x06 + RSA_SIGNED_ED_IDENTITY = 0x07
+ +cert_header_view = _view.fields( + **{'type': cert_type, 'clen': _view.cache(_view.uint, init=[2])}) +cert_view = _view.packet(header_view=cert_header_view, field_name='clen') + +certs_header_view = _view.fields(quantity=_view.cache(_view.uint, init=[1])) +class _certs_view(_view.packet): + _default_header_view = certs_header_view + _default_field_name = 'quantity' + _default_data_name = 'listing' + + def __init__(self, **kwargs): + super().__init__(**kwargs) + self._fields['listing'] = _view.series(cert_view, + self._fields['header'].quantity) + +certs_view = _certs_view() +
[docs]class cell_view(_view.packet): + _default_header_view = _cell.header_variable_view + _default_data_name = 'certs' + _default_data_view = certs_view + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd == _cell.cmd.CERTS
+ +view = cell_view() +cell = _view.like(view, 'certs_cell') +
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/challenge.html b/docs/source/_build/html/_modules/lightnion/cell/challenge.html new file mode 100644 index 0000000..899db46 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/challenge.html @@ -0,0 +1,238 @@ + + + + + + + + + + + lightnion.cell.challenge — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.challenge

+from .. import cell as _cell
+from . import view as _view
+from . import common
+
+import os
+
+
[docs]class auth_type(_view.enum(2)): + RSA_AUTH = 0x01 + ED_AUTH = 0x03
+ +auth_header_view = _view.fields( + challenge=_view.data(32), + quantity=common.length_halved_view(2)) + +class _auth_view(_view.packet): + _default_header_view = auth_header_view + _default_data_name = 'methods' + _max_size = 2 * auth_type.width() + + def __init__(self, *kargs, **kwargs): + super().__init__(*kargs, **kwargs) + self._fields['methods'] = _view.series( + auth_type, self._fields['header'].quantity) + +auth_view = _auth_view() +
[docs]class cell_view(_view.packet): + _default_header_view = _cell.header_variable_view + _default_data_view = auth_view + _default_data_name = 'auth' + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd == _cell.cmd.AUTH_CHALLENGE
+ +view = cell_view() +cell = _view.like(view, 'auth_challenge_cell') + +
[docs]def pack(*methods, challenge=None): + if challenge is None: + challenge = os.urandom(32) + + base = cell(b'') + base.header.set(circuit_id=0, cmd=_cell.cmd.AUTH_CHALLENGE, length=0) + base.auth.set(challenge=challenge, quantity=len(methods), methods=methods) + base.set(length=base.auth.width) + return base
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/common.html b/docs/source/_build/html/_modules/lightnion/cell/common.html new file mode 100644 index 0000000..6d1455d --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/common.html @@ -0,0 +1,205 @@ + + + + + + + + + + + lightnion.cell.common — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.common

+from . import view as _view
+
+
[docs]class length_halved_view(_view.cache(_view.uint)): +
[docs] def cache(self): + return super().cache() // 2
+ +
[docs] def iseven(self): + return bool(self._cache.value % 2 == 0)
+ +
[docs] def write(self, payload=b'', value=None): + return super().write(payload, value * 2)
+ +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + return self.value(payload) > 0 and self.cached() and self.iseven()
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/create2.html b/docs/source/_build/html/_modules/lightnion/cell/create2.html new file mode 100644 index 0000000..c2c91ae --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/create2.html @@ -0,0 +1,223 @@ + + + + + + + + + + + lightnion.cell.create2 — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.create2

+from .. import cell as _cell
+from . import view as _view
+
+create_header_view = _view.fields(**{
+    'type': _cell.relay.extend2.handshake_type,
+    'length': _view.cache(_view.uint, init=[2])})
+
+
[docs]class create_view(_view.packet): + _default_header_view = create_header_view
+ +
[docs]class cell_view(_view.packet): + _default_header_view = _cell.header_view + _default_data_name = 'create2' + _default_data_view = create_view() + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd == _cell.cmd.CREATE2
+ +view = cell_view() +cell = _view.like(view, 'create2_cell') + +
[docs]def pack(circuit_id, handshake_data): + base = cell(b'') + base.set( + circuit_id=circuit_id, + cmd=_cell.cmd.CREATE2, + create2=dict(**{'type': _cell.relay.extend2.handshake_type.NTOR, + 'length': len(handshake_data), + 'data': handshake_data})) + return base
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/create_fast.html b/docs/source/_build/html/_modules/lightnion/cell/create_fast.html new file mode 100644 index 0000000..655b92c --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/create_fast.html @@ -0,0 +1,222 @@ + + + + + + + + + + + lightnion.cell.create_fast — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.create_fast

+from .. import constants
+from .. import cell as _cell
+from . import view as _view
+
+import os
+
+create_fast_view = _view.fields(material=_view.data(constants.hash_len))
+
+
[docs]class cell_view(_view.packet): + _default_header_view = _cell.header_view + _default_data_name = 'create_fast' + _default_data_view = create_fast_view + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd == _cell.cmd.CREATE_FAST
+ +view = cell_view() +cell = _view.like(view, 'create_fast_cell') + +
[docs]def pack(circuit_id, material=None): + if material is None: + material = os.urandom(constants.hash_len) + + base = cell(b'') + base.set( + circuit_id=circuit_id, + cmd=_cell.cmd.CREATE_FAST, + create_fast=dict(material=material)) + return base
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/created2.html b/docs/source/_build/html/_modules/lightnion/cell/created2.html new file mode 100644 index 0000000..da25643 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/created2.html @@ -0,0 +1,211 @@ + + + + + + + + + + + lightnion.cell.created2 — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.created2

+from .. import cell as _cell
+from . import view as _view
+
+created_header_view = _view.fields(length=_view.cache(_view.uint, init=[2]))
+
+
[docs]class created_view(_view.packet): + _default_header_view = created_header_view
+ +
[docs]class cell_view(_view.packet): + _default_header_view = _cell.header_view + _default_data_name = 'created2' + _default_data_view = created_view() + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd == _cell.cmd.CREATED2
+ +view = cell_view() +cell = _view.like(view, 'created2_cell') +
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/created_fast.html b/docs/source/_build/html/_modules/lightnion/cell/created_fast.html new file mode 100644 index 0000000..f5e6905 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/created_fast.html @@ -0,0 +1,221 @@ + + + + + + + + + + + lightnion.cell.created_fast — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.created_fast

+from .. import constants
+
+from .. import cell as _cell
+from . import view as _view
+
+import os
+
+created_fast_view = _view.fields(material=_view.data(constants.hash_len),
+    derivative=_view.data(constants.hash_len))
+
+
[docs]class cell_view(_view.packet): + _default_header_view = _cell.header_view + _default_data_name = 'created_fast' + _default_data_view = created_fast_view + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd == _cell.cmd.CREATED_FAST
+ +view = cell_view() +cell = _view.like(view, 'created_fast_cell') + +
[docs]def pack(circuit_id, material, derivative): + base = cell(b'') + base.set( + circuit_id=circuit_id, + cmd=_cell.cmd.CREATED_FAST, + created_fast=dict(material=material, derivative=derivative)) + return base
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/destroy.html b/docs/source/_build/html/_modules/lightnion/cell/destroy.html new file mode 100644 index 0000000..93c1f0d --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/destroy.html @@ -0,0 +1,226 @@ + + + + + + + + + + + lightnion.cell.destroy — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.destroy

+from .. import cell as _cell
+from . import view as _view
+
+
[docs]class reason(_view.enum(1)): + NONE = 0x00 + PROTOCOL = 0x01 + INTERNAL = 0x02 + REQUESTED = 0x03 + HIBERNATING = 0x04 + RESOURCELIMIT = 0x05 + CONNECTFAILED = 0x06 + OR_IDENTITY = 0x07 + OR_CONN_CLOSED = 0x08 + FINISHED = 0x09 + TIMEOUT = 0x0a + DESTROYED = 0x0b + NOSUCHSERVICE = 0x0c
+ +
[docs]class cell_view(_view.packet): + _default_header_view = _cell.header_view + _default_data_name = 'reason' + _default_data_view = reason + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd == _cell.cmd.DESTROY
+ +view = cell_view() +cell = _view.like(view, 'destroy_cell') + +
[docs]def pack(circuit_id, reason): + base = cell(b'') + base.set(circuit_id=circuit_id, cmd=_cell.cmd.DESTROY, reason=reason) + return base
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/netinfo.html b/docs/source/_build/html/_modules/lightnion/cell/netinfo.html new file mode 100644 index 0000000..ddaade2 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/netinfo.html @@ -0,0 +1,253 @@ + + + + + + + + + + + lightnion.cell.netinfo — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.netinfo

+from .. import cell as _cell
+from . import view as _view
+
+import time
+
+netinfo_header_view = _view.fields(timestamp=_view.uint(4),
+    other=_cell.address.view, quantity=_view.cache(_view.uint, init=[1]))
+
+class _netinfo_view(_view.packet):
+    _default_header_view = netinfo_header_view
+    _default_field_name = 'quantity'
+    _default_data_name = 'addresses'
+
+    _addr_type_whitelist = [
+        _cell.address.addr_type.IPV4_ADDR, _cell.address.addr_type.IPV6_ADDR]
+
+    def __init__(self, **kwargs):
+        super().__init__(**kwargs)
+        self._fields['addresses'] = _view.series(_cell.address.view,
+            self._fields['header'].quantity)
+
+    def valid(self, payload=b''):
+        if not super().valid(payload):
+            return False
+
+        number = self.header.value(payload, field='quantity')
+        offset = self.offset(payload, field='addresses')
+        for i in range(number):
+            roff = self.addresses.offset(payload[offset:], field=i)
+            addr = self.addresses.item.type.value(payload[offset+roff:])
+            if addr not in self._addr_type_whitelist:
+                return False
+        return True
+
+netinfo_view = _netinfo_view()
+
[docs]class cell_view(_view.packet): + _default_header_view = _cell.header_view + _default_data_name = 'netinfo' + _default_data_view = netinfo_view + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd == _cell.cmd.NETINFO
+ +view = cell_view() +cell = _view.like(view, 'netinfo_cell') + +
[docs]def pack(other_address, *addresses, timestamp=None): + if timestamp is None: + timestamp = int(time.time()) + + base = cell(b'') + base.set( + circuit_id=0, + cmd=_cell.cmd.NETINFO, + netinfo=dict( + timestamp=timestamp, + other=_cell.address.pack(other_address).value(), + quantity=len(addresses), + addresses=[_cell.address.pack(a).value() for a in addresses])) + return base
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/padding.html b/docs/source/_build/html/_modules/lightnion/cell/padding.html new file mode 100644 index 0000000..6830483 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/padding.html @@ -0,0 +1,210 @@ + + + + + + + + + + + lightnion.cell.padding — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.padding

+from .. import cell as _cell
+from . import view as _view
+
+
[docs]class cell_view(_view.packet): + _default_header_view = _cell.header_view + _default_fixed_size = 0 + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd == _cell.cmd.PADDING
+ +view = cell_view() +cell = _view.like(view, 'padding_cell') + +
[docs]def pack(): + base = cell(b'') + base.set(circuit_id=0, cmd=_cell.cmd.PADDING) + return base
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/relay.html b/docs/source/_build/html/_modules/lightnion/cell/relay.html new file mode 100644 index 0000000..cf0df7f --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/relay.html @@ -0,0 +1,336 @@ + + + + + + + + + + + lightnion.cell.relay — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.relay

+from ... import constants
+
+from ... import cell as _cell
+from .. import view as _view
+
+payload_len = constants.payload_len - 11
+
+
[docs]class cmd(_view.enum(1)): + RELAY_BEGIN = 0x01 + RELAY_DATA = 0x02 + RELAY_END = 0x03 + RELAY_CONNECTED = 0x04 + RELAY_SENDME = 0x05 + RELAY_EXTEND = 0x06 + RELAY_EXTENDED = 0x07 + RELAY_TRUNCATE = 0x08 + RELAY_TRUNCATED = 0x09 + RELAY_DROP = 0x0a + RELAY_RESOLVE = 0x0b + RELAY_RESOLVED = 0x0c + RELAY_BEGIN_DIR = 0x0d + RELAY_EXTEND2 = 0x0e + RELAY_EXTENDED2 = 0x0f + + @property + def is_forward(self): + return self in [ + cmd.RELAY_BEGIN, + cmd.RELAY_DATA, + cmd.RELAY_END, + cmd.RELAY_SENDME, + cmd.RELAY_EXTEND, + cmd.RELAY_TRUNCATE, + cmd.RELAY_DROP, + cmd.RELAY_RESOLVE, + cmd.RELAY_BEGIN_DIR, + cmd.RELAY_EXTEND2] + + @property + def is_backward(self): + return self in [ + cmd.RELAY_DATA, + cmd.RELAY_END, + cmd.RELAY_CONNECTED, + cmd.RELAY_SENDME, + cmd.RELAY_EXTENDED, + cmd.RELAY_TRUNCATED, + cmd.RELAY_DROP, + cmd.RELAY_RESOLVED, + cmd.RELAY_EXTENDED2] + + @property + def is_circuit(self): + return self in [ + cmd.RELAY_BEGIN, + cmd.RELAY_DATA, + cmd.RELAY_END, + cmd.RELAY_CONNECTED, + cmd.RELAY_SENDME, + cmd.RELAY_RESOLVE, + cmd.RELAY_RESOLVED, + cmd.RELAY_BEGIN_DIR] + + @property + def is_control(self): + return self in [ + cmd.RELAY_SENDME, + cmd.RELAY_EXTEND, + cmd.RELAY_EXTENDED, + cmd.RELAY_TRUNCATE, + cmd.RELAY_TRUNCATED, + cmd.RELAY_DROP, + cmd.RELAY_EXTEND2, + cmd.RELAY_EXTENDED2]
+ +relay_header_view = _view.fields( + cmd=cmd, + recognized=_view.data(2), + stream_id=_view.uint(2), + digest=_view.data(4), + length=_view.cache(_view.uint, init=[2])) + +
[docs]class relay_view(_view.packet): + _default_header_view = relay_header_view + _max_size = payload_len + +
[docs] def valid(self, payload=b''): + if not self.header.valid(payload): + return False + + if not self.header.value(payload, 'recognized') == b'\x00\x00': + return True + + return super().valid(payload)
+ +payload_view = relay_view() +payload = _view.like(payload_view, 'relay_payload') + +
[docs]class cell_view(_view.packet): + _default_data_view = payload_view + _default_data_name = 'relay' + _default_fixed_size = constants.payload_len + _default_header_view = _cell.header_view + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + if not cell_cmd == _cell.cmd.RELAY: + return False + + offset = self.offset(payload, field='relay') + circuit_id = self.header.value(payload, field='circuit_id') + relay_cmd = self.relay.header.value(payload[offset:], field='cmd') + if circuit_id == 0 and not relay_cmd.is_control: + return False + return True
+ +view = cell_view() +cell = _view.like(view, 'relay_cell') + +def _pack_details(base, cmd, recognized, stream_id, digest, data): + base.relay.header.set( + cmd=cmd, + recognized=recognized, + stream_id=stream_id, + digest=digest, + length=len(data)) + base.set(relay=dict(data=data)) + + # Preemptively add \x00 padding (as it is included within digests) + base.relay.raw = base.relay.raw.ljust(constants.payload_len, b'\x00') + if not base.valid: + raise RuntimeError( + 'Invalid RELAY cell after padding: {}'.format(base.raw)) + + return base + +
[docs]def pack(circuit_id, cmd, data, recognized=b'\x00\x00', *, stream_id, digest): + base = cell(b'') + base.header.set( + circuit_id=circuit_id, + cmd=_cell.cmd.RELAY) + return _pack_details(base, cmd, recognized, stream_id, digest, data)
+ +from . import extend2, extended2 +
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/relay/extend2.html b/docs/source/_build/html/_modules/lightnion/cell/relay/extend2.html new file mode 100644 index 0000000..7ed3094 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/relay/extend2.html @@ -0,0 +1,307 @@ + + + + + + + + + + + lightnion.cell.relay.extend2 — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.relay.extend2

+import base64
+
+from ... import cell as _cell
+from .. import view as _view
+
+
[docs]class linkspec_type(_view.enum(1, cached=True)): + TLS_TCP_4 = 0x00 + TLS_TCP_6 = 0x01 + LEGACY_ID = 0x02 + ED_ID = 0x03
+ +linkspec_header_view = _view.fields(**{ + 'type': linkspec_type, + 'length': _view.cache(_view.uint, init=[1])}) + +
[docs]class linkspec_view(_view.packet): + _default_extra_fields = ['type'] + _default_header_view = linkspec_header_view + + def __init__(self, *kargs, **kwargs): + super().__init__(*kargs, **kwargs) + + self._fields['data'] = _view.union( + view_table={ + linkspec_type.TLS_TCP_4: _view.fields( + addr=_view.ip_address(version=4), port=_view.uint(2)), + linkspec_type.TLS_TCP_6: _view.fields( + addr=_view.ip_address(version=6), port=_view.uint(2)), + linkspec_type.LEGACY_ID: _view.data(20), + linkspec_type.ED_ID: _view.data(32) + }, union_tag=self.header._fields['type'])
+linkspec = _view.like(linkspec_view(), 'linkspec') + +linkspecs_header_view = _view.fields( + quantity=_view.cache(_view.uint, init=[1])) + +
[docs]class linkspecs_view(_view.packet): + _default_header_view = linkspecs_header_view + _default_field_name = 'quantity' + _default_data_name = 'specs' + + def __init__(self, *kargs, **kwargs): + super().__init__(*kargs, **kwargs) + self._fields['specs'] = _view.series(linkspec_view(), + self._fields['header'].quantity)
+ +
[docs]class handshake_type(_view.enum(2)): + # TAP = 0x0001 # TODO: add support for TAP handshakes? + NTOR = 0x0002
+ +extend2_header_view = _view.fields(**{'link': linkspecs_view(), + 'type': handshake_type, 'length': _view.cache(_view.uint, init=[2])}) + +
[docs]class extend2_view(_view.packet): + _default_header_view = extend2_header_view
+ +view = extend2_view() +payload = _view.like(view, 'extend2_payload') + +def _pack_linkspec_addr(addr, port): + addr = _cell.address.pack(addr) + + base = linkspec(b'') + if addr['type'] == _cell.address.addr_type.IPV4_ADDR: + base.type = linkspec_type.TLS_TCP_4 + elif addr['type'] == _cell.address.addr_type.IPV6_ADDR: + base.type = linkspec_type.TLS_TCP_6 + else: + raise RuntimeError('Invalid address: {}'.format(addr)) + + base.length = 0 + base.data.addr = addr.host + base.data.port = port + + base.set(length=base.data.width) + return base + +def _pack_linkspec_identity(identity): + if isinstance(identity, str): + identity = base64.b64decode(identity + '====') + + base = linkspec(b'') + if len(identity) == 20: + base.type = linkspec_type.LEGACY_ID + elif len(identity) == 32: + base.type = linkspec_type.ED_ID + else: + raise RuntimeError('Invalid identity: {}'.format(identity)) + + base.length = 0 + base.data = identity + + base.set(length=len(identity)) + return base + +
[docs]def pack(handshake, addresses=[], identities=[]): + if len(addresses) < 1: + raise RuntimeError('Expect at least one address!') + if len(identities) > 2: + raise RuntimeError('Expect at most two identities!') + + specs = [] + for addr, port in addresses: + specs.append(_pack_linkspec_addr(addr, port).value()) + + for identity in identities: + specs.append(_pack_linkspec_identity(identity).value()) + + if not any([s['type'] == linkspec_type.ED_ID for s in specs]): + raise RuntimeError('Require at least one ed25519 identity!') + + base = payload(b'') + base.header.link.set(quantity=len(specs), specs=specs) + base.header.set(**{'type': handshake_type.NTOR, 'length': len(handshake)}) + base.set(data=handshake) + return base
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/relay/extended2.html b/docs/source/_build/html/_modules/lightnion/cell/relay/extended2.html new file mode 100644 index 0000000..bf6fb11 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/relay/extended2.html @@ -0,0 +1,201 @@ + + + + + + + + + + + lightnion.cell.relay.extended2 — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.relay.extended2

+from ... import cell as _cell
+from .. import view as _view
+
+extended2_header_view = _view.fields(length=_view.cache(_view.uint, init=[2]))
+
+
[docs]class extended2_view(_view.packet): + _default_header_view = extended2_header_view
+ +view = extended2_view() +payload = _view.like(view, 'extended2_payload') +
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/relay_early.html b/docs/source/_build/html/_modules/lightnion/cell/relay_early.html new file mode 100644 index 0000000..50829af --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/relay_early.html @@ -0,0 +1,226 @@ + + + + + + + + + + + lightnion.cell.relay_early — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.relay_early

+from .. import constants
+
+from .. import cell as _cell
+from . import view as _view
+
+from . import relay
+
+
[docs]class cell_view(_view.packet): + _default_data_view = relay.payload_view + _default_data_name = 'relay' + _default_fixed_size = constants.payload_len + _default_header_view = _cell.header_view + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + if not cell_cmd == _cell.cmd.RELAY_EARLY: + return False + + offset = self.offset(payload, field='relay') + circuit_id = self.header.value(payload, field='circuit_id') + relay_cmd = self.relay.header.value(payload[offset:], field='cmd') + if circuit_id == 0 and not relay_cmd.is_control: + return False + return True
+ +view = cell_view() +cell = _view.like(view, 'relay_early_cell') + +
[docs]def pack(circuit_id, cmd, data, recognized=b'\x00\x00', *, stream_id, digest): + base = cell(b'') + base.header.set( + circuit_id=circuit_id, + cmd=_cell.cmd.RELAY_EARLY) + return relay._pack_details(base, cmd, recognized, stream_id, digest, data)
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/versions.html b/docs/source/_build/html/_modules/lightnion/cell/versions.html new file mode 100644 index 0000000..bda9c6e --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/versions.html @@ -0,0 +1,257 @@ + + + + + + + + + + + lightnion.cell.versions — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.versions

+from .. import constants
+from . import common
+
+from .. import cell as _cell
+from . import view as _view
+
+header_view = _view.fields(
+    circuit_id=_view.uint(2),
+    cmd=_cell.cmd,
+    length=common.length_halved_view(2))
+
+
[docs]class cell_view(_view.packet): + def __init__(self, header=header_view): + super().__init__(header_view=header, data_name='versions') + self._fields['versions'] = _view.series( + _view.uint(2), header.length) + self._max_size = 64 * 2 + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + cell_cmd = self.header.value(payload, field='cmd') + return cell_cmd == _cell.cmd.VERSIONS
+ +view = cell_view() +cell = _view.like(view, 'versions_cell') +header = _view.like(header_view, 'versions_header') + +
[docs]def pack(versions): + vercell = cell(b'') + vercell.header.set( + circuit_id=0, + cmd=_cell.cmd.VERSIONS, + length=len(versions)) + vercell.set(versions=versions) + return vercell
+ +
[docs]def recv(peer): + answer = peer.recv(_cell.header_legacy_view.width()) + + header = _cell.header_legacy(answer) + if not header.valid: + raise RuntimeError('Invalid v2 cell header: {}'.format(header.raw)) + if not header.cmd == _cell.cmd.VERSIONS: + raise RuntimeError('Expecting VERSIONS, got: {}'.format(header.cmd)) + + length = header.length + if length > constants.max_payload_len: + raise RuntimeError('VERSIONS cell too long: {}'.format(header.length)) + + answer += peer.recv(length) + if not view.valid(answer): + raise RuntimeError('Invalid VERSIONS cell: {}'.format(answer)) + + return cell(answer)
+ +
[docs]def send(peer, payload): + try: + payload = payload.raw + except AttributeError: + pass + + vercell = cell(payload) + if not vercell.valid: + raise RuntimeError('VERSIONS cell invalid: {}'.format(payload)) + + return peer.sendall(payload)
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/cell/view.html b/docs/source/_build/html/_modules/lightnion/cell/view.html new file mode 100644 index 0000000..5b6d825 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/cell/view.html @@ -0,0 +1,1076 @@ + + + + + + + + + + + lightnion.cell.view — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.cell.view

+import collections
+import threading
+import ipaddress
+import inspect
+import codecs
+import enum as _enum
+
+
[docs]class basic: +
[docs] def width(self, payload=b''): + raise NotImplementedError
+ +
[docs] def valid(self, payload=b''): + raise NotImplementedError
+ +
[docs] def value(self, payload=b'', field=None): + raise NotImplementedError
+ +
[docs] def write(self, payload=b'', value=None, **kwargs): + raise NotImplementedError
+ + def __contains__(self, field): + return False
+ +
[docs]class composite(basic): +
[docs] def write(self, payload=b'', value=None, **kwargs): + raise NotImplementedError
+ + def __len__(self): + raise NotImplementedError + + def __contains__(self, field): + raise NotImplementedError + + def __getitem__(self, field): + raise NotImplementedError
+ +
[docs]class uint(basic): + def __init__(self, size, byteorder='big'): + if size < 1: + raise ValueError('Invalid uint size: {}'.format(size)) + if byteorder not in ['big', 'little']: + raise ValueError('Invalid uint byteorder: {}'.format(byteorder)) + self.byteorder = byteorder + self.size = size + +
[docs] def width(self, payload=b''): + return self.size
+ +
[docs] def valid(self, payload=b''): + return len(payload) >= self.size
+ +
[docs] def value(self, payload=b'', field=None): + return int.from_bytes(payload[:self.size], byteorder=self.byteorder)
+ +
[docs] def write(self, payload=b'', value=None, **kwargs): + value = int(value).to_bytes(self.size, byteorder=self.byteorder) + return value + payload[self.size:]
+ +
[docs]def enum(size, byteorder='big', typename=None, cached=False): + if typename is not None and not typename.isidentifier(): + raise ValueError('Typename {} is not an identifier'.format(typename)) + + @_enum.unique + class _anonymous_enum(_enum.Enum): + def __new__(cls, value): + member = object.__new__(cls) + member._value_ = value + return member + + @classmethod + def width(cls, payload=b''): + return size + + @classmethod + def valid(cls, payload=b''): + if len(payload) < size: + return False + + try: + cls.value(payload) + return True + except ValueError: + return False + + def __int__(self): + return self._value_ + + @classmethod + def value(cls, payload=b'', field=None): + value = int.from_bytes(payload[:size], byteorder='big') + return cls(value) + + @classmethod + def write(cls, payload=b'', value=None, **kwargs): + value = int(cls(value)).to_bytes(size, byteorder='big') + return value + payload[size:] + + if cached: + class _anonymous_cached_enum(_anonymous_enum): + @classmethod + def cache(cls): + if not cls.cached(): + raise RuntimeError('Bounded value unknown at runtime: ' + + 'Have you called .value() of parent view yet?') + return cls._cache.value + + @classmethod + def cached(cls): + return cls._cache.value is not None + + @classmethod + def value(cls, payload=b'', field=None): + value = int.from_bytes(payload[:size], byteorder='big') + cls._cache.value = cls(value) + return cls.cache() + + @classmethod + def write(cls, payload=b'', value=None, **kwargs): + cls._cache.value = cls(value) + packed = int(cls.cache()).to_bytes(size, byteorder='big') + return packed + payload[size:] + + _anonymous_cached_enum._cache = threading.local() + _anonymous_cached_enum._cache.value = None + _anonymous_enum = _anonymous_cached_enum + + if typename is not None: + _anonymous_enum.__qualname__ = typename + return _anonymous_enum
+ +
[docs]class data(basic): + def __init__(self, size): + if isinstance(size, int) and not size < 0: + fixed = True + elif isview(size) and iscached(size): + fixed = False + else: + raise ValueError('Invalid size: {}'.format(size)) + self.length = size + self.fixed = fixed + + @property + def size(self): + if self.fixed: + return self.length + return self.length.cache() + +
[docs] def width(self, payload=b''): + return self.size
+ +
[docs] def valid(self, payload=b''): + if not self.fixed and not self.length.cached(): + return False + return len(payload) >= self.size
+ +
[docs] def value(self, payload=b'', field=None): + return payload[:self.size]
+ +
[docs] def write(self, payload=b'', value=None, **kwargs): + if len(value) != self.size: + raise ValueError('Invalid value size: {} instead of {}'.format( + len(value), self.size)) + return value + payload[self.size:]
+ +
[docs]class fields(composite): + def __init__(self, **kwargs): + for key, view in kwargs.items(): + if not isview(view): + raise TypeError('Field {} is not a view: {}'.format(key, view)) + self._fields = collections.OrderedDict(kwargs) + +
[docs] def list_fields(self): + return list(self._fields)
+ +
[docs] def visit(self, payload=b'', operator=lambda v, p: v.width(p)): + results = [] + for _, view in self._fields.items(): + width = view.width(payload) + results.append(operator(view, payload)) + payload = payload[width:] + return results
+ +
[docs] def offset(self, payload=b'', field=None): + if field not in self: + raise ValueError('Field {} not in fields'.format(field)) + + offset = 0 + for key, view in self._fields.items(): + if key == field: + return offset + width = view.width(payload) + offset += width + payload = payload[width:]
+ +
[docs] def width(self, payload=b''): + return sum(self.visit(payload, lambda v, p: v.width(p)))
+ +
[docs] def valid(self, payload=b''): + for field, view in self._fields.items(): + if not view.valid(payload): + return False + width = view.width(payload) + payload = payload[width:] + return True
+ +
[docs] def value(self, payload=b'', field=None): + if field is None: + values = self.visit(payload, lambda v, p: v.value(p)) + return {key: value + for (key, _), value in zip(self._fields.items(), values)} + + offset = self.offset(payload, field) + return self._fields[field].value(payload[offset:])
+ +
[docs] def write(self, payload=b'', value=None, **kwargs): + if len(kwargs) > 0: + if value is not None: + raise RuntimeError('Conflict: value and kwargs both given.') + value = kwargs + + for field, svalue in value.items(): + offset = self.offset(payload, field) + svalue = self._fields[field].write(payload[offset:], svalue) + payload = payload[:offset] + svalue + return payload
+ + def __len__(self): + return len(self._fields) + + def __contains__(self, field): + return field in self._fields + + def __getitem__(self, field): + return self.__getattr__(field) + + def __getattr__(self, field): + if field.startswith('__'): + raise AttributeError + return self._fields[field]
+ +
[docs]class packet(fields): + _max_size = 1024 * 1024 + _default_extra_fields = None + _default_header_view = None + _default_field_name = 'length' + _default_fixed_size = 0 + _default_data_view = data + _default_data_name = 'data' + + def __init__(self, header_view=None, fixed_size=None, field_name=None, + data_name=None, data_view=None, extra_fields=None): + + if extra_fields is None: + extra_fields = self._default_extra_fields + if extra_fields is None: + extra_fields = [] + if header_view is None: + header_view = self._default_header_view + if field_name is None: + field_name = self._default_field_name + if fixed_size is None: + fixed_size = self._default_fixed_size + if data_view is None: + data_view = self._default_data_view + if data_name is None: + data_name = self._default_data_name + + if not isinstance(header_view, fields): + raise TypeError('Header not a view.fields: {}'.format(header_view)) + + self._fixed_size = True + if field_name in header_view: + self._fixed_size = False + extra_fields.append(field_name) + + if inspect.isclass(data_view): + if self._fixed_size: + data_view = data_view(fixed_size) + else: + data_view = data_view(header_view._fields[field_name]) + + if not isview(data_view): + raise TypeError('Data view not a view: {}'.format(data_view)) + + self._extra_fields = extra_fields + self._field_name = field_name + self._data_name = data_name + super().__init__(**{'header': header_view, data_name: data_view}) + + @property + def fixed_size(self): + return self._fixed_size + +
[docs] def list_fields(self): + return list(self._fields) + self.header.list_fields()
+ +
[docs] def cache_fields(self, payload=b'', value=None): + for field in self._extra_fields: + self.header.value(payload, field)
+ +
[docs] def offset(self, payload=b'', field=None): + if field in self._fields: + return super().offset(payload, field=field) + return self.header.offset(payload, field=field)
+ +
[docs] def width(self, payload=b''): + if len(self._extra_fields) > 0: + self.cache_fields(payload) + return super().width(payload)
+ +
[docs] def valid(self, payload=b''): + if not self.header.valid(payload): + return False + if len(self._extra_fields) > 0: + self.cache_fields(payload) + if not self.fixed_size: + width = self.header.value(payload, self._field_name) + if width > self._max_size: + return False + return super().valid(payload)
+ +
[docs] def value(self, payload=b'', field=None): + if field == self._data_name: + if len(self._extra_fields) > 0: + self.cache_fields(payload) + return super().value(payload, self._data_name) + elif field is None: + whole = self.header.value(payload, field=None) + whole[self._data_name] = self.value(payload, self._data_name) + return whole + return self.header.value(payload, field)
+ +
[docs] def write(self, payload=b'', value=None, **kwargs): + if len(kwargs) > 0: + if value is not None: + raise RuntimeError('Conflict: value and kwargs both given.') + value = kwargs + + if 'header' in value: + payload = super().write(payload, header=value['header']) + value = dict(value) + del value['header'] + + if len(self._extra_fields) > 0 and self._data_name in value: + self.cache_fields(payload) + + if self._data_name in value: + if len(value) > 1: + headers = dict(value) + del headers[self._data_name] + payload = self.header.write(payload, headers) + + return super().write(payload, + **{self._data_name: value[self._data_name]}) + + return self.header.write(payload, value)
+ + def __len__(self): + return len(self.header) + 1 + + def __contains__(self, field): + return field in self._fields or field in self.header + + def __getitem__(self, field): + return self.__getattr__(field) + + def __getattr__(self, field): + if field.startswith('__'): + raise AttributeError + if field in ['header', self._data_name]: + return self._fields[field] + return self.header[field]
+ +
[docs]class series(composite): + max_quantity = 32 + def __init__(self, item_view, n): + if isinstance(n, int) and not n < 1: + fixed = True + elif isview(n) and iscached(n): + fixed = False + else: + raise ValueError('Invalid quantity: {}'.format(n)) + self.length = n + self.fixed = fixed + self.item = item_view + + @property + def quantity(self): + if self.fixed: + return self.length + return self.length.cache() + +
[docs] def offset(self, payload=b'', field=None): + field = int(field) + if not self.quantity > field: + raise IndexError('Invalid item index: {}'.format(field)) + + total_offset = 0 + for _ in range(field): + width = self.item.width(payload) + payload = payload[width:] + total_offset += width + return total_offset
+ +
[docs] def width(self, payload=b''): + offset = self.offset(payload, self.quantity - 1) + return offset + self.item.width(payload[offset:])
+ +
[docs] def valid(self, payload=b''): + if self.quantity > self.max_quantity: + return False + + for _ in range(self.quantity): + if not self.item.valid(payload): + return False + width = self.item.width(payload) + payload = payload[width:] + return True
+ +
[docs] def value(self, payload=b'', field=None): + if field is None: + results = [] + for _ in range(self.quantity): + results.append(self.item.value(payload)) + width = self.item.width(payload) + payload = payload[width:] + return results + + field = int(field) + if not self.quantity > field: + raise IndexError('Invalid item index: {}'.format(field)) + + return self.item.value(payload[self.offset(payload, field):])
+ +
[docs] def write(self, payload=b'', value=None, **kwargs): + if len(kwargs) > 0: + if value is not None: + raise RuntimeError('Conflict: value and kwargs both given.') + value = kwargs + + if isinstance(value, (list, tuple)): + if len(value) > self.quantity: + raise ValueError( + 'Input list too long: {} out of {} items'.format( + len(value), self.quantity)) + return self.write(payload, dict(enumerate(value))) + + for field, svalue in sorted(value.items()): + field = int(field) + offset = self.offset(payload, field) + svalue = self.item.write(payload[offset:], svalue) + payload = payload[:offset] + svalue + return payload
+ + def __len__(self): + return self.quantity + + def __contains__(self, field): + try: + return int(field) < self.quantity + except ValueError: + return False + + def __getitem__(self, field): + return self.item
+ +
[docs]class union(composite): + def __init__(self, view_table, union_tag): + for key, view in view_table.items(): + if not isview(view): + raise TypeError('Union of {} not a view: {}'.format(key, view)) + + self.view_table = view_table + self.union_tag = union_tag + + @property + def tag(self): + return self.union_tag.cache() + + @property + def active_view(self): + return self.view_table[self.tag] + +
[docs] def offset(self, payload=b'', field=None): + return 0
+ +
[docs] def width(self, payload=b''): + return self.active_view.width(payload)
+ +
[docs] def valid(self, payload=b''): + if self.tag not in self.view_table: + return False + + return self.active_view.valid(payload)
+ +
[docs] def value(self, payload=b'', field=None): + return self.active_view.value(payload, field)
+ +
[docs] def write(self, payload=b'', value=None, **kwargs): + return self.active_view.write(payload, value=value, **kwargs)
+ + def __contains__(self, field): + return field in self.active_view + + def __getitem__(self, field): + return self.active_view.__getitem__(field)
+ +
[docs]class wrapper: + '''This is a view bound to raw bytes. + + See self.fields to list fields within the view. + See help(self._view) for details on the underlying view.''' + + def __init__(self, parent_view): + if not isview(parent_view): + raise TypeError('Wrapping not a view: {}'.format(parent_view)) + self._view = parent_view + + @property + def raw(self): + raise NotImplementedError + + @raw.setter + def raw(self, value): + raise NotImplementedError + + @property + def width(self): + return self._view.width(self.raw) + + @property + def valid(self): + return self._view.valid(self.raw) + + @property + def fields(self, wrapper_attr=['raw']): + if (hasattr(self._view, 'list_fields') + and inspect.ismethod(self._view.list_fields)): + return wrapper_attr + self._view.list_fields() + return wrapper_attr + + @property + def truncated(self): + return self.raw[:self.width] + +
[docs] def offset(self, field): + return self._view.offset(self.raw, field)
+ +
[docs] def value(self, field=None): + if field is None: + return self._view.value(self.raw) + return self._view.value(self.raw, field=field)
+ +
[docs] def write(self, value=None, **kwargs): + self.raw = self._view.write(self.raw, value, **kwargs)
+ +
[docs] def set(self, *kargs, **kwargs): + self.write(*kargs, **kwargs) + self.finalize(truncate=True)
+ +
[docs] def finalize(self, truncate=True): + if truncate: + self.raw = self.truncated + if not self.valid: + raise RuntimeError('Invalid payload for {} view: {}'.format( + self._view, self.raw))
+ + def __len__(self): + if not iscomposite(self._view): + raise NotImplementedError + return len(self._view) + + def __contains__(self, field): + if not iscomposite(self._view): + raise NotImplementedError + return field in self._view + + def __getitem__(self, field): + return self.__getattr__(str(field)) + + def __setitem__(self, field, value): + self.__setattr__(str(field), value) + + def __setattr__(self, field, value): + if (not field.startswith('_') + and iscomposite(self._view) and field in self._view): + self.write(value={field: value}) + else: + object.__setattr__(self, field, value) + + def __getattr__(self, field): + if field.startswith('__'): + raise AttributeError + if iscomposite(self._view) and field in self._view: + subview = self._view[field] + if iscomposite(subview): + return bind(subview, self, field) + return self._view.value(self.raw, field)
+ +def _forward_init(cls, args): + if args is None: + return cls + + if isinstance(args, dict): + if len(args) == 2 and 'kargs' in args and 'kwargs' in args: + return cls(*args['kargs'], **args['kwargs']) + if len(args) == 1 and 'kwargs' in args: + return cls(**args['kwargs']) + if len(args) == 1 and 'kargs' in args: + return cls(*args['kargs']) + + return cls(**args) + return cls(*args) + +
[docs]def bind(parent_view, parent_wrapper, parent_field=None, init=[]): + class _anonymous_subwrapper(wrapper): + def __init__(self): + super().__init__(parent_view) + self._parent = parent_wrapper + self._field = parent_field + + @property + def raw(self): + if self._field is None: + return self._parent.raw + offset = self._parent.offset(self._field) + return self._parent.raw[offset:] + + @raw.setter + def raw(self, value): + if self._field is None: + self._parent.raw = value + return + parent = self._parent.raw + offset = self._parent.offset(self._field) + parent = parent[:offset] + value + parent[offset + len(value):] + self._parent.raw = parent + + typename = str(parent_field) + if typename is not None: + if not typename.isidentifier(): + try: + if int(typename) >= 0: + typename = 'idx_{}'.format(typename) + except ValueError: + pass + + if typename.isidentifier(): + _anonymous_subwrapper.__name__ = '{}'.format(typename) + + _anonymous_subwrapper.__qualname__ = '{}.{}'.format( + parent_wrapper.__class__.__qualname__, _anonymous_subwrapper.__name__) + return _forward_init(_anonymous_subwrapper, init)
+ +
[docs]def like(parent_view, typename=None, init=None): + if typename is not None and not typename.isidentifier(): + raise ValueError('Typename {} is not an identifier'.format(typename)) + + class _anonymous_wrapper(wrapper): + def __init__(self, raw): + super().__init__(parent_view) + self._raw = raw + + @property + def raw(self): + return self._raw + + @raw.setter + def raw(self, value): + self._raw = value + + if typename is not None: + _anonymous_wrapper.__qualname__ = 'wrapper.{}'.format(typename) + _anonymous_wrapper.__name__ = '{}_wrapper'.format(typename) + + return _forward_init(_anonymous_wrapper, init)
+ +
[docs]def cache(base, typename=None, init=None): + if typename is not None and not typename.isidentifier(): + raise ValueError('Typename {} is not an identifier'.format(typename)) + + if not inspect.isclass(base): + raise TypeError('Expect a class: {} is not.'.format(base)) + + if issubclass(base, _enum.Enum): + raise TypeError('Use view.enum(cached=True) to cache enumerations.') + + if iscached(base): + raise TypeError('Class {} already cached.'.format(base)) + + class _anonymous_cached_view(base): + def __init__(self, *kargs, **kwargs): + '''See help({}.__init__) for an accurate signature.'''.format( + base.__qualname__) + + base.__init__(self, *kargs, **kwargs) + self._cache = threading.local() + self._cache.value = None + + def cache(self): + if not self.cached(): + raise RuntimeError('Bounded value unknown at runtime: ' + + 'Have you called .value() of parent view yet?') + return self._cache.value + + def cached(self): + return self._cache.value is not None + + def value(self, payload=b'', field=None): + self._cache.value = super().value(payload) + return self.cache() + + def write(self, payload=b'', *kargs, **kwargs): + payload = super().write(payload, *kargs, **kwargs) + self._cache.value = super().value(payload) + return payload + + _anonymous_cached_view.__qualname__ = 'cached.{}'.format(base.__name__) + _anonymous_cached_view.__name__ = 'cached_{}'.format(base.__name__) + if typename is not None: + _anonymous_cached_view.__name__ = typename + + return _forward_init(_anonymous_cached_view, init)
+ +
[docs]def isview(item): + if not hasattr(item, 'width') or not inspect.ismethod(item.width): + return False + if not hasattr(item, 'valid') or not inspect.ismethod(item.valid): + return False + if not hasattr(item, 'value') or not inspect.ismethod(item.value): + return False + if not hasattr(item, 'write') or not inspect.ismethod(item.write): + return False + return True
+ +
[docs]def iscached(item): + if not hasattr(item, 'cache') or not inspect.ismethod(item.cache): + return False + if not hasattr(item, 'cached') or not inspect.ismethod(item.cache): + return False + return True
+ +
[docs]def iscomposite(item): + if isinstance(item, union): + if not item.union_tag.cached(): + return True + return isinstance(item.active_view, composite) + return isinstance(item, composite)
+ +
[docs]class ip_address(data): + def __init__(self, *, version): + if version not in [4, 6]: + raise ValueError('Invalid IP version: {}'.format(version)) + + if version == 4: + self._ip_type = ipaddress.IPv4Address + super().__init__(4) + else: + self._ip_type = ipaddress.IPv6Address + super().__init__(16) + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + try: + self.value(payload) + return True + except ipaddress.AddressValueError: + return False
+ +
[docs] def value(self, payload=b'', field=None): + value = super().value(payload) + return self._ip_type(value)
+ +
[docs] def write(self, payload=b'', value=None, **kwargs): + if not isinstance(value, self._ip_type): + value = self._ip_type(value) + return super().write(payload, value=value.packed)
+ +
[docs]class codec(data): + @staticmethod + def _is_text_encoding(c): + try: + codecs.encode(b'', c) + return False + except BaseException: + pass + + try: + if not isinstance(codecs.encode('', c), bytes): + return False + return True + except BaseException: + return False + + @staticmethod + def _is_bytes_mapping(c): + if codec._is_text_encoding(c): + return False + + try: + if not isinstance(codecs.encode(b'', c), bytes): + return False + return True + except BaseException: + return False + + @staticmethod + def _is_text_mapping(c): + return c in ['rot_13', 'rot13'] + + @staticmethod + def _build_encode_chain(codecs): + encode_chain = [] + is_input_str = True + for c in codecs: + if codec._is_text_encoding(c): + encode_chain.append((is_input_str, c)) + is_input_str = bool(not is_input_str) + continue + if codec._is_text_encoding(c) and not is_input_str: + raise ValueError( + 'Got bytes for {} in chain: {}'.format(c, codecs)) + if codec._is_bytes_mapping(c) and is_input_str: + raise ValueError( + 'Got str for {} in chain: {}'.format(c, codecs)) + encode_chain.append((True, c)) + + if is_input_str: + raise ValueError( + 'Chain encodes to str instead of bytes: {}'.format(codecs)) + return encode_chain + + @staticmethod + def _build_decode_chain(codecs): + decode_chain = [] + is_input_str = False + for c in reversed(codecs): + if codec._is_text_encoding(c): + decode_chain.append((is_input_str, c)) + is_input_str = bool(not is_input_str) + continue + if codec._is_text_encoding(c) and not is_input_str: + raise ValueError( + 'Got bytes for {} in chain: {}'.format(c, codecs)) + if codec._is_bytes_mapping(c) and is_input_str: + raise ValueError( + 'Got str for {} in chain: {}'.format(c, codecs)) + decode_chain.append((False, c)) + + if not is_input_str: + raise ValueError( + 'Chain decodes to bytes instead of str: {}'.format(codecs)) + return decode_chain + + def __init__(self, *codecs, size): + self.encode_chain = codec._build_encode_chain(codecs) + self.decode_chain = codec._build_decode_chain(codecs) + super().__init__(size) + +
[docs] def valid(self, payload=b''): + if not super().valid(payload): + return False + + try: + self.value(payload) + return True + except ValueError: + return False
+ +
[docs] def value(self, payload=b'', field=None): + value = super().value(payload) + for use_encode, c in self.decode_chain: + if use_encode: + value = codecs.encode(value, c) + else: + value = codecs.decode(value, c) + return value
+ +
[docs] def write(self, payload=b'', value=None, **kwargs): + for use_encode, c in self.encode_chain: + if use_encode: + value = codecs.encode(value, c) + else: + value = codecs.decode(value, c) + return super().write(payload, value=value)
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/consensus.html b/docs/source/_build/html/_modules/lightnion/consensus.html new file mode 100644 index 0000000..8e9d3c0 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/consensus.html @@ -0,0 +1,1092 @@ + + + + + + + + + + + lightnion.consensus — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.consensus

+from base64 import b64encode, b64decode
+import datetime
+import binascii
+import time
+import os
+import re
+
+import urllib.request
+
+import lightnion as lnn
+from tools.keys import get_signing_keys_info
+
+
+# TODO: remove extra (useless) checks/exceptions within this file
+
+
[docs]def scrap(consensus, end_of_field): + """ + Consume lines upon matching a criterion. + + Returns (consensus-without-first-line, first-line) + if end_of_field(first-line) returns True, + else returns (consensus-with-first-line, None) + + :param bytes consensus: input which first line may be consumed + :param function end_of_field: passed a line, returns True when no match + + :returns: a tuple (updated-consensus, next-field-or-None) + """ + if b'\n' not in consensus: + return consensus, None + + line, remaining = consensus.split(b'\n', 1) + if end_of_field(line): + return consensus, None + return remaining, line
+ + +
[docs]def scrap_signature(consensus, fix=b'SIGNATURE'): + """ + Consume a signature field if there is one to consume. + + :param bytes consensus: input which may start with a signature. + + :returns: a tuple (updated-consensus, signature-or-None) + """ + if not consensus.startswith(b'-----BEGIN ' + fix + b'-----'): + return consensus, None + + lines = consensus.split(b'\n', 22) # fits 0-1024o (for 256o sig) + try: + idx_endsig = lines.index(b'-----END ' + fix + b'-----') + except ValueError: + return consensus, None + + remaining = b'\n'.join(lines[idx_endsig + 1:]) + content = b''.join(lines[1:idx_endsig]) + return remaining, content
+ + +
[docs]def parse_address(address): + """ + Take a Tor-formatted v4 or v6 IP address with a port, returns a + cleaned-up version. + + :param str address: input address to be processed + + :returns: a tuple (address, port, guessed-type) where port is an + integer and guessed-type is 4 or 6 (IPv4 or IPv6). + """ + address = address.split(':') + address, port = ':'.join(address[:-1]), address[-1] + + guessed_type = 4 + if address.startswith('['): + address = address[1:] + guessed_type = 6 + if address.endswith(']') or guessed_type == 6: + if not address.endswith(']'): + raise RuntimeError( + 'Seems like an invalid IPv6: {}'.format(address)) + address = address[:-1] + guessed_type = 6 + if address.count(':') > 3: + if not guessed_type == 6: + raise RuntimeError( + 'Seems like an very odd IPv6: {}'.format(address)) + guessed_type = 6 + + return address, int(port), guessed_type
+ + +
[docs]def parse_range_once(value, expand=True): + """ + Take Tor-formatted ranges, then returns it as a list of integers if + expanded or a mix of integers and ranges as [low, high] tuples. + + For example, we use it to parse "p" fields: + https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L2322 + + :param str value: input value to be processed + :param bool expand: do we expand a range as integers? (default: True) + + :returns: a list of integers or a mix of integers and range list/tuples + """ + value = value.split(',') + subvalues = [] + for subvalue in value: + if '-' in subvalue: + low, high = [int(v) for v in subvalue.split('-')] + if expand: + subvalues += list(range(low, high + 1)) + elif low == high - 1: + subvalues += [low, high] + else: + subvalues += [[low, high]] + else: + subvalues += [int(subvalue)] + return subvalues
+ + +
[docs]def parse_ranges(ranges, expand=True): + """ + Take Tor-formatted named ranges, then returns a keyword-based + dictionary of list of integers or mix of integers and range tuples (as + returned by parse_range_once), expanded or not. + + For example, we use it to parse "recommended-client-protocols" fields: + https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L780 + + :param str ranges: input ranges to be processed + :param bool expand: do we expand ranges as integers? (default: True) + + :returns: a dictionary with (range-name, range-content) items + """ + pairs = ranges.split(' ') + content = {} + for key, value in [pair.split('=') for pair in pairs if '=' in pair]: + content[key] = parse_range_once(value, expand) + return content
+ + +
[docs]def parse_params(params): + """ + Take Tor-formatted parameters, then returns a keyword-based dictionary + of integers. + + For example, we use it to parse "params" fields: + https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L1820 + + :param str params: input params to be processed + + :returns: a dictionary with (param-name, param-integer-value) items + """ + pairs = params.split(' ') + content = dict() + for key, value in [pair.split('=') for pair in pairs]: + content[key] = int(value) + return content
+ + +
[docs]def parse_fingerprint(payload): + asbytes = bytes.fromhex(payload) + fingers = asbytes.hex().upper() + fingers = ' '.join([fingers[i:i + 4] for i in range(0, len(fingers), 4)]) + if not fingers == payload: + raise RuntimeError( + 'Fingerprint not conform: {} vs {}'.format(fingers, payload)) + return fingers
+ + +
[docs]def parse_base64(payload, decode=False): + """ + Take an input base64 string, decode it, re-encode it. + + For example, we use it to parse "shared-rand-current-value" fields: + https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L2069 + + :param str payload: input base64-encoded data + :param bool decode: return raw bytes (default: False) + + :returns: a base64-encoded string equivalent to the input + """ + decoded = b64decode(payload + '====') + value = str(b64encode(decoded), 'utf8') + + if not payload[-2:].count('=') == value[-2:].count('='): + value = value.rstrip('=') + '=' * payload[-2:].count('=') + + if not value == payload: + raise RuntimeError('Invalid base64 encoding: {} vs {}'.format( + value, payload)) + + if decode: + return decoded + + return value
+ + +
[docs]def parse_time(timedate): + """ + Take a Tor-formatted (Y-m-d H:M:S) time, parse it, then returns the + corresponding date, time and datetime object. This function assumes + that the given time uses the UTC timezone – as it's the timezone used + into Tor consensuses. + + :param str timedate: input time and date to be parsed + + :returns: a tuple (date-str, time-str, datetime-object) + """ + when = datetime.datetime.strptime(timedate, '%Y-%m-%d %H:%M:%S') + + # convert to UTC-aware datetime object + when = datetime.datetime(*when.timetuple()[:6], + tzinfo=datetime.timezone.utc) + return (when.strftime('%Y-%m-%d'), when.strftime('%H:%M:%S'), when)
+ + +
[docs]def consume_http(consensus): + """ + Consume HTTP headers if present, then returns the remaining input to be + further processed and a set of headers (or None, if none present). + + :param str consensus: input to be processed + + :returns: a tuple (remaining-input, headers-or-None) + """ + + def end_of_field(line): + return line[-1:] != b'\r' + + fields = dict(headers=dict()) + valid = False + while True: + consensus, header = scrap(consensus, end_of_field) + if header is None: + return consensus, fields if valid else None + + valid = True + if b' ' not in header: + continue + + header = header[:-1] + try: + header = str(header, 'utf8') + except Exception: + continue + + if header.startswith('HTTP/'): + version, fields['code'], _ = header.split(' ', 2) + fields['version'] = float(version.split('/', 1)[1]) + + keyword, content = header.split(' ', 1) + if keyword[-1:] == ':': + fields['headers'][keyword[:-1]] = content
+ + +
[docs]def consume_headers(consensus, flavor='unflavored'): + """ + Consume consensus headers if present, then returns the remaining input + to be further processed and a set of headers (or None, if none + present). + + Will consume the following fields: + - network-status-version + - vote-status + - consensus-method + - valid-after + - fresh-until + - valid-until + - voting-delay + - client-versions + - server-versions + - known-flags + - recommended-client-protocols + - recommended-relay-protocols + - required-client-protocols + - required-relay-protocols + - params + - shared-rand-previous-value + - shared-rand-current-value + + :param str consensus: input to be processed + :param str flavor: consensus flavor ('unflavored' or 'microdesc') + + :returns: a tuple (remaining-input, headers-or-None) + """ + if flavor not in ['unflavored', 'microdesc']: + raise NotImplementedError( + 'Consensus flavor "{}" not supported.'.format(flavor)) + + whitelist = [ + b'network-status-version', b'vote-status', b'consensus-method', + b'valid-after', b'fresh-until', b'valid-until', b'voting-delay', + b'client-versions', b'server-versions', b'known-flags', + b'recommended-client-protocols', b'recommended-relay-protocols', + b'required-client-protocols', b'required-relay-protocols', b'params', + b'shared-rand-previous-value', b'shared-rand-current-value'] + + def end_of_field(line): + if b' ' not in line: + return True + keyword, _ = line.split(b' ', 1) + return keyword not in whitelist + + fields = dict() + valid = False + while True: + consensus, header = scrap(consensus, end_of_field) + if header is None: + return consensus, fields if valid else None + + valid = True + if b' ' not in header: + continue + + try: + header = str(header, 'utf8') + except: + continue + + keyword, content = header.split(' ', 1) + if keyword == 'network-status-version': + content = content.split(' ', 1) + if len(content) == 1: + content.append('unflavored') + version, variant = content + content = dict(version=int(version), flavor=variant) + + if not len(fields) == 0: + raise RuntimeError('Expecting {} as first field: {}'.format( + keyword, content)) + if not content['version'] >= 3: + raise RuntimeError('Expecting {} version >= 3 here: {}'.format( + keyword, content)) + if not content['flavor'] == flavor: + raise RuntimeError('Unmatched {} flavor {} here: {}'.format( + keyword, flavor, content)) + + if keyword == 'consensus-method': + content = int(content) + + if not content >= 26: + raise RuntimeError( + 'Consensus version >= 26 required: {}'.format(content)) + + if keyword in ['valid-after', 'fresh-until', 'valid-until']: + date, time_parsed, when = parse_time(content) + content = dict(date=date, time=time_parsed, stamp=when.timestamp()) + + if keyword == 'valid-after': + if not time.time() > content['stamp']: + raise RuntimeError('{} not yet valid! {}'.format( + keyword, content)) # valid-after + + if keyword == 'fresh-until': + if not content['stamp'] > fields['valid-after']['stamp']: + raise RuntimeError('{} not fresh! {}'.format( + keyword, content)) # fresh-until + + if keyword == 'valid-until': + if not time.time() < content['stamp']: + raise RuntimeError('{} no more valid! {}'.format( + keyword, content)) # valid-until + + if keyword == 'voting-delay': + vote, dist = content.split(' ', 1) + content = dict(vote=int(vote), dist=int(dist)) + + if keyword in ['client-versions', 'server-versions']: + content = content.split(',') + + if keyword == 'known-flags': + content = content.split(' ') + + if keyword.startswith(('recommended', 'required')): + content = parse_ranges(content) + + if keyword == 'params': + content = parse_params(content) + + if keyword.startswith('shared-rand'): + reveals, value = content.split(' ') + + value = parse_base64(value) + content = {'NumReveals': int(reveals), 'Value': value} + + if not content['NumReveals'] >= 0: + raise RuntimeError('{} must be >= 0 here: {}'.format( + keyword, content)) + + fields[keyword] = content
+ + +
[docs]def consume_dir_sources(consensus): + """ + Consume directory source listing if present, then returns the remaining + input to be further processed and a set of directory sources (or None, + if none present). + + Will consume the following fields: + - dir-source + - contact + - vote-digest + + :param str consensus: input to be processed + + :returns: a tuple (remaining-input, headers-or-None) + """ + whitelist = [b'dir-source', b'contact', b'vote-digest'] + + def end_of_field(line): + if b' ' not in line: + return True + keyword, _ = line.split(b' ', 1) + return keyword not in whitelist + + fields = [] + valid = False + while True: + consensus, header = scrap(consensus, end_of_field) + if header is None: + if not valid: + return consensus, None + break + + valid = True + if b' ' not in header: + continue + + try: + header = str(header, 'utf8') + except: + continue + + keyword, content = header.split(' ', 1) + if keyword == 'vote-digest': + value = bytes.fromhex(content).hex() + if not value.lower() == content.lower(): + raise RuntimeError('Unmatched {} here: {} {}'.format( + keyword, value, content)) + content = value + + if keyword == 'dir-source': + nickname, identity, hostname, address, dirport, orport = ( + content.split(' ', 5)) + + value = bytes.fromhex(identity).hex() + if not value.lower() == identity.lower(): + raise RuntimeError('Unmatched {} here: {} {}'.format( + keyword, value, content)) + identity = value + + content = dict(nickname=nickname, identity=identity, + hostname=hostname, address=address, dirport=int(dirport), + orport=int(orport)) + + if not 0 < content['dirport'] < 65536: + raise RuntimeError('Invalid dirport here: {}'.format(content)) + if not 0 < content['orport'] < 65536: + raise RuntimeError('Invalid orport here: {}'.format(content)) + + if keyword != 'dir-source' and fields[-1][0] == 'dir-source': + if not (keyword not in fields[-1][1]): + raise RuntimeError( + 'Unexpected {} with: {}'.format(keyword, fields[-1])) + assert keyword not in fields[-1][1] + fields[-1][1][keyword] = content + continue + + fields.append((keyword, content)) + + full_entries_count = len([v for k, v in fields if k == 'dir-source']) + + if not full_entries_count == len(fields): + raise RuntimeError('Incomplete entry or corrupted?') + + if full_entries_count == len(fields): + fields = [v for k, v in fields] + + return consensus, fields
+ + +
[docs]def consume_routers(consensus, flavor='unflavored'): + """ + Consume router listing if present, then returns the remaining input to + be further processed and a set of routers (or None, if none present). + + Will consume the following fields: + - r + - m + - s + - v + - pr + - w + - p (unflavored only) + - a (unflavored only) + + :param str consensus: input to be processed + :param str flavor: consensus flavor ('unflavored' or 'microdesc') + + :returns: a tuple (remaining-input, headers-or-None) + """ + if flavor not in ['unflavored', 'microdesc']: + raise NotImplementedError( + 'Consensus flavor "{}" not supported.'.format(flavor)) + + # TODO: check if 'a' fields in microdesc consensus are still a thing + if flavor == 'unflavored': + whitelist = [b'r', b'm', b's', b'v', b'pr', b'w', b'p', b'a'] + elif flavor == 'microdesc': + whitelist = [b'r', b'm', b's', b'v', b'pr', b'w', b'a'] + + aliases = dict(m='micro-digest', pr='protocols', s='flags', v='version', + p='exit-policy', a='or-address') + + def end_of_field(line): + if b' ' not in line: + return True + keyword, _ = line.split(b' ', 1) + return keyword not in whitelist + + fields = [] + valid = False + while True: + consensus, header = scrap(consensus, end_of_field) + if header is None: + if not valid: + return consensus, None + break + + valid = True + if b' ' not in header: + continue + + try: + header = str(header, 'utf8') + except: + continue + + keyword, content = header.split(' ', 1) + if keyword == 'm': + content = parse_base64(content) + + if keyword == 's': + content = content.split(' ') + + if keyword == 'pr': + content = parse_ranges(content) + + if keyword == 'w': + content = parse_params(content) + + if keyword == 'p': + policy_type, portlist = content.split(' ') + if not policy_type in ['accept', 'reject']: + raise RuntimeError('Unknown policy: {}'.format(policy_type)) + + portlist = parse_range_once(portlist, expand=False) + content = {'type': policy_type, 'PortList': portlist} + + if keyword == 'a': + address, port, guessed_type = parse_address(content) + content = [{'ip': address, 'port': port, 'type': guessed_type}] + + if keyword == 'r' and flavor == 'unflavored': + (nickname, identity, digest, date, time, address, orport, + dirport) = content.split(' ', 7) + + digest = parse_base64(digest) + identity = parse_base64(identity) + date, time, when = parse_time(' '.join([date, time])) + + content = dict(nickname=nickname, identity=identity, digest=digest, + date=date, time=time, stamp=when.timestamp(), address=address, + dirport=int(dirport), orport=int(orport)) + + if not 0 <= content['dirport'] < 65536: + raise RuntimeError('Invalid dirport here: {}'.format(content)) + if not 0 < content['orport'] < 65536: + raise RuntimeError('Invalid orport here: {}'.format(content)) + + if keyword == 'r' and flavor == 'microdesc': + nickname, identity, date, time, address, orport, dirport = ( + content.split(' ', 6)) + + identity = parse_base64(identity) + date, time, when = parse_time(date + ' ' + time) + + content = dict(nickname=nickname, identity=identity, date=date, + time=time, stamp=when.timestamp(), address=address, + dirport=int(dirport), orport=int(orport)) + + if not 0 <= content['dirport'] < 65536: + raise RuntimeError('Invalid dirport here: {}'.format(content)) + if not 0 < content['orport'] < 65536: + raise RuntimeError('Invalid orport here: {}'.format(content)) + + if keyword != 'r' and fields[-1][0] == 'r': + if keyword in aliases: + keyword = aliases[keyword] + + if keyword == 'or-address' and keyword in fields[-1][1]: + content[0]['ignored'] = True + fields[-1][1]['or-address'] += content + continue + + if not (keyword not in fields[-1][1]): + raise RuntimeError('Unexpected {} with: {}'.format(keyword, + fields[-1])) + + fields[-1][1][keyword] = content + continue + + fields.append((keyword, content)) + + full_entries_count = len([v for k, v in fields if k == 'r']) + if not full_entries_count == len(fields): + raise RuntimeError('Invalid or corrupted entry?') + + if full_entries_count == len(fields): + fields = [v for k, v in fields] + + return consensus, fields
+ + + + + +
[docs]def parse(consensus, flavor='unflavored'): + """ + Parse a raw consensus with the given flavor, then returns sanitized + entries as a python dictionary. + + :param str consensus: input to be processed + :param str flavor: consensus flavor ('unflavored' or 'microdesc') + + :returns: a python dictionary + """ + fields = dict(flavor=flavor) + + consensus, http = consume_http(consensus) + if http is not None: + fields['http'] = http + + consensus, headers = consume_headers(consensus, flavor) + if headers is not None: + fields['headers'] = headers + + consensus, dir_sources = consume_dir_sources(consensus) + if dir_sources is not None: + fields['dir-sources'] = dir_sources + + consensus, routers = consume_routers(consensus, flavor) + if routers is not None: + fields['routers'] = routers + + consensus, footer = consume_footer(consensus, flavor) + if footer is not None: + fields['footer'] = footer + + if not ('headers' in fields + and 'dir-sources' in fields + and 'routers' in fields + and 'footer' in fields): + raise RuntimeError('Missing entry: {}'.format(list(fields))) + + return fields, consensus
+ + +
[docs]def extract_date(consensus, field): + """ + Retrieve the value from a date field as a datetime object. + """ + + pattern = re.compile('{} [^\n]+'.format(field)) + found = pattern.search(consensus) + + if found is None: + raise RuntimeError('Field {} not found in consensus.'.format(field)) + + date_s = consensus[found.start():found.end()] + date = datetime.datetime.strptime(date_s, '{} %Y-%m-%d %H:%M:%S'.format(field)) + date.replace(tzinfo=datetime.timezone.utc) + + return date
+ + +
[docs]def extract_nodes_digests_unflavored(consensus_raw): + """Retrieve a list of the digests of all routers in the consensus. + """ + + # We retrieve the third fields of the lines looking like that: + #r VSIFskylab AD14gl4Llgnuz/Xk4FKXF3cuU8c 3VZwLdY0Et7vqUbqDdXg3WGGHCw 2020-01-12 23:47:04 104.218.63.73 443 80 + digests_raw = re.findall(r'^r [^ ]+ [^ ]+ ([^ ]+)', consensus_raw, re.MULTILINE) + digests_bytes = [b64decode(digest + '====') for digest in digests_raw] + + return digests_bytes
+ + +
[docs]def extract_nodes_digests_micro(consensus_raw): + """Retrieve a list of the digests of all routers in the consensus. + """ + # We retrieve the third fields of the lines looking like that: + #m v7E0VcMnwVepVUh+j193lrbqbWOg26g9hXOBwSYv32I + digests_raw = re.findall(r'^m ([^\n]+)', consensus_raw, re.MULTILINE) + digests_bytes = [digest for digest in digests_raw] + + return digests_bytes
+ + +
[docs]def download(state, flavor='microdesc', cache=True): + if flavor not in ['unflavored', 'microdesc']: + raise NotImplementedError( + 'Consensus flavor "{}" not supported.'.format(flavor)) + + if cache: + try: + return state, lnn.cache.consensus.get(flavor) + except BaseException: + pass + + endpoint = '/tor/status-vote/current/consensus' + if flavor == 'microdesc': + endpoint += '-microdesc' + + ip = '%s:%d'%('127.0.0.1',7000) #for real tor, change to 9051 + keys = get_signing_keys_info(ip) + state, cons = lnn.hop.directory_query(state, endpoint) + + cons_original = cons + cons, http = consume_http(cons) + + if flavor != 'microdesc': + if not lnn.signature.verify(cons.decode('utf-8'), keys): + raise RuntimeError('Consensus Verification Failed') + + consensus, remaining = parse(cons_original, flavor=flavor) + + if consensus is None or remaining is None or not len(remaining) == 0: + raise RuntimeError('Unable to parse downloaded consensus!') + + if cache: + lnn.cache.consensus.put(consensus) + + return state, consensus
+ + +
[docs]def download_direct(hostname, port, flavor='microdesc'): + """Retrieve consensus via a direct HTTP connection. + :param hostname: host name of the node from which to retrieve the consensus. + :param port: port of the node from which to retrieve the consensus. + :param flavor: flavour of the consensus to retrieve. + :param cache: if the retrieved consensus should put in the cache. + """ + + if flavor not in ['unflavored', 'microdesc']: + raise NotImplementedError( + 'Consensus flavor "{}" not supported.'.format(flavor)) + + endpoint = 'consensus-microdesc' if flavor == 'microdesc' else 'consensus' + uri = 'http://%s:%d/tor/status-vote/current/%s' % (hostname, port, endpoint) + + res = urllib.request.urlopen(uri) + cons = res.read() + + ip = '%s:%d'%(hostname,port) + keys = get_signing_keys_info(ip) + + if flavor != 'microdesc': + if not lnn.signature.verify(cons.decode('utf-8'), keys): + raise RuntimeError('Consensus Verification Failed') + + consensus, remaining = parse(cons, flavor=flavor) + + if consensus is None or remaining is None or not len(remaining) == 0: + raise RuntimeError('Unable to parse downloaded consensus!') + + return consensus, keys
+ +
[docs]def download_raw(hostname, port, flavor='unflavored'): + """Retrieve raw consensus via a direct HTTP connection. + :param hostname: host name of the node from which to retrieve the consensus. + :param port: port of the node from which to retrieve the consensus. + :param flavor: flavour of the consensus to retrieve. + """ + + if flavor not in ['unflavored', 'microdesc']: + raise NotImplementedError( + 'Consensus flavor "{}" not supported.'.format(flavor)) + + endpoint = 'consensus-microdesc' if flavor == 'microdesc' else 'consensus' + uri = 'http://%s:%d/tor/status-vote/current/%s' % (hostname, port, endpoint) + + res = urllib.request.urlopen(uri) + cons = res.read().decode('utf-8') + + return cons
+ +
[docs]def load(file_name, cache=True): + """Load the consensus from a file + :param file_name: the name of the file in consensus_file + :param cache: if we cache the newly downloaded consensus + :return: the parsed consensus""" + + abs_path = "/vagrant/consensus_files/"+file_name + + if not os.path.exists(abs_path): + raise FileNotFoundError() + + if cache: + try: + return lnn.cache.consensus.get("unflavored") + except BaseException: + pass + + with open(abs_path, "r") as file: + answer = file.read() + + consensus, remaining = consume_routers(answer) + + if consensus is None or remaining is None or not len(remaining) == 0: + raise RuntimeError('Unable to parse downloaded consensus!') + + if cache: + lnn.cache.consensus.put(consensus) + + return consensus
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/constants.html b/docs/source/_build/html/_modules/lightnion/constants.html new file mode 100644 index 0000000..8d14d65 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/constants.html @@ -0,0 +1,207 @@ + + + + + + + + + + + lightnion.constants — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.constants

+
+key_len = 16 # (aes128 CTR IV=0)
+hash_len = 20 # (sha1)
+
+payload_len = 509
+full_cell_len = payload_len + 5
+max_payload_len = 1024 * 1024 # (arbitrary, TODO: find a good one)
+
+
[docs]class flow: + # 7.3. Circuit-level flow control +
[docs] class circuit: + default = 1000 + lowlimit = 900 + increment = 100
+ + # 7.4. Stream-level flow control +
[docs] class stream: + default = 500 + lowlimit = 450 + increment = 50
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/create.html b/docs/source/_build/html/_modules/lightnion/create.html new file mode 100644 index 0000000..b0c2581 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/create.html @@ -0,0 +1,467 @@ + + + + + + + + + + + lightnion.create — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.create

+import collections
+import base64
+import queue
+import time
+import asyncio
+import logging
+
+import nacl.public
+
+import lightnion as lnn
+
+
[docs]class circuit(collections.namedtuple('circuit', ['id', 'material'])): + stream_windows = None # per-stream window (see onion._auto_sendme hack) + last_stream_id = 0 + destroyed = False + window = None # per-circuit window (see onion._auto_sendme hack) + reason = None + queue = None + +
[docs] def put(self, payload): + return self.queue.put(payload)
+ +
[docs] def get(self, block=True): + return self.queue.get(block=block)
+ + +
[docs]async def fast_async(link): + """Use a CREATE_FAST cell to initiate a one-hop circuit. + + The expected transcript is: + + (... perform a proper link handshake here ...) + + Onion Proxy (client) Onion Router (server) + + / [ 7] :------ CREATE_FAST¹ -------> [8] + | [10] <------ CREATED_FAST -------: [9] + | + | Shared circuit key (via KDF-TOR²) + \ + + ¹The initiator picks an available circuit ID (CircID) with its most + significant bit equal to 1 (v4-or-higher links). + + :param link: a link.link object, see: link.initiate + + :returns: a onion.state object, see: onion.state + """ + + # Pick an available ID (link version > 3) + link.last_id += 1 + circuit_id = 0x80000000 + link.last_id + while circuit_id in link.circuits: + circuit_id += 1 + + # Sanity checks + try: + packed = lnn.cell.view.uint(4).write(value=circuit_id) + assert circuit_id == lnn.cell.view.uint(4).value(packed) + except (OverflowError, AssertionError): + link.last_id = 0 + raise RuntimeError('Erroneous circuit ID: {} ({})'.format( + circuit_id, packed)) + + # Send CREATE_FAST cell (contains OP material) + op_cell = lnn.cell.create_fast.pack(circuit_id) + await link.send_async(op_cell) + + # (register a dummy circuit first to reuse the circuit API) + dummy = circuit(circuit_id, None) + await link.register_async(dummy) + + # Receive CREATED_FAST cell (contains OR material and key confirmation) + try: + or_cell = lnn.cell.created_fast.cell(await link.get_async(dummy)) + except KeyError: + raise RuntimeError('Got DESTROY cell while creating circuit.') + + # (unregister the dummy circuit before validation/material confirmation) + await link.unregister_async(dummy) + if not or_cell.valid: + raise RuntimeError('Got invalid CREATED cell: {}'.format(or_cell.raw)) + + # Compute KDF-TOR on OP+OR materials + material = lnn.crypto.kdf_tor( + op_cell.create_fast.material + or_cell.created_fast.material) + + # Confirm shared derived material + if not material.key_hash == or_cell.created_fast.derivative: + raise RuntimeError( + 'Invalid CREATE_FAST, invalid KDF-TOR confirmation: '.format( + (material.key_hash, or_cell.created_fast.derivative))) + + # Register the real circuit + final = circuit(circuit_id, material) + await link.register_async(final) + + return lnn.onion.state(link, final)
+ + +
[docs]def fast(link): + """Use a CREATE_FAST cell to initiate a one-hop circuit. + + The expected transcript is: + + (... perform a proper link handshake here ...) + + Onion Proxy (client) Onion Router (server) + + / [ 7] :------ CREATE_FAST¹ -------> [8] + | [10] <------ CREATED_FAST -------: [9] + | + | Shared circuit key (via KDF-TOR²) + \ + + ¹The initiator picks an available circuit ID (CircID) with its most + significant bit equal to 1 (v4-or-higher links). + + :param link: a link.link object, see: link.initiate + + :returns: a onion.state object, see: onion.state + """ + + # Pick an available ID (link version > 3) + link.last_id += 1 + circuit_id = 0x80000000 + link.last_id + while circuit_id in link.circuits: + circuit_id += 1 + + # Sanity checks + try: + packed = lnn.cell.view.uint(4).write(value=circuit_id) + assert circuit_id == lnn.cell.view.uint(4).value(packed) + except (OverflowError, AssertionError): + link.last_id = 0 + raise RuntimeError('Erroneous circuit ID: {} ({})'.format( + circuit_id, packed)) + + # Send CREATE_FAST cell (contains OP material) + op_cell = lnn.cell.create_fast.pack(circuit_id) + link.send(op_cell) + + # (register a dummy circuit first to reuse the circuit API) + dummy = circuit(circuit_id, None) + link.register(dummy) + + # Receive CREATED_FAST cell (contains OR material and key confirmation) + try: + or_cell = lnn.cell.created_fast.cell(link.get(dummy)) + except KeyError: + raise RuntimeError('Got DESTROY cell while creating circuit.') + + # (unregister the dummy circuit before validation/material confirmation) + link.unregister(dummy) + if not or_cell.valid: + raise RuntimeError('Got invalid CREATED cell: {}'.format(or_cell.raw)) + + # Compute KDF-TOR on OP+OR materials + material = lnn.crypto.kdf_tor( + op_cell.create_fast.material + or_cell.created_fast.material) + + # Confirm shared derived material + if not material.key_hash == or_cell.created_fast.derivative: + raise RuntimeError( + 'Invalid CREATE_FAST, invalid KDF-TOR confirmation: '.format( + (material.key_hash, or_cell.created_fast.derivative))) + + # Register the real circuit + final = circuit(circuit_id, material) + link.register(final) + + return lnn.onion.state(link, final)
+ + +
[docs]def ntor_raw(link, payload, timeout=None): + # Pick an available ID (link version > 3) + link.last_id += 1 + circuit_id = 0x80000000 + link.last_id + while circuit_id in link.circuits: + circuit_id += 1 + + # Sanity checks + try: + packed = lnn.cell.view.uint(4).write(value=circuit_id) + assert circuit_id == lnn.cell.view.uint(4).value(packed) + except (OverflowError, AssertionError): + link.last_id = 0 + raise RuntimeError('Erroneous circuit ID: {} ({})'.format( + circuit_id, packed)) + + # Build a CREATE2 cell containing this first handshake part + handshake = lnn.cell.create2.pack(circuit_id, payload) + + # Change: Instead, the handshake data is send to the client with the handshake data. + return circuit_id, lnn.cell.pad(handshake)
+ + +
[docs]def ntor_raw2(circuit_id, payload): + + # Build a CREATE2 cell containing this first handshake part + handshake = lnn.cell.create2.pack(circuit_id, payload) + + # The handshake data is send to the client. + return lnn.cell.pad(handshake)
+ + +# Was in the method above, before. +
[docs]def ntor_handshake(link, circuit_id, handshake, timeout=None): + link.send(handshake) + + # (register a dummy circuit first to reuse the circuit API) + dummy = circuit(circuit_id, None) + link.register(dummy) + + # Receive answers + cell = None + try: + if timeout is None: + cell = lnn.cell.created2.cell(link.get(dummy)) + else: + for _ in range(10): + try: + cell = lnn.cell.created2.cell( + link.get(dummy, block=False)) + break + except queue.Empty: + time.sleep(timeout / 10) + if cell is None: + link.unregister(dummy) + raise RuntimeError('Got timeout while creating circuit.') + except KeyError: + raise RuntimeError('Got DESTROY cell while creating circuit.') + + # (unregister the dummy circuit before validation/material confirmation) + link.unregister(dummy) + if not cell.valid: + raise RuntimeError('Got invalid CREATED2 cell: {}'.format(cell.raw)) + + return cell.created2.data
+ + +
[docs]async def ntor_async(link, descriptor): + identity = base64.b64decode(descriptor['router']['identity'] + '====') + onion_key = base64.b64decode(descriptor['ntor-onion-key'] + '====') + + # Perform the first part of our handshake + ephemeral_key, payload = lnn.crypto.ntor.hand(identity, onion_key) + + circuit_id, payload = await ntor_raw_async(link, payload) + + # Perform the last part of our handshake + material = lnn.crypto.ntor.shake(ephemeral_key, payload, + identity, onion_key, length=92) + + # Register the real circuit + final = circuit(circuit_id, lnn.crypto.ntor.kdf(material)) + await link.register_async(final) + + return lnn.onion.state(link, final)
+ + +
[docs]def ntor(link, descriptor): + identity = base64.b64decode(descriptor['router']['identity'] + '====') + onion_key = base64.b64decode(descriptor['ntor-onion-key'] + '====') + + # Perform the first part of our handshake + ephemeral_key, payload = lnn.crypto.ntor.hand(identity, onion_key) + + circuit_id, handshake = ntor_raw(link, payload) + payload = ntor_handshake(link, circuit_id, handshake) + + # Perform the last part of our handshake + material = lnn.crypto.ntor.shake(ephemeral_key, payload, + identity, onion_key, length=92) + + # Register the real circuit + final = circuit(circuit_id, lnn.crypto.ntor.kdf(material)) + link.register(final) + + return lnn.onion.state(link, final)
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/crypto/kdf.html b/docs/source/_build/html/_modules/lightnion/crypto/kdf.html new file mode 100644 index 0000000..4a07861 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/crypto/kdf.html @@ -0,0 +1,209 @@ + + + + + + + + + + + lightnion.crypto.kdf — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.crypto.kdf

+import hashlib
+import collections
+
+from .. import constants
+
+
[docs]class kdf_tor: + def __init__(self, raw_material): + counter = 0 + derived = bytes() + while len(derived) < constants.key_len * 2 + constants.hash_len * 3: + shasum = hashlib.sha1(raw_material + counter.to_bytes(1, 'big')) + derived += shasum.digest() + counter += 1 + + h = constants.hash_len + k = constants.key_len + + self.key_hash = derived[:h] + self.forward_digest = derived[h:h*2] + self.backward_digest = derived[h*2:h*3] + self.forward_key = derived[h*3:h*3+k] + self.backward_key = derived[h*3+k:h*3+k*2]
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/crypto/ntor.html b/docs/source/_build/html/_modules/lightnion/crypto/ntor.html new file mode 100644 index 0000000..40d2768 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/crypto/ntor.html @@ -0,0 +1,356 @@ + + + + + + + + + + + lightnion.crypto.ntor — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.crypto.ntor

+import nacl.bindings
+import nacl.public
+import nacl.hash
+
+from .. import constants
+
+x25519_keylen = 32
+sha256_outlen = 32
+sha256_blklen = 64
+
+protoid = b'ntor-curve25519-sha256-1'
+tweaks = dict(
+    expand=protoid+b':key_expand',
+    verify=protoid+b':verify',
+    server=protoid+b'Server',
+    key=protoid+b':key_extract',
+    mac=protoid+b':mac')
+
+
[docs]class hmac: + prf = lambda data: nacl.hash.sha256(data, encoder=nacl.encoding.RawEncoder) + block_size = sha256_blklen + output_size = sha256_outlen + +
[docs] @staticmethod + def digest(key, message): + assert isinstance(key, bytes) and isinstance(message, bytes) + + if len(key) > hmac.block_size: + key = hmac.prf(key) + if len(key) < hmac.block_size: + key = key.ljust(hmac.block_size, b'\x00') + + outer_key = bytes([k ^ 0x5c for k in key]) + inner_key = bytes([k ^ 0x36 for k in key]) + + return hmac.prf(outer_key + hmac.prf(inner_key + message))
+ +
[docs] @staticmethod + def tweaked(tweak): + tweak = tweaks[tweak] + def _hash(data): + return hmac.digest(tweak, data) + return _hash
+ +h_verify = hmac.tweaked('verify') +h_mac = hmac.tweaked('mac') + +
[docs]class kdf: +
[docs] @staticmethod + def rfc5869(material, salt, context, length): + key = hmac.digest(salt, material) + + n = (length // hmac.output_size) + 1 + output = b'' + previous = b'' + for idx in range(1, n + 1): + t_idx = previous + context + idx.to_bytes(1, byteorder='big') + t_idx = hmac.digest(key, t_idx) + + output += t_idx + previous = t_idx + return output[:length]
+ +
[docs] @staticmethod + def ntor(material, length): + return kdf.rfc5869(material, tweaks['key'], tweaks['expand'], length)
+ + def __init__(self, material): + width = constants.key_len * 2 + constants.hash_len * 3 + if not len(material) == width: + raise RuntimeError( + 'Unexpected length: {} (need {})'.format(len(material), width)) + + h = constants.hash_len + k = constants.key_len + + self.key_hash = material[h*2+k*2:] + self.forward_digest = material[:h] + self.backward_digest = material[h:h*2] + self.forward_key = material[h*2:h*2+k] + self.backward_key = material[h*2+k:h*2+k*2]
+ +
[docs]def hand(identity, onion_key): + client_keys = nacl.public.PrivateKey.generate() + message = identity + onion_key + bytes(client_keys.public_key) + + assert len(message) == constants.hash_len + x25519_keylen * 2 + return client_keys, message
+ +
[docs]def server(server_keys, identity, message, length): + assert len(message) == constants.hash_len + x25519_keylen * 2 + + if identity != message[:20]: + return None + + if bytes(server_keys.public_key) != message[20:52]: + return None + + client_pubkey = nacl.public.PublicKey(message[52:]) + ephemeral_key = nacl.public.PrivateKey.generate() + + exp_share = nacl.bindings.crypto_scalarmult( + bytes(ephemeral_key), bytes(client_pubkey)) + exp_onion = nacl.bindings.crypto_scalarmult( + bytes(server_keys), bytes(client_pubkey)) + + if sum(exp_share) == 0 or sum(exp_onion) == 0: + return None + + secret_input = (exp_share + exp_onion + identity + + bytes(server_keys.public_key) + + bytes(client_pubkey) + + bytes(ephemeral_key.public_key) + + protoid) + verify = h_verify(secret_input) + + auth_input = (verify + identity + + bytes(server_keys.public_key) + + bytes(ephemeral_key.public_key) + + bytes(client_pubkey) + + tweaks['server']) + message = bytes(ephemeral_key.public_key) + h_mac(auth_input) + + return kdf.ntor(secret_input, length), message
+ +
[docs]def shake(client_keys, message, identity, onion_key, length): + assert len(message) == x25519_keylen + sha256_outlen + + server_pubkey = nacl.public.PublicKey(message[:x25519_keylen]) + server_auth = message[x25519_keylen:] + + exp_share = nacl.bindings.crypto_scalarmult( + bytes(client_keys), bytes(server_pubkey)) + exp_onion = nacl.bindings.crypto_scalarmult( + bytes(client_keys), bytes(onion_key)) + + if sum(exp_share) == 0 or sum(exp_onion) == 0: + return None + + secret_input = (exp_share + exp_onion + identity + + bytes(onion_key) + + bytes(client_keys.public_key) + + bytes(server_pubkey) + + protoid) + verify = h_verify(secret_input) + + auth_input = (verify + identity + + bytes(onion_key) + + bytes(server_pubkey) + + bytes(client_keys.public_key) + + tweaks['server']) + + if h_mac(auth_input) != server_auth: + return None + + return kdf.ntor(secret_input, length)
+ +def _selfshake(length): + import os + server_keys = nacl.public.PrivateKey.generate() + onion_key = bytes(server_keys.public_key) + identity = os.urandom(constants.hash_len) + + client_keys, message = hand(identity, onion_key) + shared, message = server(server_keys, identity, message, length) + assert shared == shake(client_keys, message, identity, onion_key, length) + + assert len(shared) == length + return shared +
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/descriptors.html b/docs/source/_build/html/_modules/lightnion/descriptors.html new file mode 100644 index 0000000..2492b2b --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/descriptors.html @@ -0,0 +1,855 @@ + + + + + + + + + + + lightnion.descriptors — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.descriptors

+import base64
+import hashlib
+import logging
+import urllib.request
+
+import lightnion as lnn
+from lightnion import consensus
+
+
[docs]def compute_descriptor_digest(fields, descriptors, entry, flavor): + """ + (details of the parser – private API) + + Plugs into our consumer to compute extra "digest" fields that expose + the (micro-)descriptor's (micro-)digest, enabling us to easily fetch + associated entries within a consensus. + + :param list fields: "fields" accumulator used by the consumer + :param bytes descriptors: remaining input to be parsed by the consumer + :param bytes entry: last line being parsed by the consumer + :param str flavor: flavor used by the consumer + + :returns: updated (or not) fields accumulator + """ + + if flavor == 'unflavored': + digest_name = 'digest' + pivot_field = 'router' + starts_hash = b'router ' + ends_hasher = b'router-signature' + base_offset = 1 + base_legacy = 0 + shalgorithm = hashlib.sha1 + # https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L602 + else: + digest_name = 'micro-digest' + pivot_field = 'onion-key' + starts_hash = b'onion-key' + ends_hasher = b'id ' + base_offset = 7 + 1 + 43 + 1 # 'ed25519 [identity]\n' + base_legacy = 7 + 1 + 27 + 1 # 'rsa1024 [identity]\n' + shalgorithm = hashlib.sha256 + # https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L3202 + + # 1. check if we're starting to parse a fresh entry before computing digest + if digest_name not in fields[-1] or ( + entry.startswith(starts_hash) and pivot_field in fields[-1]): + if pivot_field in fields[-1]: + fields.append(dict()) + + # 1.5 (extra sanity checks: double-check that we have what we need) + if not entry.startswith(starts_hash): + raise RuntimeError('Expecting {} to start the payload: {}'.format( + starts_hash, entry)) + if not ends_hasher in descriptors: + raise RuntimeError( + 'Expecting {} within: {}'.format(ends_hasher, descriptors)) + + try: + # 2. compute the offset to the ends what goes into the hash + sigoffset = descriptors.index(ends_hasher) + + # TODO: better support? + sigoffset += len(ends_hasher) + base_offset + if b'rsa1024' in descriptors[:sigoffset]: + sigoffset -= base_offset + sigoffset += base_legacy + + # 3. rebuild the original (including its first line being parsed) + full_desc = entry + b'\n' + descriptors[:sigoffset] + + # 4. compute the base64-encoded hash with the right algorithm + digest = base64.b64encode(shalgorithm(full_desc).digest()) + + # 5. strips the trailing '=' as specified + fields[-1][digest_name] = str(digest.rstrip(b'='), 'utf8') + except ValueError: + pass + + if not digest_name in fields[-1]: + raise RuntimeError('Was unable to generate proper sum.') + + return fields
+ +
[docs]def consume_descriptors(descriptors, flavor='microdesc'): + if flavor not in ['microdesc', 'unflavored']: + raise NotImplementedError( + 'Consensus flavor "{}" not supported.'.format(flavor)) + + # TODO: check if family in microdesc are appropriate + if flavor == 'microdesc': + whitelist = [b'onion-key', b'ntor-onion-key', b'p', b'p6', b'id', + b'family'] + else: + whitelist = [b'router', b'identity-ed25519', b'master-key-ed25519', + b'platform', b'proto', b'published', b'fingerprint', b'uptime', + b'bandwidth', b'extra-info-digest', b'qkk', b'caches-extra-info', + b'onion-key', b'signing-key', b'onion-key-crosscert', + b'ntor-onion-key-crosscert', b'hidden-service-dir', b'contact', + b'ntor-onion-key', b'reject', b'accept', b'tunnelled-dir-server', + b'router-sig-ed25519', b'router-signature', b'ipv6-policy', + b'family', b'protocols', b'or-address', b'allow-single-hop-exits', + b'hibernating'] + aliases = {'p': 'policy', 'p6': 'ipv6-policy', 'id': 'identity'} + + def end_of_field(line): + if b' ' not in line: + line += b' ' + keyword, _ = line.split(b' ', 1) + return keyword not in whitelist + + fields = [dict()] + valid = False + while True: + descriptors, entry = consensus.scrap(descriptors, end_of_field) + if entry is None: + if not valid: + return descriptors, None + break + fields = compute_descriptor_digest(fields, descriptors, entry, flavor) + + valid = True + if b' ' not in entry: + entry += b' ' + + try: + entry = str(entry, 'utf8') + except: + continue + + keyword, content = entry.split(' ', 1) + if keyword == 'router': + nick, address, orport, socksport, dirport = content.split(' ', 4) + content = dict( + nickname=nick, + address=address, + orport=int(orport), + socksport=int(socksport), + dirport=int(dirport)) + + if keyword in ['platform', 'contact']: + pass # nothing to process + + if keyword in ['reject', 'accept']: + base = dict(type='exitpattern') + if 'policy' in fields[-1]: + base = fields[-1]['policy'] + if not base['type'] == 'exitpattern': + raise RuntimeError('Unknown policy: {}'.format(base)) + if 'rules' not in base: + base['rules'] = [] + + base['rules'].append(dict(type=keyword, pattern=content)) + fields[-1]['policy'] = base + continue + + if keyword == 'or-address': + base = [] + if 'or-address' in fields[-1]: + base = fields[-1]['or-address'] + + address, port, guess = consensus.parse_address(content) + content = [{'ip': address, 'port': port, 'type': guess}] + if len(base) > 0: + content[0]['ignored'] = True + + base += content + fields[-1]['or-address'] = base + continue + + if keyword == 'family': + content = content.split(' ') + + if keyword == 'proto': + content = consensus.parse_ranges(content) + + # The spec says 'New code should neither […] nor parse this line' + if keyword == 'protocols': + pass + + if keyword in ['allow-single-hop-exits', 'hibernating']: + content = True + + if keyword == 'published': + date, time, when = consensus.parse_time(content) + content = dict(date=date, time=time, stamp=when.timestamp()) + + if keyword == 'fingerprint': + content = consensus.parse_fingerprint(content) + + # Enrich 'router' with 'identity' fingerprint for convenience + if 'router' in fields[-1]: + identity = bytes.fromhex(content.replace(' ', '')) + identity = str(base64.b64encode(identity), 'utf8') + fields[-1]['router']['identity'] = identity.replace('=', '') + + if keyword == 'uptime': + content = int(content) + + if keyword == 'bandwidth': + avg, burst, observed = content.split(' ', 2) + content = dict( + avg=int(avg), burst=int(burst), observed=int(observed)) + + if keyword == 'extra-info-digest': + if ' ' in content: + sha1, sha256 = content.split(' ', 1) + sha256 = consensus.parse_base64(sha256) + content = dict(sha1=sha1, sha256=sha256) + else: + content = dict(sha1=content) + + if keyword in ['caches-extra-info', 'hidden-service-dir', + 'tunnelled-dir-server']: + content = True + + if keyword in ['onion-key', 'signing-key']: + if not content == '': + raise RuntimeError('Trailing content with {}: {}'.format( + keyword, content)) + + descriptors, pubkey = consensus.scrap_signature(descriptors, + fix=b'RSA PUBLIC KEY') + if pubkey is not None: + content = consensus.parse_base64(str(pubkey, 'utf8')) + + if keyword == 'onion-key-crosscert': + if not content == '': + raise RuntimeError('Trailing content with {}: {}'.format( + keyword, content)) + + descriptors, crosscrt = consensus.scrap_signature(descriptors, + fix=b'CROSSCERT') + if crosscrt is not None: + content = consensus.parse_base64(str(crosscrt, 'utf8')) + + if keyword == 'ntor-onion-key-crosscert': + bit = int(content) + + descriptors, edcert = consensus.scrap_signature(descriptors, + fix=b'ED25519 CERT') + if edcert is not None: + content = consensus.parse_base64(str(edcert, 'utf8')) + content = dict(bit=bit, cert=content) + + if keyword == 'ntor-onion-key': + content = consensus.parse_base64(content) + + if keyword in ['p', 'p6', 'ipv6-policy']: + policy_type, portlist = content.split(' ') + if not policy_type in ['accept', 'reject']: + raise RuntimeError('Unknown policy: {}'.format(policy_type)) + + portlist = consensus.parse_range_once(portlist, expand=False) + content = {'type': policy_type, 'PortList': portlist} + + if keyword == 'id': + id_type, data = content.split(' ') + if not id_type in ['rsa1024', 'ed25519']: + raise RuntimeError('Unknown id key type: {}'.format(id_type)) + + content = {'type': id_type, + 'master-key': consensus.parse_base64(data)} + + if keyword in ['router-sig-ed25519', 'router-signature']: + base = dict() + if 'router-signatures' in fields[-1]: + base = fields[-1]['router-signatures'] + + if keyword == 'router-sig-ed25519': + if 'router-signatures' in fields[-1]: + raise RuntimeError('Ed25519 must be first!') + if not 'identity' in fields[-1]: + raise RuntimeError('Need identity with {} here: {}'.format( + keyword, fields[-1])) + if not 'cert' in fields[-1]['identity']: + raise RuntimeError('Need cert. in identity: {}'.format( + fields[-1])) + base['ed25519'] = consensus.parse_base64(content) + + if keyword == 'router-signature': + descriptors, sig = consensus.scrap_signature(descriptors, + fix=b'SIGNATURE') + if sig is not None: + content = consensus.parse_base64(str(sig, 'utf8')) + base['rsa'] = content + + fields[-1]['router-signatures'] = base + continue + + if keyword in ['identity-ed25519', 'master-key-ed25519']: + base = dict() + if 'identity' in fields[-1]: + base = fields[-1]['identity'] + + if 'type' not in base: + base['type'] = 'ed25519' + if not base['type'] == 'ed25519': + raise RuntimeError('Invalid key type {} here:'.format(base)) + + if keyword == 'identity-ed25519': + if 'cert' in base: + raise RuntimeError('Extra cert. here: {}'.format(base)) + + descriptors, edcert = consensus.scrap_signature(descriptors, + fix=b'ED25519 CERT') + if edcert is not None: + base['cert'] = consensus.parse_base64(str(edcert, 'utf8')) + + if keyword == 'master-key-ed25519': + if 'master-key' in base: + raise RuntimeError('Extra master key: {}'.format(base)) + + base['master-key'] = consensus.parse_base64(content) + + # TODO: validation if both master-key & identity are present + fields[-1]['identity'] = base + continue + + if keyword in aliases: + keyword = aliases[keyword] + + if keyword in fields[-1]: + fields.append(dict()) + + fields[-1][keyword] = content + return descriptors, fields
+ + +
[docs]def parse_descriptors(descriptors, flavor='microdesc'): + fields = dict(flavor=flavor) + nbdesc = descriptors.count(b'onion-key\n-----BEGIN') + + descriptors, http = consensus.consume_http(descriptors) + if http is not None: + fields['http'] = http + + descriptors, entries = consume_descriptors(descriptors, flavor) + if entries is None or len(entries) == 0: + entries = [] + fields['descriptors'] = entries + + if not len(fields['descriptors']) == nbdesc: + raise RuntimeError( + 'Unexpected or corrupted descriptor? ({}/{} found)'.format( + len(fields['descriptors']), nbdesc)) + + # Add flavor for convenience + for idx in range(len(fields['descriptors'])): + fields['descriptors'][idx]['flavor'] = flavor + + if descriptors == b'\n': + descriptors = b'' + return fields, descriptors
+ + +
[docs]def batch_query(items, prefix, separator='-', fixed_max_length=4096-128): + # About batches: + # https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L3392 + + query = '' + for item in items: + if len(item) + len(query) >= fixed_max_length: + yield query + query = '' + + if len(query) == 0: + query += prefix + item + else: + query += separator + item + + if len(query) != 0: + yield query
+ + +
[docs]def filter_descriptors(descriptors, digests, flavor='unflavored'): + """Filter out the invalid descriptors. + :param descriptors: Descriptors to be filtered. + :param digests: Digests from the consensus. + :param flavor: Flavor of the descriptor. + """ + + descriptor_digests = set() + descriptors_d = dict() + + # Content depends on descriptor flavour. + if flavor == 'microdesc': + for descriptor in descriptors: + fingerprint = descriptor['micro-digest'] + descriptor_digests.add(fingerprint) + descriptors_d[fingerprint] = descriptor + else: + for descriptor in descriptors: + fingerprint = base64.b64decode(descriptor['digest'] + '====').hex() + descriptor_digests.add(fingerprint) + descriptors_d[fingerprint] = descriptor + + fingerprints_valid = descriptor_digests.intersection(digests) + descriptors_valid = [descriptors_d[fingerprint] for fingerprint in fingerprints_valid] + + # For logging only. + desc_l = len(descriptors) + valid_l = len(descriptors_valid) + invalid_l = desc_l - valid_l + + logging.info('Filtered %d descriptors, %d valid, %d invalid.', desc_l, valid_l, invalid_l) + + return descriptors_valid
+ + +
[docs]def download_direct(host, port, cons, flavor='unflavored'): + """Retrieve descriptor via a direct HTTP connection. + :param host: host from which to retrieve the descriptors. + :param port: port from which to retrieve the descriptors. + :param cons: consensus for which nodes a descriptor need to be retrieved. + """ + + if flavor == 'microdesc': + endpoint = '/tor/micro/d/' + separator = '-' + digests = [router['micro-digest'] for router in cons['routers']] + + else: + endpoint = '/tor/server/d/' + separator = '+' + digests = [base64.b64decode(router['digest'] + '====').hex() for router in cons['routers']] + + descriptors = [] + + # Retrieve descriptors not in the cache + for query in batch_query(digests, endpoint, separator): + uri = 'http://%s:%d%s' % (host, port, query) + res = urllib.request.urlopen(uri) + + if res is None or res.getcode() != 200: + raise RuntimeError('Unable to fetch descriptors.') + + # Rename parse to something sensible + new_batch, remaining = parse_descriptors(res.read(), flavor=flavor) + if new_batch is None or remaining is None or len(remaining) > 0: + raise RuntimeError('Unable to parse descriptors.') + + if (len(new_batch['descriptors']) == 0): + raise RuntimeError('No descriptor listed. http={}.'.format(new_batch['http'])) + + if new_batch is not None: + descriptors += new_batch['descriptors'] + + descriptors = filter_descriptors(descriptors, digests, flavor=flavor) + + if flavor == 'microdesc': + return {d['micro-digest']: d for d in descriptors} + else: + return {d['digest']: d for d in descriptors}
+ + +
[docs]def download_relay_descriptor(host='127.0.0.1', port=9051): + """Retrieve a relay's own descriptor. + """ + + uri = 'http://{}:{}/tor/server/authority'.format(host, port) + res = urllib.request.urlopen(uri) + + if res is None or res.getcode() != 200: + raise RuntimeError('Unable to fetch descriptors.') + + descriptors, _ = parse_descriptors(res.read(), flavor='unflavored') + + return descriptors['descriptors'][0]
+ + +
[docs]def download_raw(host, port, cons, flavor='unflavored'): + """Retrieve descriptor via a direct HTTP connection. + :param host: host from which to retrieve the descriptors. + :param port: port from which to retrieve the descriptors. + :param cons: consensus for which nodes a descriptor need to be retrieved. + """ + + if flavor == 'microdesc': + endpoint = '/tor/micro/d/' + separator = '-' + digests = [router['micro-digest'] for router in cons['routers']] + + else: + endpoint = '/tor/server/d/' + separator = '+' + digests = [base64.b64decode(router['digest'] + '====').hex() for router in cons['routers']] + + + # Retrieve descriptors not in the cache + desc = b"" + for query in batch_query(digests, endpoint, separator): + uri = 'http://%s:%d%s' % (host, port, query) + res = urllib.request.urlopen(uri) + + if res is None or res.getcode() != 200: + raise RuntimeError('Unable to fetch descriptors.') + + desc += res.read() + + return desc
+ + +
[docs]def download_raw_by_digests_unflavored(host, port, digests_bytes): + """Retrieve descriptor via a direct HTTP connection. + :param host: host from which to retrieve the descriptors. + :param port: port from which to retrieve the descriptors. + :param digests: Digests (in a binary form) of the nodes for which a descriptor need to be retrieved. + """ + + digests = [digest.hex() for digest in digests_bytes] + endpoint = '/tor/server/d/' + separator = '+' + + return _download_raw_by_digests(host, port, digests, endpoint, separator)
+ + +
[docs]def download_raw_by_digests_micro(host, port, digests_bytes): + """Retrieve descriptor via a direct HTTP connection. + :param host: host from which to retrieve the descriptors. + :param port: port from which to retrieve the descriptors. + :param digests: Digests (in a binary form) of the nodes for which a descriptor need to be retrieved. + """ + + endpoint = '/tor/micro/d/' + separator = '-' + digests = digests_bytes + return _download_raw_by_digests(host, port, digests, endpoint, separator)
+ + +def _download_raw_by_digests(host, port, digests, endpoint, separator): + """Retrieve descriptor via a direct HTTP connection. + """ + desc = b"" + for query in batch_query(digests, endpoint, separator): + uri = 'http://{}:{}{}'.format(host, port, query) + res = urllib.request.urlopen(uri) + + if res is None or res.getcode() != 200: + raise RuntimeError('Unable to fetch descriptors.') + + desc += res.read() + + return desc + + +
[docs]def download(state, cons=None, flavor='microdesc', cache=True, fail_on_missing=False): + logging.warning('Use DEPRECATED method descriptor.download()!') + + if cons is None: + state, cons = consensus.download(state, flavor=flavor, cache=cache) + if cons is None: + return state, None + elif isinstance(cons, list): + cons = dict(routers=cons) + elif isinstance(cons, str): + digest_name = 'micro-digest' if flavor == 'microdesc' else 'digest' + cons = dict(routers={digest_name: cons}) + elif 'routers' not in cons and 'identity' in cons: + cons = dict(routers=[cons]) + + if not isinstance(cons, dict): + raise RuntimeError('Expecting a dict for cons, got: {}'.format(cons)) + + digests = [] + if flavor == 'microdesc': + digests = [router['micro-digest'] for router in cons['routers']] + endpoint = '/tor/micro/d/' + separator = '-' + else: + digests = [router['digest'] for router in cons['routers']] + digests = [base64.b64decode(d + '====').hex() for d in digests] + endpoint = '/tor/server/d/' + separator = '+' + + # retrieve descriptors from cache + descriptors = [] + partial_digests = digests + if cache: + digest_name = 'micro-digest' if flavor == 'microdesc' else 'digest' + cached_digests = [] + for digest in digests: + try: + descriptor = lnn.cache.descriptors.get(flavor, digest) + descriptors.append(descriptor) + cached_digests.append(digest) + except BaseException: + pass + partial_digests = [d for d in digests if d not in cached_digests] + + for query in batch_query(partial_digests, endpoint, separator): + state, answer = lnn.hop.directory_query(state, query) + + if answer is None or len(answer) == 0: + continue + + new_batch, remaining = parse_descriptors(answer, flavor=flavor) + if new_batch is None or remaining is None or len(remaining) > 0: + raise RuntimeError('Unable to parse descriptors.') + + if (len(new_batch['descriptors']) == 0 + and not new_batch['http']['code'] == '404'): + raise RuntimeError( + 'No descriptor listed. http={}.'.format(new_batch['http'])) + + if new_batch is not None: + descriptors += new_batch['descriptors'] + + if flavor == 'microdesc': + obtained = [d['micro-digest'] for d in descriptors] + else: + obtained = [d['digest'] for d in descriptors] + obtained = [base64.b64decode(d + '====').hex() for d in obtained] + + invalid = [] + for digest in digests: + if digest in obtained: + obtained.remove(digest) + else: + invalid.append(digest) + + if not len(obtained) == 0: + raise RuntimeError('Mismatched digest afterward! {} vs {}'.format( + sorted(invalid), sorted(obtained))) + + if fail_on_missing and len(invalid) > 0: + raise RuntimeError('Missing {} digests in answer: {}'.format( + len(invalid), invalid)) + + if cache: + for descriptor in descriptors: + lnn.cache.descriptors.put(descriptor) + + return state, descriptors
+ + +
[docs]def download_authority(state): + state, answer = lnn.hop.directory_query(state, '/tor/server/authority') + if answer is None or len(answer) == 0: + return state, None + + result, remain = parse_descriptors(answer, flavor='unflavored') + if not (len(remain) == 0 + and result is not None + and len(result['descriptors']) == 1): + raise RuntimeError('Unable to parse authority descriptor.') + + return state, result['descriptors'][0]
+ + +
[docs]def download_authority_direct(host, port): + """Retrieve authority. + :param host: host from which to retrieve the authority. + :param port: port from which to retrieve the authority. + :return: Authority. + """ + uri = 'http://%s:%d/tor/server/authority' % (host, port) + + res = urllib.request.urlopen(uri) + + if res is None or res.getcode() != 200: + return None + + result, remain = parse_descriptors(res.read(), flavor='unflavored') + + if not (len(remain) == 0 and result is not None and len(result['descriptors']) == 1): + raise RuntimeError('Unable to parse authority descriptor.') + + return result['descriptors'][0]
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/extend.html b/docs/source/_build/html/_modules/lightnion/extend.html new file mode 100644 index 0000000..7ba3f68 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/extend.html @@ -0,0 +1,231 @@ + + + + + + + + + + + lightnion.extend — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.extend

+import random
+import base64
+import io
+
+import nacl.public
+
+import lightnion as lnn
+
+
[docs]def circuit(state, descriptor): + onion_key = base64.b64decode(descriptor['ntor-onion-key'] + '====') + eidentity = descriptor['identity']['master-key'] # (assuming ed25519 here) + identity = base64.b64decode(descriptor['router']['identity'] + '====') + addr = descriptor['router']['address'] + port = descriptor['router']['orport'] + + eph_key, hdata = lnn.crypto.ntor.hand(identity, onion_key) + + payload = lnn.cell.relay.extend2.pack( + hdata, [(addr, port)], [identity, eidentity]) + + state = lnn.hop.send(state, + lnn.cell.relay.cmd.RELAY_EXTEND2, payload.raw, stream_id=0) + + state, cells = lnn.hop.recv(state, once=True) + if not len(cells) == 1: + raise RuntimeError('Expected exactly one cell, got: {}'.format(cells)) + + if not cells[0].relay.cmd == lnn.cell.relay.cmd.RELAY_EXTENDED2: + raise RuntimeError('Expected EXTENDED2, got {} here: {}'.format( + cells[0].relay.cmd, cell.relay.truncated)) + + payload = lnn.cell.relay.extended2.payload(cells[0].relay.data) + if not payload.valid: + raise RuntimeError('Invalid EXTENDED2 payload: {}'.format( + payload.truncated)) + + raw_material = lnn.crypto.ntor.shake(eph_key, payload.data, identity, + onion_key, length=92) + + material = lnn.crypto.ntor.kdf(raw_material) + extended = lnn.create.circuit(state.circuit.id, material) + + state.wrap(lnn.onion.state(state.link, extended)) + return state
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/hop.html b/docs/source/_build/html/_modules/lightnion/hop.html new file mode 100644 index 0000000..b005d10 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/hop.html @@ -0,0 +1,415 @@ + + + + + + + + + + + lightnion.hop — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.hop

+import zlib
+import time
+import queue
+
+import lightnion as lnn
+
+
[docs]def recv(state, block=True, once=False, auto_sendme=True): + '''Receive one or more RELAY{_EARLY,} cells from `state` attached circuit. + + :param state: a state object (see onion.state) + :param bool block: block while receiving? (default: True) + :param bool block: attempt only receiving once? (default: False) + + :returns: a tuple (updated state, received RELAY{_EARLY,} cells) + + Notes: + - returns an updated state that *MUST* be used afterwards. + - non-RELAY{_EARLY,} cells within the circuit *may be reordered.* + ''' + + while True: + try: + payload = state.link.get(circuit=state.circuit, block=block) + except queue.Empty: + return state, [] + except KeyError: + raise RuntimeError('Circuit got destroyed, reason: {}'.format( + state.circuit.reason)) + + header = lnn.cell.header(payload) + if header.cmd in [lnn.cell.cmd.RELAY, lnn.cell.cmd.RELAY_EARLY]: + break + + state.link.put(state.circuit, payload) + + cell_type = lnn.cell.relay.cell + if header.cmd is lnn.cell.cmd.RELAY_EARLY: + cell_type = lnn.cell.relay_early.cell + + cell = cell_type(payload) + #import pdb + #pdb.set_trace() + #if not cell.valid: + # raise RuntimeError( + # 'Got invalid (encrypted) RELAY cell: {}'.format(cell.raw)) + + state, cell = lnn.onion.peel(state, cell) + if not cell.valid: + raise RuntimeError( + 'Got invalid (decrypted) RELAY cell: {}'.format(cell.raw)) + + if auto_sendme: + state = _auto_sendme(state, cell) + + cells = [cell] + while not once: + state, new_cells = recv(state, block=False, once=True) + if len(new_cells) == 0: + break + cells += new_cells + return state, cells
+ +# TODO: better sendme handling +def _auto_sendme(state, cell): + if not cell.relay.cmd == lnn.cell.relay.cmd.RELAY_DATA: + return state + link, circuit, flow = state.link, state.circuit, lnn.constants.flow + + # Circuit-level sendme + # + if circuit.window is None: + circuit.window = flow.circuit.default + + circuit.window -= 1 + if circuit.window < flow.circuit.lowlimit: + circuit.window += flow.circuit.increment + state = send(state, lnn.cell.relay.cmd.RELAY_SENDME) + + # Stream-level sendme + # + if not cell.relay.stream_id > 0: + return state + + if circuit.stream_windows is None: + circuit.stream_windows = dict() + + if not cell.relay.stream_id in circuit.stream_windows: + circuit.stream_windows[cell.relay.stream_id] = flow.stream.default + + circuit.stream_windows[cell.relay.stream_id] -= 1 + if not circuit.stream_windows[cell.relay.stream_id] < flow.stream.lowlimit: + return state + + circuit.stream_windows[cell.relay.stream_id] += flow.stream.increment + state = send(state, lnn.cell.relay.cmd.RELAY_SENDME, + stream_id=cell.relay.stream_id) + + return state + +
[docs]def send(state, command, payload=b'', stream_id=0): + '''Send one RELAY{_EARLY,} cell through `state` attached circuit. + + :param state: a state object (see onion.state) + :param str command: RELAY{_EARLY,} cell command (see cell.relay.cmd) + :param bytes payload: RELAY{_EARLY,} cell content (default: b'') + :param int stream_id: RELAY{_EARLY,} stream ID (default: 0) + + :returns: an updated state + + *Note: returns an updated state that *MUST* be used afterwards.* + ''' + + # We build our onion + state, cell = lnn.onion.build(state, command, payload, stream_id) + + # Then, we send the encrypted payload. + state.link.send(cell) + return state
+ +directory_request = '\r\n'.join(( + 'GET {query} HTTP/1.0', + 'Accept-Encoding: {compression}', + )) + '\r\n\r\n' + +
[docs]def directory_query( + state, + query=None, + compression='deflate', + timeout=30, + **kwargs): + if compression not in ['identity', 'deflate', 'gzip']: + raise NotImplementedError( + 'Compression method "{}" not supported.'.format(compression)) + + if query is None: + query = '/tor/status-vote/current/consensus' + if not query.startswith('/tor/') or any([c in query for c in ' \r\n']): + raise RuntimeError('Invalid query: {}'.format(query)) + + state.circuit.last_stream_id += 1 + stream_id = state.circuit.last_stream_id + + state = send( + state, lnn.cell.relay.cmd.RELAY_BEGIN_DIR, stream_id=stream_id) + state, cells = recv(state) + + if not cells[0].relay.cmd == lnn.cell.relay.cmd.RELAY_CONNECTED: + raise RuntimeError('Expecting RELAY_CONNECTED after RELAY_BEGIN_DIR,' + + ' got {} in cell:'.format(cells[0].relay.cmd, cells[0].raw)) + + + http = directory_request.format(query=query, compression=compression) + + http = bytes(http, 'utf8') + width = lnn.cell.relay.payload_len + while len(http) > 0: + chunk, http = http[:width], http[width:] + state = send(state, lnn.cell.relay.cmd.RELAY_DATA, chunk, + stream_id=stream_id) + + # TODO: proper support for RELAY_END reasons + state, cells = recv(state) + if lnn.cell.relay.cmd.RELAY_END not in [c.relay.cmd for c in cells]: + candidates = [] + diff_time = time.time() + while True: + if time.time() - diff_time > timeout: + break + + state, new_cells = recv(state, block=False) + candidates = [c.relay.cmd for c in new_cells] + cells += new_cells + + if lnn.cell.relay.cmd.RELAY_END in candidates: + break + + if len(candidates) > 0: + diff_time = time.time() + + if time.time() - diff_time > timeout: + raise RuntimeError( + 'Timeout while expecting RELAY_END: {:.2f}s out of {}s'.format( + time.time() - diff_time, timeout)) + + # TODO: proper support for incoming RELAY_SENDME cells + cells = [c for c in cells if not (c.relay.stream_id == 0 + and c.relay.cmd == lnn.cell.relay.cmd.RELAY_SENDME)] + + # TODO: proper support for concurrent streams on the same circuit + if not all([c.relay.stream_id == stream_id for c in cells]): + raise RuntimeError('No proper support for multiple stream!') + + content = b'' + for cell in cells: + if not cell.relay.cmd == lnn.cell.relay.cmd.RELAY_DATA: + continue + content += cell.relay.data + + if compression in ['deflate', 'gzip']: + http_headers, compressed_data = content.split(b'\r\n\r\n', 1) + raw_data = zlib_decompress(compressed_data) + content = http_headers + b'\r\n\r\n' + raw_data + + if not content.startswith(b'HTTP/1.0'): + raise RuntimeError('Unexpected answer to query "{}": {}'.format(query, + content)) + + return state, content
+ +
[docs]def zlib_decompress(compressed_data, min_bufsize=32): + data = b'' + buff = b'' + part = None + ilen = len(compressed_data) + olen = 0 + zobj = zlib.decompressobj() + while part is None or len(part) > 0: + buff = zobj.unconsumed_tail + if len(buff) < 1: + nlen = max((len(data) + ilen) // 2, min_bufsize) + buff = compressed_data[olen:nlen] + if len(buff) < 1: + break + + olen += len(buff) + part = zobj.decompress(buff, zlib.MAX_WBITS | 32) + data += part + return data
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/http.html b/docs/source/_build/html/_modules/lightnion/http.html new file mode 100644 index 0000000..04716c7 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/http.html @@ -0,0 +1,296 @@ + + + + + + + + + + + lightnion.http — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.http

+import collections
+import requests
+import json
+
+headers = {'Content-Type': 'application/json'}
+
+import lightnion as lnn
+import lightnion.proxy
+
+from . import polling, websocket, ntor
+
+
[docs]class channel(collections.namedtuple('channel', + ['id', 'guard', 'middle', 'exit'])): + pass
+ +
[docs]def client(host, port=80, *, io, prefix='http', failures=5, **kwargs): + base_url = '{}://{}:{}{}'.format(prefix, host, port, lnn.proxy.base_url) + + guard = None + try: + code = 503 + fails = 0 + for _ in range(failures): + rq = requests.get(base_url + '/guard') + if not rq.status_code in [200, 503]: + raise RuntimeError('Error code: {}'.format(rq.status_code)) + + code = rq.status_code + if fails > failures or not code == 503: + break + + fails += 1 + + if code == 503: + raise RuntimeError('Too many failures!') + + guard = json.loads(rq.text) + + except BaseException as e: + raise RuntimeError( + 'Unable retrieve guard at endpoint {}, reason: {}'.format( + base_url + '/guard', e)) + + handshake, material, uid, path = (None, None, None, None) + try: + code = 503 + fails = 0 + for _ in range(failures): + handshake, material = ntor.hand(guard) + data = json.dumps(dict(ntor=handshake)) + + rq = requests.post(base_url + '/channels', + data=data, headers=headers) + if not rq.status_code in [201, 503]: + raise RuntimeError('Error code: {}'.format(rq.status_code)) + + code = rq.status_code + if fails > failures or not code == 503: + break + + fails += 1 + + if code == 503: + raise RuntimeError('Too many failures!') + + data = json.loads(rq.text) + uid, handshake, path = data['id'], data['ntor'], data['path'] + + except BaseException as e: + raise RuntimeError( + 'Unable create channel at endpoint {}, reason: {}'.format( + base_url + '/channels', e)) + + state = None + try: + try: + handshake = ntor.shake(handshake, material) + except TypeError: + raise RuntimeError('Invalid ntor cryptographic material?') + + io = io(endpoint=base_url + '/channels/' + uid, **kwargs) + link = lnn.link.link(io, version='http') + + circuit = lnn.create.circuit(lnn.proxy.fake_circuit_id, handshake) + link.register(circuit) + + state = lnn.onion.state(link, circuit) + + except BaseException as e: + raise RuntimeError( + 'Unable craft local state with {}, reason: {}'.format(io, e)) + + try: + state = lnn.extend.circuit(state, path[0]) + + except BaseException as e: + raise RuntimeError( + 'Unable extend the circuit to middle node {}, reason: {}'.format( + path[0]['router']['nickname'], e)) + + try: + state = lnn.extend.circuit(state, path[1]) + + except BaseException as e: + raise RuntimeError( + 'Unable extend the circuit to exit node {}, reason: {}'.format( + path[0]['router']['nickname'], e)) + + return state, channel(uid, guard, path[0], path[1])
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/http/ntor.html b/docs/source/_build/html/_modules/lightnion/http/ntor.html new file mode 100644 index 0000000..96b4487 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/http/ntor.html @@ -0,0 +1,213 @@ + + + + + + + + + + + lightnion.http.ntor — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.http.ntor

+import lightnion as lnn
+
+import nacl.public
+
+import base64
+
+
[docs]def hand(guard, encode=True): + identity = base64.b64decode(guard['router']['identity'] + '====') + onion_key = base64.b64decode(guard['ntor-onion-key'] + '====') + + ephemeral_key, payload = lnn.crypto.ntor.hand(identity, onion_key) + + if encode: + payload = str(base64.b64encode(payload), 'utf8') + return payload, (onion_key, ephemeral_key, identity)
+ +
[docs]def shake(payload, material): + payload = base64.b64decode(payload) + onion_key, ephemeral_key, identity = material + + material = lnn.crypto.ntor.shake(ephemeral_key, payload, + identity, onion_key, length=92) + + return lnn.crypto.ntor.kdf(material)
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/http/polling.html b/docs/source/_build/html/_modules/lightnion/http/polling.html new file mode 100644 index 0000000..3c00278 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/http/polling.html @@ -0,0 +1,303 @@ + + + + + + + + + + + lightnion.http.polling — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.http.polling

+import threading
+import requests
+import base64
+import queue
+import json
+import time
+
+from .. import http
+from .. import proxy
+
+
[docs]class worker(threading.Thread): + def __init__(self, endpoint, period, max_queue=2048): + super().__init__() + self.endpoint = endpoint + self.period = period + + self.send_queue = queue.Queue(max_queue) + self.recv_queue = queue.Queue(max_queue) + + self.dead = False + +
[docs] def close(self): + requests.delete(self.endpoint) + self.dead = True
+ +
[docs] def die(self, e): + if self.dead: + return + + self.close() + raise e
+ +
[docs] def send(self, cell, block=True): + try: + cell = cell.raw + except AttributeError: + pass + + cell = base64.b64encode(cell) + self.send_queue.put(cell, block)
+ +
[docs] def recv(self, block=True): + payload = self.recv_queue.get(block=block) + payload = base64.b64decode(payload) + return payload
+ +
[docs] def main(self): + try: + cells = [] + for _ in range(proxy.jobs.request_max_cells): + try: + cells.append(self.send_queue.get(block=False)) + except queue.Empty as e: + if len(cells) == 0: + raise e + + data = json.dumps( + dict(cells=[str(cell, 'utf8') for cell in cells])) + + rq = requests.post(self.endpoint, data=data, headers=http.headers) + if not rq.status_code == 201: + raise RuntimeError( + 'Got {} status (send)!'.format(rq.status_code)) + + answer = json.loads(rq.text) + for cell in answer['cells']: + self.recv_queue.put(cell) + + return + except queue.Empty: + pass + + data = json.dumps(dict(cells=[])) + rq = requests.post(self.endpoint, data=data, headers=http.headers) + if not rq.status_code == 201: + raise RuntimeError('Got {} status! (recv)'.format(rq.status_code)) + + answer = json.loads(rq.text) + for cell in answer['cells']: + self.recv_queue.put(cell) + + time.sleep(self.period)
+ +
[docs] def run(self): + try: + while not self.dead: + self.main() + self.dead = True + except BaseException as e: + self.die(e)
+ +
[docs]class io: + _join_timeout = 3 + + def __init__(self, endpoint, period=0.1, daemon=True, max_queue=2048): + self.worker = worker(endpoint, period, max_queue) + if daemon: + self.worker.daemon = True + + self.worker.start() + + @property + def dead(self): + return self.worker.dead + +
[docs] def recv(self, block=True): + return self.worker.recv(block)
+ +
[docs] def send(self, payload, block=True): + self.worker.send(payload, block=block)
+ +
[docs] def close(self): + self.worker.close() + self.worker.join(self._join_timeout)
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/http/websocket.html b/docs/source/_build/html/_modules/lightnion/http/websocket.html new file mode 100644 index 0000000..749d42c --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/http/websocket.html @@ -0,0 +1,317 @@ + + + + + + + + + + + lightnion.http.websocket — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.http.websocket

+import websockets
+import threading
+import logging
+import asyncio
+import queue
+
+from .. import http
+from .. import proxy
+
+
[docs]async def incoming(websocket, worker): + cell = None + while True: + try: + if cell is None: + cell = await websocket.recv() + worker.recv_queue.put_nowait(cell) + cell = None + + await asyncio.sleep(0) + continue + except (asyncio.QueueEmpty, queue.Full): + pass + + await asyncio.sleep(worker.period)
+ +
[docs]async def outcoming(websocket, worker): + cell = None + while True: + try: + if cell is None: + cell = worker.send_queue.get_nowait() + await websocket.send(cell) + cell = None + + await asyncio.sleep(0) + continue + except (asyncio.QueueFull, queue.Empty): + pass + + await asyncio.sleep(worker.period)
+ +
[docs]async def channel_handler(websocket, worker): + for task in [incoming, outcoming]: + worker.tasks.append(asyncio.ensure_future(task(websocket, worker))) + + done, pending = await asyncio.wait(worker.tasks, + return_when=asyncio.FIRST_COMPLETED) + + for task in pending: + task.cancel() + worker.dead = True
+ +
[docs]async def client(worker): + async with websockets.connect(worker.endpoint) as websocket: + await channel_handler(websocket, worker)
+ +
[docs]class worker(threading.Thread): + def __init__(self, endpoint, period, max_queue=2048): + super().__init__() + self.endpoint = endpoint + self.period = period + max_queue = max_queue // 2 + + self.send_queue = queue.Queue(max_queue) + self.recv_queue = queue.Queue(max_queue) + + self.send_async = asyncio.Queue(max_queue) + self.recv_async = asyncio.Queue(max_queue) + + self.tasks = [] + self.dead = False + +
[docs] def close(self): + for task in self.tasks: + task.cancel() + self.dead = True
+ +
[docs] def die(self, e): + if self.dead: + return + + self.close() + raise e
+ +
[docs] def send(self, cell, block=True): + try: + cell = cell.raw + except AttributeError: + pass + + self.send_queue.put(cell, block)
+ +
[docs] def recv(self, block=True): + payload = self.recv_queue.get(block=block) + return payload
+ +
[docs] def run(self): + logging.getLogger(websockets.__name__).setLevel(logging.ERROR) + asyncio.set_event_loop(asyncio.new_event_loop()) + + asyncio.get_event_loop().run_until_complete(client(self))
+ +
[docs]class io: + _join_timeout = 3 + + def __init__(self, endpoint, period=0.1, daemon=True, max_queue=2048): + endpoint = endpoint.replace('http', 'ws') + endpoint = endpoint.replace(':4990/', ':8765/') # TODO: work same port + + self.worker = worker(endpoint, period, max_queue) + if daemon: + self.worker.daemon = True + + self.worker.start() + + @property + def dead(self): + return self.worker.dead + +
[docs] def recv(self, block=True): + return self.worker.recv(block)
+ +
[docs] def send(self, payload, block=True): + self.worker.send(payload, block=block)
+ +
[docs] def close(self): + self.worker.close() + self.worker.join(self._join_timeout)
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/link.html b/docs/source/_build/html/_modules/lightnion/link.html new file mode 100644 index 0000000..fd6d2b7 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/link.html @@ -0,0 +1,407 @@ + + + + + + + + + + + lightnion.link — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.link

+import logging
+import socket
+import queue
+import ssl
+
+import lightnion as lnn
+
+
+
+
[docs]def negotiate_version(peer, versions, *, as_initiator): + """Performs a VERSIONS negotiation + + :param peer: ssl.socket instance. + :param list versions: target link versions. + :param bool as_initiator: send VERSIONS cell first. + """ + if as_initiator: + lnn.cell.versions.send(peer, lnn.cell.versions.pack(versions)) + vercell = lnn.cell.versions.recv(peer) + + common_versions = list(set(vercell.versions).intersection(versions)) + if len(common_versions) < 1: + raise RuntimeError('No common supported versions: {} and {}'.format( + list(vercell.versions), versions)) + + version = max(common_versions) + if version < 4: + raise RuntimeError('No support for version 3 or lower, got {}').format( + version) + + if not as_initiator: + lnn.cell.versions.send(peer, lnn.cell.versions.pack(versions)) + return version
+ +
[docs]def initiate(address='127.0.0.1', port=9050, versions=[4, 5]): + """Establish a link with the "in-protocol" (v3) handshake as initiator + + The expected transcript is: + + Onion Proxy (client) Onion Router (server) + + / [1] :-------- VERSIONS ---------> [2] + | [4] <-------- VERSIONS ---------: [3] + | + | Negotiated Version + | + | [4] <--------- CERTS -----------: [3] + | <----- AUTH_CHALLENGE ------: + | <-------- NETINFO ----------: + | + | OP don't need to + Link | authenticate + Protocol | + >= 3 | [5] :-------- NETINFO ----------> [6] + | + | Alternative: + | ( We (OR) authenticate ) + | ( ) + | ( [5] :--------- CERTS -----------> [6] ) + | ( :------ AUTHENTICATE -------> ) + | ( ^ ) + | ( (answers AUTH_CHALLENGE) ) + | ( ) + \ + + :param str address: remote relay address (default: 127.0.0.1). + :param int port: remote relay ORPort (default: 9050). + :param list versions: target link versions (default: [4, 5]). + + :returns: a link.link object + + """ + + # Setup context + peer = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + ctxt = ssl.SSLContext(ssl.PROTOCOL_TLS) + + # https://trac.torproject.org/projects/tor/ticket/28616 + ctxt.options |= ssl.OP_NO_TLSv1_3 + + # Establish connection + peer = ctxt.wrap_socket(peer) + peer.connect((address, port)) + + # VERSIONS handshake + version = negotiate_version(peer, versions, as_initiator=True) + + # Wraps with socket.io + peer = lnn.socket.io(peer) + + # Get CERTS, AUTH_CHALLENGE and NETINFO cells afterwards + certs_cell = lnn.cell.certs.cell(peer.recv()) + auth_cell = lnn.cell.challenge.cell(peer.recv()) + netinfo_cell = lnn.cell.netinfo.cell(peer.recv()) + + # Sanity checks + if not certs_cell.valid: + raise RuntimeError('Invalid CERTS cell: {}'.format(certs_cell.raw)) + if not auth_cell.valid: + raise RuntimeError('Invalid AUTH_CHALLENGE cell:{}'.format( + auth_cell.raw)) + if not netinfo_cell.valid: + raise RuntimeError('Invalid NETINFO cell: {}'.format(netinfo_cell.raw)) + + # Send our NETINFO to say "we don't want to authenticate" + peer.send(lnn.cell.netinfo.pack(address)) + return link(peer, version)
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/onion.html b/docs/source/_build/html/_modules/lightnion/onion.html new file mode 100644 index 0000000..1703e86 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/onion.html @@ -0,0 +1,457 @@ + + + + + + + + + + + lightnion.onion — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.onion

+import cryptography
+import hashlib
+import copy
+
+import lightnion as lnn
+
+
[docs]class state: + '''Handle Tor onion-encryption cryptographic states. + + *For now, only handle cryptography as an initiator (as an OP to an OR).* + + TODO: add support for __init__(link, circuit, initiator={True,False}) + + Status Condition + + backward decryptor provided initiator=True + encryptor (none) initiator=False + digest provided + forward decryptor (none) initiator=False + encryptor provided initiator=True + digest provided + ''' + + def __init__(self, link, circuit, early_count=8): + '''Build a new onion-encryption state from a link and circuit. + + :params link: a link object (see link.link) + :params circuit: a circuit object (see create.circuit) + :params int early_count: first `early_count` cells will be RELAY_EARLY + ''' + self.circuit = circuit + self.link = link + + self._inner = None + self.early_count = early_count + + self._last_material = None + self._reset_digest(circuit.material) + self._reset_encryption(circuit.material) + + @property + def depth(self): + '''Number of inner layers in the onion.''' + if self._inner is None: + return 0 + return self._inner.depth + 1 + + @property + def early_count(self): + '''Number of remaining RELAY_EARLY cells before sending RELAY cells.''' + + if self._inner is None: + return self._early_count + return self._inner.early_count + + @early_count.setter + def early_count(self, value): + '''Setter for self.early_count.''' + + if self._inner is None: + self._early_count = value + else: + raise RuntimeError( + 'Unable to set RELAY_EARLY counter from the outer layers!') + +
[docs] def wrap(self, inner): + '''Wraps an inner state w/ self as outer state (see lightnion.extend). + + Usage: + 1. A one-hop circuit is build with stateA. + 2. A key exchange is made through stateA to get stateB. + 3. Then, call stateA.wrap(stateB) to properly wrap the onion. + + Usage: + 1. A two-hop circuit is build with state{A,B}. + 2. A key exchange is made through state{A,B} to get stateC. + 3. Then, call statea.wrap(stateC) to properly wrap the onion. + + *Note: should not be called explicitly.* + ''' + if self._inner is None: + inner._early_count = self._early_count + self._inner = inner + else: + self._inner.wrap(inner)
+ + def _reset_encryption(self, material): + '''Initialize stateful stream cipher with cryptographic material. + + :params material: shared material w/ {forward,backward}_key + + *Note: should not be called explicitly.* + ''' + if self._last_material == material: + raise RuntimeError('Unsafe! Do NOT reset w/ same material!') + self._last_material = material + + from cryptography.hazmat.backends import default_backend + from cryptography.hazmat.primitives.ciphers import ( + algorithms, modes, Cipher + ) + + # Tor uses AES128-CTR with IV=0 as stream cipher + nonce_size = algorithms.AES.block_size // 8 + zeroed_ctr = modes.CTR(b'\x00' * nonce_size) + + # Initiate forward/backward encryption/decryption (as OP) TODO: add OR + self.forward_encryptor = Cipher( + algorithms.AES(material.forward_key), + zeroed_ctr, default_backend()).encryptor() + self.backward_decryptor = Cipher( + algorithms.AES(material.backward_key), + zeroed_ctr, default_backend()).decryptor() + + def _reset_digest(self, material): + '''Seed stateful 'running digests' used to authenticate payloads. + + :params material: shared material w/ {forward,backward}_key + + *Note: should not be called explicitly.* + ''' + self.forward_digest = hashlib.sha1(material.forward_digest) + self.backward_digest = hashlib.sha1(material.backward_digest) + + def _clone(self): + '''Non-recursive clone of current cryptographic state. + + Whenever it is required to rollback after an error, you can use this + function to give yourself a clone of the current state. + + *Note: does not clone inner cryptographic states.* + ''' + + child = state(self.link, self.circuit) + + # Clone digest state (use of hashlib's native hash copy) + child.forward_digest = self.forward_digest.copy() + child.backward_digest = self.backward_digest.copy() + + # Clone encryption state (use of python's ad-hoc copy) + child.forward_encryptor = copy.copy(self.forward_encryptor) + child.backward_decryptor = copy.copy(self.backward_decryptor) + + # Don't forget to propagate the RELAY_EARLY count + child._early_count = self._early_count + + # (note: we don't recursively clone inner layers of state) + child._inner = self._inner + + return child
+ +
[docs]def core(state, command, payload=b'', stream_id=0): + '''Build a RELAY{_EARLY,} cell as an onion core (plaintext w/ `state`) + + :param state: a state object (see onion.state) + :param str command: RELAY{_EARLY,} cell command (see cell.relay.cmd) + :param bytes payload: RELAY{_EARLY,} cell content (default: b'') + :param int stream_id: RELAY{_EARLY,} stream ID (default: 0) + + :returns: a tuple (updated state, cell) + + *Note: should not be called explicitly.* + ''' + rollback = state._clone() + + # Send RELAY_EARLY cells first + relay_pack = lnn.cell.relay.pack + if rollback.early_count > 0: + rollback.early_count -= 1 + relay_pack = lnn.cell.relay_early.pack + + # Compute the cell with a zeroed 'digest' field. + cell = relay_pack( + circuit_id=state.circuit.id, + cmd=command, + data=payload, + stream_id=stream_id, + digest=b'\x00\x00\x00\x00') + + # Update the "running digest" + rollback.forward_digest.update(cell.relay.raw) + + # Write the "running digest" + full_digest = rollback.forward_digest.digest() + cell.relay.digest = full_digest[:cell.relay._view.digest.width()] + + # Encrypt the to-be-encrypted parts & build final cell + cell.relay.raw = rollback.forward_encryptor.update(cell.relay.raw) + + return rollback, cell
+ +
[docs]def build(state, command, payload=b'', stream_id=0): + '''Build a RELAY{_EARLY,} cell. + + :param state: a state object (see onion.state) + :param str command: RELAY{_EARLY,} cell command (see cell.relay.cmd) + :param bytes payload: RELAY{_EARLY,} cell content (default: b'') + :param int stream_id: RELAY{_EARLY,} stream ID (default: 0) + + :returns: a tuple (updated state, cell) + + *Note: returns an updated state that MUST be used afterwards.* + ''' + if state.depth == 0: + return core(state, command, payload, stream_id) + rollback = state._clone() + + # Retrieve the inner layer of the onion + rollback._inner, cell = build(rollback._inner, command, payload, stream_id) + + # Wraps the layer with our outer layer of encryption + cell.relay.raw = rollback.forward_encryptor.update(cell.relay.raw) + + return rollback, cell
+ +
[docs]def recognize(state, cell, backward=True): + '''Attempt to recognize a RELAY{_EARLY,} cell. + + :param state: a state object (see onion.state) + :param cell: a RELAY{_EARLY,} cell object (see cell.relay.cell) + :param bool backward: is it backward? or else forward? (default: True) + + :returns: a tuple (updated state, bool) + + *Note: returns an updated state that MUST be used afterwards.* + ''' + rollback = state._clone() + + # We expect the recognized field to be zeroed upon successful decryption + if not cell.relay.recognized == b'\x00\x00': + return state, False + + # We build a copy of the cell with a zeroed 'digest field' + cell_digest = cell.relay.digest + cell.relay.digest = b'\x00\x00\x00\x00' + + # Update the digest state accordingly (backward or forward) + digest = rollback.backward_digest if backward else rollback.forward_digest + digest.update(cell.relay.raw) + + # Check if the computed digest match the cell digest + if not cell_digest == digest.digest()[:cell.relay._view.digest.width()]: + return state, False + + # Update state iff the digests matched + return rollback, True
+ +
[docs]def peel(state, cell): + '''Decrypt a RELAY{_EARLY,} cell using provided `state`. + + :param state: a state object (see onion.state) + :param cell: a RELAY{_EARLY,} cell object (see cell.relay.cell) + + :returns: a tuple (updated state, decrypted cell) + + *Note: returns an updated state that MUST be used afterwards.* + ''' + rollback = state._clone() + + cell.relay.raw = rollback.backward_decryptor.update(cell.relay.raw) + if rollback.depth == 0: + rollback, recognized = recognize(rollback, cell) + if not recognized: + raise RuntimeError( + 'Got an unrecognized RELAY cell: {}'.format(cell.raw)) + + return rollback, cell + + rollback._inner, cell = peel(rollback._inner, cell) + return rollback, cell
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/path_selection.html b/docs/source/_build/html/_modules/lightnion/path_selection.html new file mode 100644 index 0000000..4814d83 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/path_selection.html @@ -0,0 +1,686 @@ + + + + + + + + + + + lightnion.path_selection — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • lightnion.path_selection
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for lightnion.path_selection

+import random
+import sys
+import logging
+
+import lightnion.descriptors as descriptors
+
+# Chutney launches all relays in the same subnet.
+# So to test the proxy with Chutney, these checks needs to be disabled.
+check_different_subnets = False
+
+
[docs]def select_path(routers, state, testing=False): + """Handle the path selection + :params routers: list of the routers given by the consensus + :state: + :returns: updated state tuple (guard, middle, exit)""" + + logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) + + routers = [r for r in routers if obey_minimal_constraint(r)] + + state, exit_node = pick_good_exit(routers, state) + + state, guard = pick_good_entry(routers, state, exit_node, testing) + + state, middle = pick_good_middle(routers, state, exit_node, guard, testing) + + return state, guard, middle, exit_node
+ + +
[docs]def select_guard_from_consensus(cons, descr, testing=False): + """Handle the selection of the guard node + :params routers: list of the routers given by the consensus + :params descr: list of descriptors + :returns: tuple (guard, middle, exit)""" + + routers = [r for r in cons['routers'] if obey_minimal_constraint(r)] + + guard = pick_good_entry_from_routers(descr, routers, testing) + + return guard
+ + +
[docs]def select_end_path_from_consensus(cons, descr, guard, testing=False): + """Handle the selection of the middle and exit nodes + :params routers: list of the routers given by the consensus + :params descr: list of descriptors + :returns: tuple (guard, middle, exit)""" + + routers = [r for r in cons['routers'] if obey_minimal_constraint(r)] + exit_node = pick_good_exit_from_routers(descr, routers, guard) + middle = pick_good_middle_from_routers(descr, routers, exit_node, guard, testing) + + return middle, exit_node
+ + +
[docs]def obey_minimal_constraint(router, exit_node=None, guard=None, testing=False): + """Checks if the given router respects the minimal constraints + :param testing: + :param router: router that must respect the constraints + :param exit_node: the chosen exit node + :param guard: the chosen guard node + :return: boolean""" + + flags = router['flags'] + router_address = router['address'].split(".") + + # check that the router is running, valid and has a recent version of TOR + if 'Running' not in flags: + return False + if 'Valid' not in flags: + return False + if not router['version'].startswith('Tor 0.3.'): + return False + + if exit_node is not None: + + # check that they are distinct + if router['digest'] == exit_node['digest']: + return False + + # check if they are in the same 16 subnet + if check_different_subnets: + exit_addr = exit_node['router']['address'].split(".") + if not testing and router_address[0] == exit_addr[0] and router_address[1] == exit_addr[1]: + return False + + if guard is not None: + + # check that they are distinct + if router['digest'] == guard['digest']: + return False + + # check if they are in the same 16 subnet + if check_different_subnets: + guard_addr = guard['router']['address'].split(".") + if not testing and router_address[0] == guard_addr[0] and router_address[1] == guard_addr[1]: + return False + + return True
+ + +
[docs]def in_same_family(r0, r1, r2=None): + """Check if r0 and r1 (and possibly r0 and r2) are in the same family or not + :param r0: the descriptor of the first router (the router we are trying to see if it meets all conditions to be chosen) + :param r1: the descriptor of the second router + :param r2: the descriptor of the third router (possibly none) + :return: a boolean""" + + # check if r0 and r1 are in the same family + if 'family' in r0 and 'family' in r1: + for f in r0['family']: + if f in r1['family']: + return True + + if r2 and 'family' in r0 and 'family' in r2: + for f in r0['family']: + if f in r2['family']: + return True + + return False
+ + +
[docs]def keep_exit(router, state): + """Checks that the router is not a bad exit, is not down, is stable, + is valid, does not run an old TOR's version, has an available ed25519 + identity key and has an 'accept' exit policy + :params router: the router we want to check + :state: + :return: tuple (boolean that indicates if we keep it, new state, descriptor)""" + + logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) + + if not obey_minimal_constraint(router): + return False, state, None + + if 'Exit' not in router['flags']: + return False, state, None + + if 'BadExit' in router['flags']: + return False, state, None + + # Retrieve the descriptor + state, nhop = descriptors.download(state, cons=router, flavor='unflavored') + + if len(nhop) == 0: + return False, state, None + + nhop = nhop[0] + + if router['digest'] != nhop['digest']: + return False, state, None + + if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': + return False, state, None + + if 'policy' not in nhop: + return False, state, None + + for rule in nhop['policy']['rules']: + if rule['pattern'] == "*:*" and rule['type'] == 'accept': + return True, state, nhop + + return False, state, None
+ +
[docs]def keep_exit_with_descr(descr, router, guard): + """Checks that the router is not a bad exit, is not down, is stable, + is valid, does not run an old TOR's version, has an available ed25519 + identity key and has an 'accept' exit policy + :param descr: descriptor of the exit candidate. + :params router: the router we want to check + :param guard: the guard in the path + :return: tuple (boolean that indicates if we keep it, new state, descriptor)""" + + if not obey_minimal_constraint(router, guard=guard): + return False, None + + if 'Exit' not in router['flags']: + return False, None + + if 'BadExit' in router['flags']: + return False, None + + if router['digest'] not in descr: + return False, None + + nhop = descr[router['digest']] + + if router['digest'] != nhop['digest']: + return False, None + + if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': + return False, None + + if 'policy' not in nhop: + return False, None + + if in_same_family(nhop, guard): + return False, None + + for rule in nhop['policy']['rules']: + if rule['pattern'] == "*:*" and rule['type'] == 'accept': + return True, nhop + + return False, None
+ + + +
[docs]def weighted_random_choice(list_of_possible): + """Choose one of the candidates at random weighted by their (avg) bandwidth + :params list_of_possible: list of descriptors of the candidates + :returns: descriptor of the randomly selected router""" + + total = 0 + for router in list_of_possible: + total += router['bandwidth']['avg'] + + r = random.uniform(0, total) + upto = 0 + + for router in list_of_possible: + if upto + router['bandwidth']['avg'] >= r: + return router + upto += router['bandwidth']['avg'] + + raise RuntimeError("")
+ + +
[docs]def pick_good_exit(routers, state): + """Choose the exit node + :param routers: the routers given by the consensus + :param state: the state + :return: the descriptor of the exit node""" + + logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) + + # Go through all routers and check if they meet the conditions of an exit node + candidates = [] + for router in routers: + keep, state, descriptor = keep_exit(router, state) + if keep: + candidates.append(descriptor) + + if candidates: + return state, weighted_random_choice(candidates) + + else: + # TODO: see if we select another policy here + raise ValueError('No exit is suitable')
+ + +
[docs]def pick_good_exit_from_routers(descr, routers, guard): + """Choose the exit node + :param routers: the routers given by the consensus + :param guard: the guard in the path + :return: the descriptor of the exit node""" + + # Go through all routers and check if they meet the conditions of an exit node + candidates = [] + for router in routers: + keep, descriptor = keep_exit_with_descr(descr, router, guard) + if keep: + candidates.append(descriptor) + + if candidates: + return weighted_random_choice(candidates) + + else: + # TODO: see if we select another policy here + raise ValueError('No exit is suitable')
+ + + +
[docs]def keep_guard(router, state, exit_node, testing): + """Checks that the given router has the properties to be a guard + :param router: the router that must be inspected + :param state: state + :param exit_node: the previously chosen node + :return: if the router can be kept, the updated state and the descriptor""" + + logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) + + flags = router['flags'] + + if not obey_minimal_constraint(router, exit_node, testing=testing): + return False, state, None + + if 'Guard' not in flags: + return False, state, None + + if 'Stable' not in flags: + return False, state, None + + if 'Fast' not in flags: + return False, state, None + + if 'V2Dir' not in flags: + return False, state, None + + # Retrieve the descriptor + state, nhop = descriptors.download(state, cons=router, flavor='unflavored') + + if len(nhop) == 0: + return False, state, None + nhop = nhop[0] + + if router['digest'] != nhop['digest']: + return False, state, None + + if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': + return False, state, None + + if in_same_family(nhop, exit_node): + return False, state, None + + return True, state, nhop
+ + + +
[docs]def keep_guard_with_descr(descr, router, testing): + """Checks that the given router has the properties to be a guard + :param descr: descriptor of the exit candidate. + :param router: the router that must be inspected + :return: if the router can be kept, the updated state and the descriptor""" + + flags = router['flags'] + + if not obey_minimal_constraint(router, testing=testing): + return False, None + + if 'Guard' not in flags: + return False, None + + if 'Stable' not in flags: + return False, None + + if 'Fast' not in flags: + return False, None + + if 'V2Dir' not in flags: + return False, None + + if router['digest'] not in descr: + return False, None + + nhop = descr[router['digest']] + + if router['digest'] != nhop['digest']: + return False, None + + if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': + return False, None + + return True, nhop
+ + + +
[docs]def pick_good_entry(routers, state, exit_node, testing): + """Simplified version of the Guard selection algorithm + :param routers: the routers of the consensus + :param state: the state + :return: updated state and the descriptor of the guard node""" + + logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) + + candidates = [] + for router in routers: + keep, state, descriptor = keep_guard(router, state, exit_node, testing) + if keep: + candidates.append(descriptor) + + if candidates: + return state, weighted_random_choice(candidates) + + else: + # TODO: see if we select another policy here + raise ValueError('No guard is suitable')
+ + +
[docs]def pick_good_entry_from_routers(descr, routers, testing): + """Simplified version of the Guard selection algorithm + :param routers: the routers of the consensus + :param state: the state + :return: updated state and the descriptor of the guard node""" + + candidates = [] + for router in routers: + keep, descriptor = keep_guard_with_descr(descr, router, testing) + if keep: + candidates.append(descriptor) + + if candidates: + return weighted_random_choice(candidates) + + else: + # TODO: see if we select another policy here + raise ValueError('No guard is suitable')
+ + +
[docs]def keep_middle(router, state, exit_node, guard, testing): + """Checks that the given router has the properties to be a middle node + :param router: the router that must be inspected + :param state: state + :param exit_node: the previously chosen exit node + :param guard: the previously chosen guard + :return: if the router can be kept, the updated state and the descriptor""" + + logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) + + if not obey_minimal_constraint(router, exit_node, guard, testing=testing): + return False, state, None + + # Retrieve the descriptor + state, nhop = descriptors.download(state, cons=router, flavor='unflavored') + + if len(nhop) == 0: + return False, state, None + nhop = nhop[0] + + if router['digest'] != nhop['digest']: + return False, state, None + + if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': + return False, state, None + + if in_same_family(nhop, guard, exit_node): + return False, state, None + + return True, state, nhop
+ + +
[docs]def keep_middle_with_descr(descr, router, exit_node, guard, testing): + """Checks that the given router has the properties to be a middle node + :param descr: descriptor of the exit candidate. + :param router: the router that must be inspected + :param exit_node: the previously chosen exit node + :param guard: the previously chosen guard + :return: if the router can be kept, the updated state and the descriptor""" + if not obey_minimal_constraint(router, exit_node, guard, testing=testing): + return False, None + + if router['digest'] not in descr: + return False, None + + nhop = descr[router['digest']] + + if router['digest'] != nhop['digest']: + return False, None + + if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': + return False, None + + if in_same_family(nhop, guard, exit_node): + return False, None + + return True, nhop
+ + +
[docs]def pick_good_middle(routers, state, exit_node, guard, testing): + """Choose the middle node given the exit and the guard node + :param routers: the routers of the consensus + :param state: the state + :param exit_node: the previously chosen exit node + :param guard: the previously chosen guard node + :return: updated state and the descriptor of the guard node""" + + logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) + + candidates = [] + for router in routers: + keep, state, descriptor = keep_middle(router, state, exit_node, guard, testing) + if keep: + candidates.append(descriptor) + if candidates: + return state, weighted_random_choice(candidates) + + else: + # TODO: see if we select another policy here + raise ValueError('No middle node is suitable')
+ + +
[docs]def pick_good_middle_from_routers(descr, routers, exit_node, guard, testing): + """Choose the middle node given the exit and the guard node + :param routers: the routers of the consensus + :param exit_node: the previously chosen exit node + :param guard: the previously chosen guard node + :return: updated state and the descriptor of the guard node""" + + candidates = [] + for router in routers: + keep, descriptor = keep_middle_with_descr(descr, router, exit_node, guard, testing) + if keep: + candidates.append(descriptor) + + if candidates: + return weighted_random_choice(candidates) + + else: + # TODO: see if we select another policy here + raise ValueError('No middle node is suitable')
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/proxy/auth.html b/docs/source/_build/html/_modules/lightnion/proxy/auth.html new file mode 100644 index 0000000..3cb3796 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/proxy/auth.html @@ -0,0 +1,273 @@ + + + + + + + + + + + lightnion.proxy.auth — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.proxy.auth

+import collections
+import nacl.public
+import nacl.secret
+import logging
+import base64
+import json
+import os
+
+import lightnion as lnn
+
+
[docs]class material(collections.namedtuple('material', ['pkey', 'secret'])): + @property + def public(self): + return bytes(self.pkey.public_key) + + @property + def suffix(self): + suffix = base64.urlsafe_b64encode(b'auth ' + self.secret + self.public) + return str(suffix.replace(b'=', b''), 'utf8') + +
[docs] def perform(self, client, data): + data = bytes(json.dumps(data), 'utf8') + client = base64.b64decode(client) + + material, msg = lnn.crypto.ntor.server(self.pkey, self.secret, + self.secret + self.public + client, length=92) + + box = nacl.secret.SecretBox(material[:32]) + data = box.encrypt(data, nonce=material[32:32+24])[24:] + + data = base64.b64encode(data) + auth = base64.b64encode(msg) + + return dict(data=str(data, 'utf8'), auth=str(auth, 'utf8'))
+ +
[docs]def filename(auth_dir, filename, base_dir=None): + if base_dir is None: + base_dir = os.getcwd() + auth_dir = os.path.join(base_dir, auth_dir) + + if not os.path.isdir(auth_dir): + logging.info('Note: creating {} for private material.'.format( + auth_dir)) + os.mkdir(auth_dir) + return os.path.join(auth_dir, filename)
+ +_x25519_footer = b'-----END PRIVATE KEY-----' +_x25519_header = b'-----BEGIN PRIVATE KEY-----' +_x25519_openssl_asn1 = b'0.\x02\x01\x000\x05\x06\x03+en\x04"\x04 ' + +
[docs]def genpkey(auth_dir, base_dir=None): + logging.warning('New private key and shared secret generated.') + + pkey = bytes(nacl.public.PrivateKey.generate()) + with open(filename(auth_dir, 'private.pem'), 'wb') as f: + f.write(_x25519_header + b'\n') + f.write(base64.b64encode(_x25519_openssl_asn1 + pkey)) + f.write(b'\n' + _x25519_footer) + with open(filename(auth_dir, 'shared_secret'), 'wb') as f: + f.write(base64.b64encode(os.urandom(20)))
+ +
[docs]def getpkey(auth_dir, base_dir=None): + with open(filename(auth_dir, 'shared_secret'), 'rb') as f: + shared_secret = base64.b64decode(f.read()) + with open(filename(auth_dir, 'private.pem'), 'rb') as f: + header, data, footer = f.read().split(b'\n') + + if header != _x25519_header: + raise RuntimeError('Invalid pem header: {} vs {}'.format( + header, _x25519_header)) + + if footer != _x25519_footer: + raise RuntimeError('Invalid pem footer: {} vs {}'.format( + footer, _x25519_footer)) + + raw = base64.b64decode(data) + if (len(data) != 64 + or len(raw) != 48 + or not raw.startswith(_x25519_openssl_asn1)): + raise RuntimeError('Invalid key encoding, expected asn1:'.format( + base64.b64encode(_x25519_openssl_asn1))) + + auth = material(nacl.public.PrivateKey(raw[16:]), shared_secret) + with open(filename(auth_dir, 'suffix'), 'w') as f: + f.write(auth.suffix + '\n') + return auth
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/proxy/forward.html b/docs/source/_build/html/_modules/lightnion/proxy/forward.html new file mode 100644 index 0000000..b11c5df --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/proxy/forward.html @@ -0,0 +1,594 @@ + + + + + + + + + + + lightnion.proxy.forward — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.proxy.forward

+import asyncio
+import base64
+import logging
+import signal
+import string
+import sys
+import threading
+import time
+
+from datetime import datetime, timedelta
+
+import quart
+import websockets
+
+from quart_cors import cors
+
+import lightnion as lnn
+import lightnion.path_selection
+import lightnion.proxy
+
+from tools.keys import get_signing_keys_info
+
+#from tools.keys import get_raw_signing_keys
+
+debug = True
+
+formatter = logging.Formatter(fmt='%(asctime)s %(levelname)-8s %(message)s', datefmt='%H:%M:%S')
+handler = logging.StreamHandler(stream=sys.stdout)
+handler.setFormatter(formatter)
+
+logger = logging.getLogger()
+logger.setLevel(logging.WARNING)
+logger.addHandler(handler)
+
+logger = logging.getLogger("asyncio")
+logger.setLevel(logging.WARNING)
+logger.addHandler(handler)
+
+
+
[docs]class clerk(): + def __init__(self, slave_node, control_port, dir_port, compute_path, auth_dir=None): + #super().__init__() + logging.info('Bootstrapping clerk.') + self.crypto = lnn.proxy.parts.crypto() + self.dead = False + + self.auth = None + self.auth_dir = auth_dir + if auth_dir is not None: + try: + self.auth = lnn.proxy.auth.getpkey(auth_dir) + logging.debug('Auth dir is set.') + except FileNotFoundError: + lnn.proxy.auth.genpkey(auth_dir) + self.auth = lnn.proxy.auth.getpkey(auth_dir) + logging.debug('Auth dir got a file not found') + logging.debug('Note: authentication suffix is {}'.format(self.auth.suffix)) + else: + logging.debug('Auth dir is None.') + + self.retrieved_consensus = False + self.consensus = None + self.descriptors = None + + self.consensus_raw = None + self.descriptors_raw = None + self.mic_consensus_raw = None + self.mic_descriptors_raw = None + + #self.consm = None + #self.descm = None + self.signing_keys = None + #self.signing_keys_raw = None + + self.timer_consensus = None + + self.guard_node = None + + self.control_port = control_port + self.dir_port = dir_port + self.slave_node = slave_node + self.compute_path = compute_path + + self.link = None + self.channel_manager = None + self.websocket_manager = None + + +
[docs] def prepare(self): + guard = self.get_guard() + + self.link = lnn.proxy.link.Link(guard) + self.channel_manager = lnn.proxy.jobs.ChannelManager() + self.websocket_manager = lnn.proxy.jobs.WebsocketManager() + + self.link.set_channel_manager(self.channel_manager) + self.channel_manager.set_link(self.link) + self.websocket_manager.set_channel_manager(self.channel_manager)
+ + +
[docs] def retrieve_consensus(self): + """Retrieve relays data with direct HTTP connection and schedule its future retrival.""" + + # We tolerate that the system clock can be up to a few seconds too early. + refresh_tolerance_delay = 2.0 + min_delay = 120.0 # 2 minutes + max_time_until_invalid = 900.0 # 15 minutes + + host = self.slave_node[0] + port = self.dir_port + + + # retrieve consensus and descriptors + if self.compute_path: + cons,sg_keys = lnn.consensus.download_direct(host, port, flavor='unflavored') + desc = lnn.descriptors.download_direct(host, port, cons) + self.consensus = cons + self.signing_keys = sg_keys + self.descriptors = desc + + #self.consm,sg_keysm = lnn.consensus.download_direct(self.slave_node[0], self.dir_port) + #self.descm = lnn.descriptors.download_direct(self.slave_node[0], self.dir_port, self.consm, flavor='microdesc') + + self.consensus_raw = lnn.consensus.download_raw(host, port, flavor='unflavored') + digests = lnn.consensus.extract_nodes_digests_unflavored(self.consensus_raw) + self.descriptors_raw = lnn.descriptors.download_raw_by_digests_unflavored(host, port, digests) + + keys = get_signing_keys_info('{}:{}'.format(host, port)) + self.signing_keys = keys + #self.signing_keys_raw = get_raw_signing_keys('%s:%d'%(host, port)) + + self.mic_consensus_raw = lnn.consensus.download_raw(host, port, flavor='microdesc') + digests = lnn.consensus.extract_nodes_digests_micro(self.mic_consensus_raw) + self.mic_descriptors_raw = lnn.descriptors.download_raw_by_digests_micro(host, port, digests) + + try: + # Compute delay until retrival of the next consensus. + fresh_until = lnn.consensus.extract_date(self.consensus_raw, 'fresh-until') + now = datetime.utcnow() + delay = (fresh_until - now).total_seconds() + refresh_tolerance_delay + + if delay < min_delay: + valid_until = lnn.consensus.extract_date(self.consensus_raw, 'valid-until') + delay = (valid_until - now).total_seconds() - max_time_until_invalid + + delay = max(delay, min_delay) + + logging.debug('Delay until fetching next concensus: %f', delay) + + self.timer_consensus = threading.Timer(delay, clerk.retrieve_consensus, [self]) + self.timer_consensus.start() + self.retrieved_consensus = True + + except Exception as e: + logging.error(e) + raise e
+ + +
[docs] def wait_for_consensus(self): + """Ensure a consensus is present in the clerk, and fetch a new one if it is not. + """ + if not self.retrieved_consensus: + if self.timer_consensus is None: + self.retrieve_consensus() + + while not self.retrieved_consensus: + logging.info('Wait for consensus...') + time.sleep(1)
+ + +
[docs] def get_descriptor_unflavoured(self, router): + """Retrieve a descriptor. + :param router: Router from which we want the descriptor. + :return: the descriptor of the given router. + """ + + descriptor = self.descriptors[router['digest']] + + return descriptor
+ + +
[docs] def get_guard(self): + """Generate a guard + :return: guard node + """ + + self.wait_for_consensus() + + if self.guard_node is None: + # Use local node as the guard. + #guard = lnn.path_selection.select_guard_from_consensus(self.consensus, self.descriptors) + host = self.slave_node[0] + port = self.dir_port + + guard = lnn.descriptors.download_relay_descriptor(host, port) + + #nickname = guard['router']['nickname'] + #fingerprint = guard['fingerprint'] + #entry = [fingerprint, nickname] + #guard = lnn.proxy.path.convert(entry, consensus=self.consensus, expect='list')[0] + + logging.info('New guard relay selected.') + logging.debug(guard) + self.guard_node = guard + + return self.guard_node
+ + +app = quart.Quart(__name__) +cors(app, expose_headers='Access-Control-Allow-Origin') +url = lnn.proxy.base_url + +
[docs]@app.route(url + '/descriptors') +def get_descriptors(): + try: + app.clerk.wait_for_consensus() + desc = quart.jsonify(app.clerk.descriptors) + return desc, 200 + except Exception as e: + logging.exception(e) + quart.abort(503)
+ +
[docs]@app.route(url + '/consensus') +async def get_consensus(): + """ + Retrieve consensus. + """ + try: + app.clerk.wait_for_consensus() + cons = quart.jsonify(app.clerk.consensus) + return cons, 200 + except Exception as e: + logging.exception(e) + quart.abort(503)
+ +
[docs]@app.route(url + '/descriptors-raw/<flavor>') +def get_descriptors_raw(flavor): + try: + app.clerk.wait_for_consensus() + + desc = app.clerk.mic_descriptors_raw + if flavor == 'unflavored': + desc = app.clerk.descriptors_raw + + return desc, 200 + except Exception as e: + logging.exception(e) + quart.abort(503)
+ +
[docs]@app.route(url + '/consensus-raw/<flavor>') +async def get_consensus_raw(flavor): + """ + Retrieve raw consensus. + """ + try: + app.clerk.wait_for_consensus() + cons = app.clerk.mic_consensus_raw + if flavor == 'unflavored': + cons =app.clerk.consensus_raw + + return cons, 200 + except Exception as e: + logging.exception(e) + quart.abort(503)
+ +
[docs]@app.route(url + '/signing-keys') +async def get_signing_keys(): + """ + Retrieve signing keys to verify consensus. + """ + try: + app.clerk.wait_for_consensus() + keys = app.clerk.signing_keys + return keys, 200 + except Exception as e: + logging.exception(e) + quart.abort(503)
+ +
[docs]@app.route(url + '/guard') +async def get_guard(): + """ + Retrieve guard descriptor. + """ + try: + guard = app.clerk.link.guard + res = quart.jsonify(guard) + return res, 200 + except Exception as e: + logging.exception(e) + quart.abort(503)
+ + +
[docs]@app.route(url + '/channels', methods=['POST']) +async def create_channel(): + """ + Create a channel. + """ + payload = await quart.request.get_json() + #if not payload or not 'ntor' in payload: + # quart.abort(400) + + logging.info('Create new channel.') + #ntor = payload['ntor'] + + auth = None + if 'auth' in payload: + auth = payload['auth'] + if app.clerk.auth is None: + quart.abort(400) + + select_path = False + if 'select_path' in payload: + if payload['select_path'] == "true": + select_path = True + + if not select_path: + app.clerk.wait_for_consensus() + + try: + #data = app.clerk.create.perform(data) + ckt_info = app.clerk.channel_manager.create_channel( app.clerk.consensus, app.clerk.descriptors, select_path) + if auth is not None: + # TODO the proxy pack the ntor key in a tor cell, this can be done client side. + ckt_info = app.clerk.auth.perform(auth,ckt_info) + + response = quart.jsonify(ckt_info) + return response, 201 # Created + + except Exception as e: + logging.exception(e) + quart.abort(503)
+ + +
[docs]@app.route(url + '/channels/<uid>', methods=['DELETE']) +async def delete_channel(uid): + """ + Delete a channel. + :param uid: channel identifier + """ + try: + channel = app.clerk.channel_manager.get_channel_by_token(uid) + except Exception as e: + logging.exception(e) + quart.abort(404) + + try: + await app.clerk.channel_manager.destroy_circuit_from_client(channel) + await app.clerk.channel_manager.destroy_circuit_from_link(channel) + except Exception as e: + logging.exception(e) + quart.abort(500) + + return quart.jsonify({}), 202 # Deleted
+ + +
[docs]async def loop_signal_handler(signum, loop): + """ + Handler to stop coroutines. + """ + + logging.debug('Signal handler called.') + app.clerk.timer_consensus.cancel() + await app.shutdown() + await app.clerk.websocket_manager.stop() + + tasks = [task for task in asyncio.all_tasks() if task is not asyncio.current_task()] + + for task in tasks: + task.cancel() + + await asyncio.gather(*tasks) + + loop.stop()
+ + +
[docs]def main(port, slave_node, control_port, dir_port, compute_path, auth_dir=None): + """ + Entry point + """ + + #if static_files is not None: + # from werkzeug import SharedDataMiddleware + # app.wsgi_app = SharedDataMiddleware(app.wsgi_app, static_files) + + app.clerk = clerk(slave_node, control_port, dir_port, compute_path, auth_dir) + logging.info('Bootstrapping HTTP server.') + + logging.getLogger(websockets.__name__).setLevel(logging.INFO) + asyncio.set_event_loop(asyncio.new_event_loop()) + + app.clerk.prepare() + + loop = asyncio.get_event_loop() + for s in (signal.SIGHUP, signal.SIGTERM, signal.SIGINT): + loop.add_signal_handler(s, lambda s=s: asyncio.create_task(loop_signal_handler(s, loop))) + + loop.set_exception_handler(None) + + try: + loop.create_task(app.clerk.link.connection) + loop.create_task(app.clerk.websocket_manager.serve(loop)) + + app.run(host='0.0.0.0', port=port, debug=debug, loop=loop, use_reloader=False) + except Exception: + pass + finally: + loop.close()
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/proxy/jobs.html b/docs/source/_build/html/_modules/lightnion/proxy/jobs.html new file mode 100644 index 0000000..2e10fc8 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/proxy/jobs.html @@ -0,0 +1,665 @@ + + + + + + + + + + + lightnion.proxy.jobs — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.proxy.jobs

+import logging
+import hashlib
+import base64
+import time
+import websockets
+import asyncio
+
+import lightnion as lnn
+from . import parts, base_url, fake_circuit_id
+import lightnion.path_selection
+import lightnion.utils
+
+
+
[docs]class InvalidTokenException(Exception): + def __init__(self, token): + super().__init__('Value {} is not a valid token.'.format(token))
+ +
[docs]class CircuitDoesNotExistException(Exception): + def __init__(self, cid): + super().__init__('Circuit id {} does not exist.'.format(cid))
+ +
[docs]class ChannelDoesNotExistException(Exception): + def __init__(self, channel): + super().__init__('Channel {} does not exist.'.format(channel))
+ +
[docs]class LinkNotInitializedException(Exception): + pass
+ +
[docs]class LinkAlreadyInitializedException(Exception): + pass
+ +
[docs]def dummy_random_gen(): + return b'Dummy random data.'
+ + +
[docs]class Channel: + """ + Channel + """ + def __init__(self, token, cid): + """ + Channel constructor. + :param token: Token identifyint the channel. + :param cid: Circuit id corresponding to the channel. + """ + self.token = token + self.cid = cid + + self.to_send = asyncio.Queue(2048) + + self.destroyed = asyncio.Event()
+ + +
[docs]class ChannelManager: + """ + Channel manager + """ + + # Cryptographic tools to generate tokens. + crypto = parts.crypto() + + def __init__(self): + """ + Channel manager constructor + """ + # channels identified by a token + self.channels = dict() + + # link and main token set later + self.link = None + self.maintoken = None + + + def _cid_from_token(self, token): + """ + Extract a circuit id from a token. + :param token: token from which the circuit id is extracted. + """ + cid = self.crypto.decrypt_token(token, self.maintoken) + + if cid is None: + logging.debug('ChanMgr: Invalid token: {}'.format(token)) + raise InvalidTokenException() + + return cid + + +
[docs] def gen_token_from_cid(self, cid): + """ + Produce a token from a circuit id. + :param cid: circuit id used to generate the token. + """ + return self.crypto.compute_token(cid, self.maintoken)
+ + + def _gen_main_token(self, rnd_gen): + """ + Generate the main token used to produce channel tokens. + :param rnd_gen: method to generate a ransdom number to initialize the token generator. + :return: main token + """ + if self.link is None: + raise LinkNotInitializedException() + + guard_id = self.link.guard['digest'].encode('utf-8') + secret = rnd_gen() + maintoken = hashlib.sha256(guard_id + secret).digest() + logging.debug('ChanMgr: Main token generated: {}'.format(maintoken)) + return maintoken + + + + + + + + +
[docs] def create_channel(self, consensus, descriptors, select_path): + """ + Create a new channel. + :param ntor: First part of the ntor handshake provided by the client. + :param consensus: The current consensus. + :param descriptors: A collection of the current descriptors. + :return: Response to be send to the client + """ + + # TODO: Currently, the ntor is provided by the client to be packaged + # in the proxy and send back to the client to be send again to + # the websocket. This need to be simplified. + + if self.link is None: + raise LinkNotInitializedException() + + #ntor_bin = base64.b64decode(ntor) + + cid = self.link.gen_cid() + token = self.gen_token_from_cid(cid) + + #cell = lnn.create.ntor_raw2(cid, ntor_bin) + #cell = base64.b64encode(cell).decode('utf-8') + + self.channels[cid] = Channel(token, cid) + + if not select_path: + (middle, exit) = lnn.path_selection.select_end_path_from_consensus(consensus, descriptors, self.link.guard) + logging.warning('Middle {}'.format(middle['router']['nickname'])) + logging.warning('Exit {}'.format(exit['router']['nickname'])) + response = {'id': token, 'path': [middle, exit], 'guard': self.link.guard} + logging.debug('ChanMgr: Channel {} with token {} created.'.format(cid, token)) + return response + else: + response = {'id': token, 'guard': self.link.guard} + logging.debug('ChanMgr: Channel {} with token {} created.'.format(cid, token)) + return response
+ +
[docs] def delete_channel(self, channel): + """ + Delete a given channel if it is managed by the channel manager, do nothing otherwise. + :param channel: Channel to be deleted. + """ + if channel.cid in self.channels.keys(): + del self.channels[channel.cid] + logging.debug('ChanMgr: Channel {} with token {} deleted.'.format(channel.cid, channel.token))
+ + +
[docs] async def destroy_circuit_from_client(self, channel): + """ + Destroy a circuit corresponding to a channel as if the order was comming from the client side. + :param channel: Channel handling the circuit to be destroyed. + """ + + # Send a cell to the link to delete the circuit in the relay. + cid = channel.cid + reason = lnn.cell.destroy.reason.REQUESTED + + cell = lnn.cell.destroy.pack(cid, reason) + cell_padded = lnn.cell.pad(cell) + + await self.link.to_send.put(cell_padded) + + # Destroy the channel. + channel.destroyed.set() + + logging.debug('ChanMgr: Prepare to delete circuit {} from client.'.format(cid))
+ + + + + +
[docs] def get_channel_by_token(self, token): + """ + Get a channel by its token. + :param token: Token identifying the channel. + """ + + cid = self._cid_from_token(token) + + if cid not in self.channels.keys(): + raise ChannelDoesNotExistException(token) + + return self.channels[cid]
+ + +
[docs] async def schedule_to_send(self, cell, cid): + """ + Scedule the data to be send to the correct channel. + :param cell: cell to be send. + """ + logging.debug('ChanMgr: Begin adding data to sending queue of channel {}.'.format(cid)) + + if cid not in self.channels.keys(): + logging.warning('ChanMgr: Channel {} does not exists.'.format(cid)) + return + #raise CircuitDoesNotExistException(cid) + + channel = self.channels[cid] + + if channel.destroyed.is_set(): + logging.warning('ChanMgr: Channel {} is destroyed.'.format(cid)) + return + #raise CircuitDoesNotExistException(cid) + + # If the cell command to delete the circuit, + header = lnn.cell.header(cell) + if header.cmd is lnn.cell.cmd.DESTROY: + cell_validation = lnn.cell.destroy.cell(cell) + logging.warning('ChanMgr: DESTROY cell received for channel {}, reason: {}.'.format(cid, cell_validation.reason)) + if not cell_validation.valid: + logging.debug('ChanMgr: Invalid DESTROY in channel {}.'.format(cid)) + #raise InvalidDestroyCellException() + else: + await self.destroy_circuit_from_link(channel) + + return + + cell_padded = lnn.cell.pad(cell) + + await channel.to_send.put(cell_padded) + + logging.debug('ChanMgr: Data added to sending queue of channel {}.'.format(channel.cid))
+ + + +
[docs]class WebsocketManager: + prefix = base_url + '/channels/' + prefix_len = len(prefix) + + def __init__(self, host='0.0.0.0', port=8765, timeout=60): + """ + Websocket server + :param host: host on which the websocket need to run. + :param port: port on which the websocket is listening. + :param timeout: timeout before closing the connection. + """ + + # Time witout activity until channel is deleted. + self.timeout = timeout + + # The channel manager is set later + self.channel_manager = None + + # The websocket server + self.host = host + self.port = port + self.server = None + + self.cell_sent = 0 + self.cell_recv = 0 + + + logging.debug('WsServ: Websocket server prepared ({}:{})'.format(host, port)) + + +
[docs] async def serve(self, loop): + """ + Create and start a websocket server, then wait for it to close. + :param host: host on which the websocket need to run. + :param port: port on which the websocket is listening. + """ + self.server = await websockets.serve(self._handler, self.host, self.port, loop=loop, compression=None)
+ + +
[docs] async def stop(self): + if self.server is not None: + self.server.close() + await self.server.wait_closed() + logging.debug('WsServ: Websocket server closed.')
+ + +
[docs] def set_channel_manager(self, channel_manager): + """ + Set the channel manager to use for dispatching data. + :param channel_manager: The channel manager to use. + """ + self.channel_manager = channel_manager + logging.debug('WsServ: Channel manager set.')
+ + + async def _recv(self, ws, channel): + """ + Handler to receive a message from the client via the websocket. + :param ws: websocket used to communicate with the client. + :param channel: Channel correspondind to the client from which data is recieved. + """ + + while not ws.closed: + try: + cell = await ws.recv() + + self.cell_recv += 1 + logging.info('cell {} recv by wbskt: {}'.format(self.cell_recv, cell[:20].hex())) + logging.debug('WsServ: Recieved cell from channel {}: {}... {} bytes.'.format(channel.cid, cell[:20], len(cell))) + + await self.channel_manager.link.schedule_to_send(cell, channel) + + except websockets.exceptions.ConnectionClosedError: + logging.exception('Websocket connection closed.') + return + + except websockets.exceptions.ConnectionClosedOK: + logging.info('Websocket connection closed.') + return + + + async def _send(self, ws, channel): + """ + Handler to send a message to the client via the websocket. + :param ws: The websocket used to communicate with the client. + :param channel: Channel from which data is sent. + """ + + while not ws.closed: + try: + cell = await channel.to_send.get() + + cell = lnn.cell.pad(cell) + await ws.send(cell) + + self.cell_sent += 1 + logging.info('cell {} sent to wbskt: {}'.format(self.cell_sent, cell[:20].hex())) + + logging.debug('WsServ: Sent data to channel {}: {}... {} bytes.'.format(channel.cid, cell[:20], len(cell))) + + except websockets.exceptions.ConnectionClosed as err: + logging.exception() + return + + + async def _timeout(self, ws, channel): + """ + Handler to send termination cells in case of a timeout. + :param ws: The websocket used to communicate with the client. + :param channel: Channel from which data is sent. + """ + await asyncio.sleep(self.timeout) + + logging.debug('WsServ: Channel {} timed out.'.format(channel.cid)) + + await self.channel_manager.destroy_circuit_from_client(channel) + + + async def _destroy(self, ws, channel): + """ + Handler to destroy the specific circuit. + :param ws: The websocket used to communicate with the client. + :param channel: Channel from which data is sent. + """ + + # Just await for the channel to be destroyed. + await channel.destroyed.wait() + + + async def _handler(self, ws, path): + """ + Handler to process a IO on the websocket or on the link. + :param ws: The websocket used to communicate with the client. + :param path: Path used by the client. + """ + + if not path.startswith(WebsocketManager.prefix): + logging.warning('WsServ: Attempted to connect to websocket with an invalid prefix {}.'.format(path)) + return + + token = path[WebsocketManager.prefix_len:] + + logging.debug('WsServ: Begin handler for channel id by token {}.'.format(token)) + + try: + channel = self.channel_manager.get_channel_by_token(token) + except Exception: + logging.warning('WsServ: Attempted to connect to websocket with an invalid token {}.'.format(token)) + return + + tasks = [ + asyncio.create_task(self._destroy(ws, channel)), + #asyncio.create_task(self._timeout(ws, channel)), + asyncio.create_task(self._recv(ws, channel)), + asyncio.create_task(self._send(ws, channel)) + ] + + done, pending = await asyncio.wait(tasks, return_when=asyncio.FIRST_COMPLETED) + + #while not ws.closed: + # done, pending = await asyncio.wait(tasks, return_when=asyncio.FIRST_COMPLETED) + + # # Conditions to continue or stop listening. + + # # Circuit destroyed -> close websocket. + # if tasks[0].done(): + # logging.debug('WsServ: Channel {} destroyed.'.format(channel.cid)) + # break + + # # Long timeout -> close websocket. + # if tasks[1].done(): + # logging.debug('WsServ: Ws handler timed out for channel {}.'.format(channel.cid)) + # break + # else: + # # Channel has not timed out, so the timeout is resetted. + # tasks[1].cancel() + # tasks[1] = asyncio.create_task(self._timeout(ws, channel)) + # logging.debug('WsServ: Reset timeout handler for channel {}.'.format(channel.cid)) + + # # If recv is done, restart it. + # if tasks[2].done() or tasks[2].cancelled(): + # tasks[2] = asyncio.create_task(self._recv(ws, channel)) + # logging.debug('WsServ: New recv task created for channel {}.'.format(channel.cid)) + + # # If send is done, restart it. + # if tasks[3].done() or tasks[3].cancelled(): + # tasks[3] = asyncio.create_task(self._send(ws, channel)) + # logging.debug('WsServ: New send task created for channel {}.'.format(channel.cid)) + + # The channel is destroyed, and the connection needs to be closed. + + # Cancel tasks which are still pending. + for task in tasks: + if not (task.cancelled() or task.done()): + task.cancel() + + # Delete the channel and close the websocket. + self.channel_manager.delete_channel(channel) + await ws.close() + + logging.debug('WsServ: End handler for channel {}.'.format(channel.cid))
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/proxy/link.html b/docs/source/_build/html/_modules/lightnion/proxy/link.html new file mode 100644 index 0000000..6691d73 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/proxy/link.html @@ -0,0 +1,593 @@ + + + + + + + + + + + lightnion.proxy.link — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.proxy.link

+import logging
+import socket
+import ssl
+import asyncio
+
+import lightnion as lnn
+import lightnion.cell
+import lightnion.utils
+from lightnion.proxy import fake_circuit_id
+
+
+
[docs]class InvalidCellHeaderException(Exception): + pass
+ +
[docs]class InvalidAuthCellException(Exception): + pass
+ +
[docs]class InvalidCertsCellException(Exception): + pass
+ +
[docs]class InvalidDestroyCellException(Exception): + pass
+ +
[docs]class InvalidNetInfoCellException(Exception): + pass
+ +
[docs]class InvalidVersionCellException(Exception): + pass
+ +
[docs]class NoSupportedVersionException(Exception): + pass
+ + + +
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/proxy/parts.html b/docs/source/_build/html/_modules/lightnion/proxy/parts.html new file mode 100644 index 0000000..4bd99fa --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/proxy/parts.html @@ -0,0 +1,230 @@ + + + + + + + + + + + lightnion.proxy.parts — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.proxy.parts

+import secrets
+import base64
+
+from cryptography.hazmat.primitives.ciphers.aead import AESGCM as gcm
+from cryptography.exceptions import InvalidTag
+
+import lightnion as lnn
+
+
[docs]class crypto: + def __init__(self): + self.binding = secrets.token_bytes(32) + self.gcm = gcm(gcm.generate_key(bit_length=128)) + +
[docs] def compute_token(self, circuit_id, binding): + circuit_id = lnn.cell.view.uint(4).write(b'', circuit_id) + + nonce = secrets.token_bytes(12) + token = self.gcm.encrypt(nonce, circuit_id, self.binding + binding) + token = base64.urlsafe_b64encode(nonce + token) + return str(token.replace(b'=', b''), 'utf8')
+ +
[docs] def decrypt_token(self, token, binding): + try: + if not isinstance(token, str): + token = str(token, 'utf8') + token = base64.urlsafe_b64decode(token + '====') + except BaseException: + return None + + if len(token) != 32: + return None + + binding = self.binding + binding + nonce, token = token[:12], token[12:] + try: + circuit_id = self.gcm.decrypt(nonce, token, binding) + except InvalidTag: + return None + + if len(circuit_id) != 4: + return None + + return int.from_bytes(circuit_id, byteorder='big')
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/proxy/path.html b/docs/source/_build/html/_modules/lightnion/proxy/path.html new file mode 100644 index 0000000..7a653af --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/proxy/path.html @@ -0,0 +1,452 @@ + + + + + + + + + + + lightnion.proxy.path — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.proxy.path

+import multiprocessing
+import threading
+import logging
+import atexit
+import base64
+import queue
+import time
+
+import stem
+import stem.process
+import stem.control
+
+# TODO: replace the whole content of this file with proper stuff!
+
+default_nb_worker = 2
+
+
[docs]class worker(threading.Thread): + def __init__(self, host, port, barrier, path_queue, batch_size): + super().__init__() + + self.mini_batch = batch_size // 8 if batch_size // 8 > 0 else 1 + self.batch_size = batch_size + self.path_queue = path_queue + self.barrier = barrier + self.count = 0 + self.finished = False + self.dead = False + self.port = port + self.host = host + +
[docs] def run(self): + ctrl = stem.control.Controller.from_port(self.host, port=self.port) + ctrl.authenticate() + + first = self.barrier.wait() + if first == 0: + ctrl.drop_guards() + ctrl.signal(stem.Signal.NEWNYM) + self.barrier.wait() + + circs = [] + while not self.dead: + if self.count >= self.batch_size and not self.dead: + for circ in circs: + try: + ctrl.close_circuit(circ) + except (stem.ControllerError, ValueError): + pass + self.finished = True + self.count = 0 + + for _ in range(self.mini_batch): + if len(circs) > self.batch_size: + break + + try: + circs.append(ctrl.new_circuit()) + except stem.ControllerError as e: + pass + + fails = [] + for circ in circs: + try: + path = ctrl.get_circuit(circ).path + if len(path) == 3: + ctrl.close_circuit(circ) + self.path_queue.put(path) + self.count += 1 + else: + fails.append(circ) + except (stem.ControllerError, ValueError) as e: + pass + + circs = fails + self.barrier.wait() + + ctrl.close()
+ +_cached_tor = None +
[docs]def get_tor(control_port=9051, socks_port=9050, msg_handler=None): + global _cached_tor + if _cached_tor is not None: + return _cached_tor + + tor = stem.process.launch_tor_with_config( + config={ + 'SocksPort': str(socks_port), + 'ControlPort': str(control_port), + 'PublishServerDescriptor': '0', + }, init_msg_handler=msg_handler) + atexit.register(tor.kill) + + _cached_tor = tor
+ +
[docs]def emitter( + output_queue, + kill_queue, + control_host, + control_port, + batch=32, + target=1024, + nb_worker=default_nb_worker): + + # (shut up stem) + logging.getLogger(stem.__name__).setLevel(logging.ERROR) + + barrier = threading.Barrier(nb_worker) + path_queue = queue.Queue(maxsize=batch) + batch_size = target // nb_worker + 1 + + workers = [] + for _ in range(nb_worker): + workers.append( + worker( + control_host, + control_port, + barrier, + path_queue, + batch_size)) + + for w in workers: + w.start() + + guard, middle, exit = path_queue.get() + output_queue.put(guard) + output_queue.put((middle, exit)) + + while any([not w.finished for w in workers]): + new_guard, middle, exit = path_queue.get() + if new_guard != guard: + continue + + output_queue.put((middle, exit)) + if kill_queue.qsize() > 0: + for w in workers: + w.finished = True + + # (cleanup is useless as the process will die, but do it nonetheless) + barrier.abort() + for w in workers: + w.dead = True + + try: + for i in range(path_queue.qsize()): + path_queue.get_nowait() + except queue.Empty: + pass + + for w in workers: + w.join(0.1)
+ +
[docs]class producer: + def __init__(self, process, path_queue, kill_queue, tor_process): + self.guard = path_queue.get() + self.process = process + self.path_queue = path_queue + self.kill_queue = kill_queue + self.tor_process = tor_process + + @property + def dead(self): + return not self.process.is_alive() + + @property + def empty(self): + return not (self.path_queue.qsize() > 0) + +
[docs] def get(self): + return self.path_queue.get()
+ +
[docs] def close(self): + try: + self.kill_queue.put_nowait([None]) + except queue.Full: + pass + + try: + self.path_queue.get_nowait() + except queue.Empty: + pass
+ +_default_tor = None +_default_socks_port = None +_default_control_port = None +
[docs]def fetch( + batch=32, + target=1024, + nb_worker=2, + tor_process=None, + socks_port=None, + control_host='127.0.0.1', + control_port=None): + + global _default_tor, _default_socks_port, _default_control_port + if socks_port is None: + if _default_socks_port is None: + _default_socks_port = 9050 + socks_port = _default_socks_port + + if control_port is None: + if _default_control_port is None: + _default_control_port = 9051 + control_port = _default_control_port + + if tor_process is None: + if _default_tor is None: + _default_tor = get_tor( + socks_port=socks_port, + control_port=control_port, + msg_handler=None) + tor_process = _default_tor + + path_queue = multiprocessing.Queue(maxsize=batch) + kill_queue = multiprocessing.Queue(maxsize=1) + process = multiprocessing.Process(target=emitter, args=( + path_queue, + kill_queue, + control_host, + control_port, + batch, + target, + nb_worker)) + process.start() + + if not tor_process: + tor_process = None + + return producer(process, path_queue, kill_queue, tor_process)
+ +# TODO: check if this conversion fingerprint->descriptor is safe? +
[docs]def convert(*entries, consensus, expect='fetch_format'): + if expect not in ['list', 'fetch_format']: + raise RuntimeError('Format unknown: {}'.format(expect)) + + if expect == 'fetch_format': + entries = [entries[0]] + [node for pair in entries[1] for node in pair] + guard, *paths = convert(*entries, consensus=consensus, expect='list') + paths = list(zip(paths[::2], paths[1::2])) + return guard, paths + + if expect == 'list': + pass + new_entries = [] + + by_identity = {r['identity']: r for r in consensus['routers']} + if len(by_identity) != len(consensus['routers']): + raise RuntimeError('Unsafe! Duplicates in the consensus!') + + for entry in entries: + fingerprint, nickname = entry + + as_identity = str(base64.b64encode(bytes.fromhex(fingerprint)), 'utf8') + as_identity = as_identity.replace('=', '') + + if as_identity not in by_identity: + raise RuntimeError('Unknown entity within consensus: {}'.format( + (entry, as_identity))) + + router = by_identity[as_identity] + if nickname != router['nickname']: + raise RuntimeError('Mismatched nickname: {} vs {}'.format(nickname, + router['nickname'])) + + new_entries.append(router) + return new_entries
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/proxy/relayinfo.html b/docs/source/_build/html/_modules/lightnion/proxy/relayinfo.html new file mode 100644 index 0000000..1aedf29 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/proxy/relayinfo.html @@ -0,0 +1,207 @@ + + + + + + + + + + + lightnion.proxy.relayinfo — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • lightnion.proxy.relayinfo
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for lightnion.proxy.relayinfo

+from stem.control import Controller
+
+DEFAULT_PARAMS = [
+]
+
+
[docs]def get_relay_info(port, password=None, params=None): + """Retrieve some info from the relay. + """ + + if params is None: + params = DEFAULT_PARAMS + + with Controller.from_port(port=port) as controller: + controller.authenticate(password=password) + + info = controller.get_info(params) + + return info + + raise Exception('An error occurred while retrieving the info from the relay.')
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/signature.html b/docs/source/_build/html/_modules/lightnion/signature.html new file mode 100644 index 0000000..6f7a34b --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/signature.html @@ -0,0 +1,347 @@ + + + + + + + + + + + lightnion.signature — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.signature

+from Crypto.PublicKey import RSA
+from Crypto.Hash import SHA
+import Crypto
+import binascii
+from Crypto.Util.number import *
+
+
+
[docs]def verify(raw_cons, keys, minimal=0.5): + """ + This function verifies the given raw consensus + + Note: TOR does not perform a full PKCS#1 v1.5 signature (RFC 2313) as mentioned in the TOR's reference. + The padding of the data that must be signed is done following the reference (see subsection 8.1 of the + RFC 2313 for more details), however the digest is not wrapped into the data structure described in the + subsection 10.1.2. This is the reason why RSA is performed manually and the module PKCS1_v1_5 of pycrypto is + not used. + + :param raw_cons: the consensus we want to verify + :param keys: a dictionary of keys as retrieved by the function get_signing_keys_info of tools/keys.py + :param minimal: the minimal percentage of the authorities whose signatures must be verified in order to accept the + given consensus + :return: true if at least the minimal number of signatures are verified + """ + assert 0 < minimal <= 1 + + nbr_verified = 0 + total = 0 + + # split the consensus and hash it + raw_cons = raw_cons.split('directory-signature ') + cons = raw_cons[0] + 'directory-signature ' + h = SHA.new(cons.encode('ASCII')) + + # get the signatures and the signing keys + signatures_and_key_digest = get_signature_and_digests(raw_cons[1:]) + + for fingerprint in signatures_and_key_digest.keys(): + total += 1 + # get the RSA public key and verify it is valid + key = keys.get(fingerprint) + signing_key_digest = signatures_and_key_digest[fingerprint]['signing-key-digest'] + + if key is None or not verify_key(key["pem"], signing_key_digest): + continue + else: + public_key = RSA.importKey(key["pem"]) + + signature = get_binary_signature(fingerprint, signatures_and_key_digest) + padded_hash = get_hash(public_key, signature) + + if not verify_format(padded_hash): + continue + + sep_idx = padded_hash.index(b'\x00', 2) + recovered_hash = binascii.hexlify(padded_hash[sep_idx + 1:]).decode() + + if recovered_hash == h.hexdigest(): + print("{}: signature verified".format(fingerprint)) + nbr_verified += 1 + else: + print("{}: signature not verified".format(fingerprint)) + + return nbr_verified > total * minimal
+ + +
[docs]def get_hash(public_key, signature): + """ + This functions performs RSA on a binary signature + :param public_key: the key used to compute RSA + :param signature: the signature + :return: the binary digest of the signature + """ + signature=bytes_to_long(signature) + m = public_key._encrypt(signature) + m = long_to_bytes(m) + + # Compute k the number of bytes of the original message + mod_bits = Crypto.Util.number.size(public_key.n) + k = Crypto.Util.number.ceil_div(mod_bits, 8) + # Prepend leading 0 bytes that encrypt does not return + m = b'\x00' * (k - len(m)) + m + return m
+ +
[docs]def get_binary_signature(fingerprint, signatures_and_key_digest): + """ + This function encodes a signature in base64 pem format into binary + :param fingerprint: the fingerprint of the author of the signature we want to encode + :param signatures_and_key_digest: the mapping from fingerprints to signature (and the signature key digest) + :return: the binary version of the signature + """ + # get the signature corresponding to fingerprint and convert it to binary + signature_lines = signatures_and_key_digest[fingerprint]['signature'].split('\n') + start_index = signature_lines.index("-----BEGIN SIGNATURE-----") + 1 + end_index = signature_lines.index("-----END SIGNATURE-----") + raw_signature = ''.join(signature_lines[start_index:end_index]) + signature = binascii.a2b_base64(raw_signature) + return signature
+ + +
[docs]def verify_key(actual, hex_digest): + """ + Function that verify that the downloaded key corresponds to the hex digest of the consensus + :param actual: the key with the format + + -----BEGIN RSA PUBLIC KEY-----\n + base64 encoded key split on multiples lines ending with \n + -----END RSA PUBLIC KEY----- + + :param hex_digest: the sha1 digest of the key + :return: true if the key is verified + """ + raw_key = ''.join(actual.split('\n')[1:-1]) + key_bin = binascii.a2b_base64(raw_key) + key_hash = SHA.new(key_bin) + return hex_digest == key_hash.hexdigest().upper()
+ + +
[docs]def get_signature_and_digests(remaining): + """ + Function that get the signature and the hex digests from the remaining part of the consensus + :param remaining: remaining (without the part that must be hashed) part of the consensus split by authority + :return: dictionary mapping the fingerprint of an authority and both its signature and the hex digest of its public + key + """ + sign_and_digests = {} + + for r in remaining: + if r != '': + digests, sign = r.split('\n', 1) + digests = digests.split(" ") + identity, key_hex_digest = digests if len(digests) == 2 else digests[1:] + + sign_and_digests[identity] = { + "signing-key-digest": key_hex_digest, + "signature": sign + } + return sign_and_digests
+ + +
[docs]def verify_format(padded_hash): + """ + This function verifies that the hash as the good format, i.e: + # 1 byte - [null '\x00'] + # 1 byte - [block type identifier '\x01'] - Should always be 1 + # N bytes - [padding '\xFF' ] + # 1 byte - [separator '\x00' ] + # M bytes - [message] + :param padded_hash: + :return: true if the format is correct + """ + # Check leading two bytes + if padded_hash[:2] != b'\x00\x01': + return False + # Find end of padding and check padding bytes + sep_idx = padded_hash.index(b'\x00', 2) + for idx in range(2, sep_idx): + if padded_hash[idx] != 0xff: + return False + + return True
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/socket.html b/docs/source/_build/html/_modules/lightnion/socket.html new file mode 100644 index 0000000..bc26ed2 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/socket.html @@ -0,0 +1,398 @@ + + + + + + + + + + + lightnion.socket — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.socket

+import lightnion as lnn
+
+import threading
+import socket
+import queue
+import ssl
+
+# TODO: Better network handling?
+
+class _stat_peer:
+    def __init__(self, peer):
+        self.peer = peer
+
+        self._kbout = 0
+        self._kbin = 0
+
+    def disp(self):
+        print('Traffic: {:.2f} up {:.2f} down'.format(
+            self._kbout, self._kbin), end='\r')
+
+    def recv(self, size):
+        data = self.peer.recv(size)
+        self._kbin += len(data) / 1000
+        self.disp()
+        return data
+
+    def send(self, data):
+        bytes_send = self.peer.send(data)
+        self._kbout += bytes_send / 1000
+        self.disp()
+        return bytes_send
+
+    def sendall(self, data):
+        bytes_send = self.peer.sendall(data)
+        self._kbout += bytes_send / 1000
+        self.disp()
+        return bytes_send
+
+    def get_channel_binding(self, *kargs):
+        return self.peer.get_channel_binding(*kargs)
+
+    def close(self):
+        return self.peer.close()
+
+
[docs]def cell_slice(payload, once=False): + cell_header = lnn.cell.header(payload) + if len(payload) < cell_header.width: # (payload too small, need data) + return [], payload, True + + if not cell_header.valid: + raise RuntimeError('Invalid cell header: {}'.format(cell_header.raw)) + + length = cell_header.width + lnn.constants.payload_len + if not cell_header.cmd.is_fixed: + cell_header = lnn.cell.header_variable(payload) + if len(payload) < cell_header.width: # (payload too small, need data) + return [], payload, True + + if not cell_header.valid: + raise RuntimeError( + 'Invalid variable cell header: {}'.format(cell_header.raw)) + + length = cell_header.width + cell_header.length + + if length > lnn.constants.max_payload_len: + raise RuntimeError('Invalid cell length: {}'.format(length)) + + if len(payload) < length: + return [], payload, True + + cells = [payload[:length]] + payload = payload[length:] + celling = False + + if once: + return cells, payload, celling + + while not celling and len(payload) > 0: + new_cells, payload, celling = cell_slice(payload, once=True) + cells += new_cells + return cells, payload, celling
+ +
[docs]class worker(threading.Thread): + def __init__(self, peer, max_fails=32, max_queue=2048, buffer_size=4096): + super().__init__() + + self.buffer_size = buffer_size + self.max_queue = max_queue + self.max_fails = max_fails + self.peer = peer + + self.cell_queue = queue.Queue(max_queue) + self.send_queue = queue.Queue(max_queue) + self.recv_queue = queue.Queue(max_queue) + self.sending = b'' + self.recving = b'' + self.celling = False + self.fails = 0 + self.dead = False + +
[docs] def close(self): + self.peer.close() + self.dead = True
+ +
[docs] def die(self, e): + if self.dead: + return + + self.close() + raise e
+ +
[docs] def send(self, cell, block=True): + self.send_queue.put(lnn.cell.pad(cell), block=block)
+ +
[docs] def recv(self, block=True): + return self.cell_queue.get(block=block)
+ +
[docs] def main(self): + if self.fails > self.max_fails: + cells, _, _ = cell_slice(self.recving) + for cell in cells: + self.cell_queue.put(cell) + self.die(RuntimeError('Too many fails, is the socket dead?')) + + try: + if len(self.sending) < 1: + self.sending = self.send_queue.get(block=False) + except queue.Empty: + pass + + try: + if len(self.sending) > 0: + nbytes = self.peer.send(self.sending) + self.fails = self.fails + 1 if nbytes == 0 else 0 + self.sending = self.sending[nbytes:] + return + except (socket.timeout, ssl.SSLError, BlockingIOError): + pass + + try: + payload = self.peer.recv(self.buffer_size) + self.fails = self.fails + 1 if len(payload) == 0 else 0 + self.recv_queue.put(payload) + if self.recv_queue.qsize() < self.max_queue // 4: + return + except (socket.timeout, ssl.SSLError, BlockingIOError): + pass + + try: + if ((len(self.recving) < 1 or self.celling) + and len(self.recving) <= lnn.constants.max_payload_len): + self.recving += self.recv_queue.get(block=False) + self.celling = False + except queue.Empty: + pass + + if len(self.recving) > 0 and not self.celling: + cells, self.recving, self.celling = cell_slice(self.recving) + for cell in cells: + self.cell_queue.put(cell)
+ +
[docs] def run(self): + try: + while not self.dead: + self.main() + self.dead = True + except BaseException as e: + self.die(e)
+ +
[docs]class io: + _join_timeout = 3 + + def __init__(self, + peer, + daemon=True, + period=0.01, + max_fails=32, + max_queue=2048, + buffer_size=4096): + peer.settimeout(period) + # peer = _stat_peer(peer) # uncomment for extra statistics + + self.worker = worker(peer, max_fails, max_queue, buffer_size) + if daemon: + self.worker.daemon = True + + self.worker.start() + self.peer = peer + + @property + def dead(self): + return self.worker.dead + + @property + def pending(self): + return self.worker.cell_queue.qsize() + +
[docs] def recv(self, block=True): + return self.worker.recv(block)
+ +
[docs] def send(self, payload, block=True): + self.worker.send(payload, block=block)
+ +
[docs] def binding(self): + return self.peer.get_channel_binding()
+ +
[docs] def close(self): + self.peer.close() + + self.worker.close() + self.worker.join(self._join_timeout)
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/tests/path_selection_test.html b/docs/source/_build/html/_modules/lightnion/tests/path_selection_test.html new file mode 100644 index 0000000..11817bb --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/tests/path_selection_test.html @@ -0,0 +1,250 @@ + + + + + + + + + + + lightnion.tests.path_selection_test — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • lightnion.tests.path_selection_test
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for lightnion.tests.path_selection_test

+import random
+
+import pytest
+
+from lightnion import cache
+from lightnion import consensus
+from lightnion import create
+from lightnion import link
+from lightnion import path_selection as ps
+
+
+
[docs]@pytest.fixture() +def get_chutney_consensus(): + """Get chutney's consensus""" + cache.purge() + lk = link.initiate(port=5000) + state = create.fast(lk) + state, cons = consensus.download(state, flavor='unflavored') + + dict_cons = {} + for router in cons['routers']: + dict_cons[router['nickname']] = router + + return state, dict_cons
+ + +
[docs]def test_keep_exit_works_with_suitable_router(get_chutney_consensus): + state, cons = get_chutney_consensus + + keep, state, descriptor = ps.keep_exit(cons['test006r'], state) + + assert keep and descriptor is not None
+ + +
[docs]def test_keep_exit_works_with_reject_exit_policy(get_chutney_consensus): + state, cons = get_chutney_consensus + + keep, state, descriptor = ps.keep_exit(cons['test002a'], state) + + assert not keep and descriptor is None
+ + +
[docs]def test_pick_good_exit_returns_a_router(get_chutney_consensus): + state, cons = get_chutney_consensus + routers = cons.values() + + state, exit_node = ps.pick_good_exit(routers, state) + + assert exit_node is not None
+ + +
[docs]def test_path_selection_works(get_chutney_consensus): + state, cons = get_chutney_consensus + routers = cons.values() + + ps.select_path(routers, state, testing=True)
+ + +
[docs]def test_obey_minimal_constraint_with_one_router(get_chutney_consensus): + state, cons = get_chutney_consensus + + assert not ps.obey_minimal_constraint(cons['test005r'], cons['test005r'])
+ +
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/tests/test_consensus_chutney.html b/docs/source/_build/html/_modules/lightnion/tests/test_consensus_chutney.html new file mode 100644 index 0000000..f3c00f5 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/tests/test_consensus_chutney.html @@ -0,0 +1,213 @@ + + + + + + + + + + + lightnion.tests.test_consensus_chutney — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • lightnion.tests.test_consensus_chutney
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for lightnion.tests.test_consensus_chutney

+import lightnion as lnn
+
+
+
[docs]def test_download_unflavored(): + addr, port = '127.0.0.1', 5000 + + link = lnn.link.initiate(address=addr, port=port) + endpoint = lnn.create.fast(link) + + # Downloading unflavored consensus + endpoint, unflavored = lnn.consensus.download(endpoint, + flavor='unflavored') + + assert True
+ + +
[docs]def test_download_microdesc(): + addr, port = '127.0.0.1', 5000 + + link = lnn.link.initiate(address=addr, port=port) + endpoint = lnn.create.fast(link) + + # Downloading microdesc consensus + endpoint, microdesc = lnn.consensus.download(endpoint, flavor='microdesc') + + assert True
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/tests/test_create_chutney.html b/docs/source/_build/html/_modules/lightnion/tests/test_create_chutney.html new file mode 100644 index 0000000..df14e24 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/tests/test_create_chutney.html @@ -0,0 +1,223 @@ + + + + + + + + + + + lightnion.tests.test_create_chutney — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • lightnion.tests.test_create_chutney
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for lightnion.tests.test_create_chutney

+import lightnion as lnn
+
+
+
[docs]def test_fast(): + addr, port = '127.0.0.1', 5000 + + link = lnn.link.initiate(address=addr, port=port) + + # Simple creation of one-hop circuits with CREATE_FAST cells: + # - no public keys involved (only exchanging randomness through TLS). + # - used in Tor to connects to the guard (the first hop) to reduce load. + # Creating 10 one-hop circuits with CREATE_FAST cells + for i in range(10): + state = lnn.create.fast(link) + + assert True
+ + +
[docs]def test_ntor(): + addr, port = '127.0.0.1', 5000 + + link = lnn.link.initiate(address=addr, port=port) + endpoint = lnn.create.fast(link) + + # Retrieve cryptographic material through fast circuit + endpoint, authority = lnn.descriptors.download_authority(endpoint) + + # Perform "ntor" handshake with authority['router']['nickname'] + endpoint = lnn.create.ntor(link, authority) + + # Attempt to use the "ntor" circuit + endpoint, descriptor = lnn.descriptors.download_authority(endpoint) + + assert descriptor['digest'] == authority['digest'], \ + 'Descriptor digest: {}\n'.format(descriptor['digest']) + \ + 'Authority digest; {}\n'.format(authority['digest'])
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/tests/test_descriptors_chutney.html b/docs/source/_build/html/_modules/lightnion/tests/test_descriptors_chutney.html new file mode 100644 index 0000000..997d7eb --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/tests/test_descriptors_chutney.html @@ -0,0 +1,226 @@ + + + + + + + + + + + lightnion.tests.test_descriptors_chutney — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • lightnion.tests.test_descriptors_chutney
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for lightnion.tests.test_descriptors_chutney

+import lightnion as lnn
+
+
+
[docs]def test_download_microdesc(): + addr, port = '127.0.0.1', 5000 + + link = lnn.link.initiate(address=addr, port=port) + endpoint = lnn.create.fast(link) + + # Downloading descriptors + endpoint, descriptors = lnn.descriptors.download(endpoint, + flavor='microdesc') + + assert True
+ + +
[docs]def test_download_unflavored(): + addr, port = '127.0.0.1', 5000 + + link = lnn.link.initiate(address=addr, port=port) + endpoint = lnn.create.fast(link) + + # Downloading descriptors + endpoint, undescriptors = lnn.descriptors.download(endpoint, + flavor='unflavored') + + assert True
+ + +
[docs]def test_download_authority(): + addr, port = '127.0.0.1', 5000 + + link = lnn.link.initiate(address=addr, port=port) + endpoint = lnn.create.fast(link) + + # Asking politely for our OR's descriptor + endpoint, authority = lnn.descriptors.download_authority(endpoint) + + assert True
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/tests/test_extend_chutney.html b/docs/source/_build/html/_modules/lightnion/tests/test_extend_chutney.html new file mode 100644 index 0000000..0a4b8d7 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/tests/test_extend_chutney.html @@ -0,0 +1,255 @@ + + + + + + + + + + + lightnion.tests.test_extend_chutney — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • lightnion.tests.test_extend_chutney
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for lightnion.tests.test_extend_chutney

+import lightnion as lnn
+
+
+
[docs]def test_circuit(): + import random + + addr, port = '127.0.0.1', 5000 + + link = lnn.link.initiate(address=addr, port=port) + endpoint = lnn.create.fast(link) + + # Download our first hop's descriptor + endpoint, authority = lnn.descriptors.download_authority(endpoint) + + # Download a consensus + endpoint, cons = lnn.consensus.download(endpoint, flavor='unflavored') + + # Randomly pick few nodes (!! NOT a sane behavior, only to showcase API !!) + further_hops = [] + circuit_length = random.randint(2, 7) # (random circuit length to showcase) + + random.shuffle(cons['routers']) + for router in cons['routers']: + if len(further_hops) == circuit_length: + break + + # Skip our first node & already picked ones (no loop) + if router['digest'] == authority['digest']: + continue + if router['digest'] in [h['digest'] for h in further_hops]: + continue + + # Skip nodes that are not 'Fast' and 'Stable' + if 'Fast' not in router['flags'] or 'Stable' not in router['flags']: + continue + + # Skip nodes with old Tor versions + if not router['version'].startswith('Tor 0.3.'): + continue + + # Retrieve its descriptor + endpoint, nhop = lnn.descriptors.download( + endpoint, cons=router, flavor='unflavored') + nhop = nhop[0] # (expect only one entry with a matching digest) + + # Skip the entry if digests do not match (note: double-check here) + if router['digest'] != nhop['digest']: + continue + + # Skip if no ed25519 identity key available + if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': + continue + + # Keep the descriptor for later (to build the circuit) + further_hops.append(nhop) + + # Create a brand new circuit (to have spare RELAY_EARLY to extend it) + endpoint = lnn.create.fast(link) + + for nhop in further_hops: + # Extending to nhop['router']['nickname']: + # - remaining RELAY_EARLY: endpoint.early_count + endpoint = lnn.extend.circuit(endpoint, nhop) + + endpoint, authority = lnn.descriptors.download_authority(endpoint) + endpoint, ncons = lnn.consensus.download(endpoint, cache=False) + + assert True
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/tests/test_hop_chutney.html b/docs/source/_build/html/_modules/lightnion/tests/test_hop_chutney.html new file mode 100644 index 0000000..0280254 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/tests/test_hop_chutney.html @@ -0,0 +1,206 @@ + + + + + + + + + + + lightnion.tests.test_hop_chutney — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • lightnion.tests.test_hop_chutney
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for lightnion.tests.test_hop_chutney

+import lightnion as lnn
+
+
+
[docs]def test_directory_query(): + addr, port = '127.0.0.1', 5000 + + link = lnn.link.initiate(address=addr, port=port) + endpoint = lnn.create.fast(link) + endpoint = lnn.hop.send(endpoint, lnn.cell.relay.cmd.RELAY_DROP) + + # Download the full consensus without compression + endpoint, full_answer = lnn.hop.directory_query(endpoint, + '/tor/status-vote/current/consensus', compression='identity') + + # Download the microdesc consensus with compression + endpoint, full_answer = lnn.hop.directory_query(endpoint, + '/tor/status-vote/current/consensus-microdesc') + + assert True
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/tests/test_link_chutney.html b/docs/source/_build/html/_modules/lightnion/tests/test_link_chutney.html new file mode 100644 index 0000000..c2bd048 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/tests/test_link_chutney.html @@ -0,0 +1,197 @@ + + + + + + + + + + + lightnion.tests.test_link_chutney — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • lightnion.tests.test_link_chutney
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for lightnion.tests.test_link_chutney

+import lightnion as lnn
+
+
+
[docs]def test_initiate(): + addr, port = '127.0.0.1', 5000 + + link = lnn.link.initiate(addr, port) + link.close() + + assert True
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/tests/test_path_selection_chutney.html b/docs/source/_build/html/_modules/lightnion/tests/test_path_selection_chutney.html new file mode 100644 index 0000000..1dae235 --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/tests/test_path_selection_chutney.html @@ -0,0 +1,203 @@ + + + + + + + + + + + lightnion.tests.test_path_selection_chutney — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • lightnion.tests.test_path_selection_chutney
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for lightnion.tests.test_path_selection_chutney

+import lightnion as lnn
+
+
+
[docs]def test_select_path(): + addr, port = '127.0.0.1', 5000 + + # Download the consensus + lnn.cache.purge() + link = lnn.link.initiate(address=addr, port=port) + state = lnn.create.fast(link) + state, cons = lnn.consensus.download(state, flavor='unflavored') + + state, guard, middle, exit_node = lnn.path_selection.select_path( + cons['routers'], state, testing=True) + + assert True
+
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_modules/lightnion/utils.html b/docs/source/_build/html/_modules/lightnion/utils.html new file mode 100644 index 0000000..b3148cd --- /dev/null +++ b/docs/source/_build/html/_modules/lightnion/utils.html @@ -0,0 +1,416 @@ + + + + + + + + + + + lightnion.utils — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for lightnion.utils

+import lightnion as lnn
+import socket
+import time
+import os
+
+
[docs]class InvalidCellHeaderException(Exception): + def __init__(self, header): + super().__init__('Invalid cell header: {}'.format(header))
+ +
[docs]class InvalidCellLengthException(Exception): + pass
+ + +cell_cmd_to_string = { + 0: "PADDING", + 1: "CREATE", + 2: "CREATED", + 3: "RELAY", + 4: "DESTROY", + 5: "CREATE_FAST", + 6: "CREATED_FAST", + 7: "VERSIONS", + 8: "NETINFO", + 9: "RELAY_EARLY", + 10: "CREATE2", + 11: "CREATED2", + 12: "PADDING_NEGOTIATE", + 128: "VPADDING", + 129: "CERTS", + 130: "AUTH_CHALLENGE", + 131: "AUTHENTICATE", + 132: "AUTHORIZE" +} + +
[docs]def cell_to_str(cell): + return cell[:20].hex()
+ +
[docs]def cell_get_cid(cell): + return int.from_bytes(cell[0:4], 'big')
+ + +
[docs]def cell_set_cid(cell, cid): + return cid.to_bytes(4, 'big') + cell[4:]
+ + +
[docs]def cell_get_cmd(cell): + return cell[4]
+ + +
[docs]def cell_version_get_cmd(cell): + return cell[2]
+ + +
[docs]def cell_get_len(cell): + return int.from_bytes(cell[5:7], 'big')
+ + +
[docs]def cell_version_get_len(cell): + return int.from_bytes(cell[3:5], 'big')
+ + +
[docs]def cell_pad_rnd(cell): + if cell_is_variable_length(cmd): + cell_len = 7 + cell_get_len(payload) + else: + cell_len = 514 + + if cell_len > len(cell): + return cell + os.urandom(cell_len - len(cell)) + else: + return cell
+ + +
[docs]def cell_pad_null(cell): + if cell_is_variable_length(cmd): + cell_len = 7 + cell_get_len(payload) + else: + cell_len = 514 + + if cell_len > len(cell): + return cell + bytearray(cell_len - len(cell)) + else: + return cell
+ + +
[docs]def cell_is_valid(cell): + cmd = cell_get_cmd(cell) + if cmd in cell_cmd_to_string.keys(): + return False + + cell_len = cell_get_len(cell) + if cell_len != len(cell): + return False + + # TODO: add some checks. + + return True
+ + +
[docs]def cell_is_variable_length(cmd): + return cmd >= 128 or cmd == 7
+ + +
[docs]def cmd_to_str(cmd): + if cmd in cell_cmd_to_string.keys(): + return cell_cmd_to_string[cmd] + + return 'UNKNOWN ({})'.format(cmd)
+ + +
[docs]def cell_version_build(versions): + cell = b'\x00\x00\x07' + (len(versions)*2).to_bytes(2, 'big') + + for version in versions: + cell += version.to_bytes(2, 'big') + + return cell
+ + +
[docs]def cell_version_is_valid(cell): + cmd = cell_version_get_cmd(cell) + if cmd != 7: + return False + + cell_len = cell_version_get_len(cell) + if cell_len != len(cell): + return False + + # TODO: add some checks. + + return True
+ + +
[docs]def cell_version_get_versions(cell): + return [int.from_bytes(cell[i:i+2], 'big') for i in range(5, len(cell), 2)]
+ + +
[docs]def cell_netinfo_build(host): + tstmp = int(time.time()).to_bytes(4, 'big') + if host == 'localhost': + addr = b'\x7f\x00\x00\x01' + else: + addr = socket.inet_aton(host) + + addr_len = len(addr) + + if addr_len == 4: + addr_t = b'\x04' + else: + addr_t = b'\x06' + + cell = b'\x00\x00\x00\x00\x08' + tstmp + addr_t + addr_len.to_bytes(1, 'big') + addr + + # padding + cell += bytearray(514 - len(cell)) + + return cell
+ + +
[docs]def cell_slice(payload): + """Retrieve the next cell from the payload and truncate that one. + :param payload: bytearray + """ + payload_len = len(payload) + if payload_len < 7: # (payload too small, need data) + return None, payload + + cmd = cell_get_cmd(payload) + + if cell_is_variable_length(cmd): + cell_len = 7 + cell_get_len(payload) + else: + cell_len = 514 + + if payload_len < cell_len: + return None, payload + + cell = payload[:cell_len] + + return cell, payload[cell_len:]
+ + +#def cell_version_slice(payload): +# payload_len = len(payload) +# if payload_len < 5: # (payload too small, need data) +# return None, payload +# +# cell_len = 5 + cell_version_get_len(payload) +# +# if payload_len < cell_len: +# return None, payload +# +# cell = payload[:cell_len] +# +# return cell, payload[cell_len:] + + +
[docs]def cell_slice_old(payload): + """Retrieve the next cell from the payload and truncate that one. + :param payload: bytearray + """ + cell_header = lnn.cell.header(payload) + if len(payload) < cell_header.width: # (payload too small, need data) + return None, payload + + if not cell_header.valid: + raise InvalidCellHeaderException(cell_header.raw) + + length = cell_header.width + lnn.constants.payload_len + if not cell_header.cmd.is_fixed: + cell_header = lnn.cell.header_variable(payload) + if len(payload) < cell_header.width: # (payload too small, need data) + return None, payload + + if not cell_header.valid: + raise InvalidCellHeaderException(cell_header.raw) + + length = cell_header.width + cell_header.length + + if length > lnn.constants.max_payload_len: + raise InvalidCellLengthException() + + if len(payload) < length: + return None, payload + + cell = payload[:length] + + return cell, payload[length:]
+ +
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/_sources/index.rst.txt b/docs/source/_build/html/_sources/index.rst.txt new file mode 100644 index 0000000..cf5dbc0 --- /dev/null +++ b/docs/source/_build/html/_sources/index.rst.txt @@ -0,0 +1,29 @@ +===================================== +Welcome to Lightnion's documentation! +===================================== + +Introduction +============ + +.. toctree:: + install + +Lightnion is a JavaScript library that you can include on your webpage to let +any modern browser make anonymous requests. Lightnion uses an *untrusted* +proxy to interact with the Tor network. This proxy converts between protocols +(Websockets to pure TCP). This repository also contains a Python Lightnion Tor +client that we have been using for testing. + +**WARNING:** At the moment Lightnion is alpha-level research software. Do *not* +use it in production, or for anything that really requires anonymity. You are, +however, more than welcome to experiment with Lightnion. Please provide +feedback opening issues or writing to the authors. + + +================== +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` \ No newline at end of file diff --git a/docs/source/_build/html/_sources/install.rst.txt b/docs/source/_build/html/_sources/install.rst.txt new file mode 100644 index 0000000..e50cd8d --- /dev/null +++ b/docs/source/_build/html/_sources/install.rst.txt @@ -0,0 +1,2 @@ +Installation +============ \ No newline at end of file diff --git a/docs/source/_build/html/_sources/lightnion.cell.relay.rst.txt b/docs/source/_build/html/_sources/lightnion.cell.relay.rst.txt new file mode 100644 index 0000000..a42094d --- /dev/null +++ b/docs/source/_build/html/_sources/lightnion.cell.relay.rst.txt @@ -0,0 +1,30 @@ +lightnion.cell.relay package +============================ + +Submodules +---------- + +lightnion.cell.relay.extend2 module +----------------------------------- + +.. automodule:: lightnion.cell.relay.extend2 + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.relay.extended2 module +------------------------------------- + +.. automodule:: lightnion.cell.relay.extended2 + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lightnion.cell.relay + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/lightnion.cell.rst.txt b/docs/source/_build/html/_sources/lightnion.cell.rst.txt new file mode 100644 index 0000000..867233a --- /dev/null +++ b/docs/source/_build/html/_sources/lightnion.cell.rst.txt @@ -0,0 +1,133 @@ +lightnion.cell package +====================== + +Subpackages +----------- + +.. toctree:: + + lightnion.cell.relay + +Submodules +---------- + +lightnion.cell.address module +----------------------------- + +.. automodule:: lightnion.cell.address + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.certs module +--------------------------- + +.. automodule:: lightnion.cell.certs + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.challenge module +------------------------------- + +.. automodule:: lightnion.cell.challenge + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.common module +---------------------------- + +.. automodule:: lightnion.cell.common + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.create2 module +----------------------------- + +.. automodule:: lightnion.cell.create2 + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.create\_fast module +---------------------------------- + +.. automodule:: lightnion.cell.create_fast + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.created2 module +------------------------------ + +.. automodule:: lightnion.cell.created2 + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.created\_fast module +----------------------------------- + +.. automodule:: lightnion.cell.created_fast + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.destroy module +----------------------------- + +.. automodule:: lightnion.cell.destroy + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.netinfo module +----------------------------- + +.. automodule:: lightnion.cell.netinfo + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.padding module +----------------------------- + +.. automodule:: lightnion.cell.padding + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.relay\_early module +---------------------------------- + +.. automodule:: lightnion.cell.relay_early + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.versions module +------------------------------ + +.. automodule:: lightnion.cell.versions + :members: + :undoc-members: + :show-inheritance: + +lightnion.cell.view module +-------------------------- + +.. automodule:: lightnion.cell.view + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lightnion.cell + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/lightnion.crypto.rst.txt b/docs/source/_build/html/_sources/lightnion.crypto.rst.txt new file mode 100644 index 0000000..cbec368 --- /dev/null +++ b/docs/source/_build/html/_sources/lightnion.crypto.rst.txt @@ -0,0 +1,30 @@ +lightnion.crypto package +======================== + +Submodules +---------- + +lightnion.crypto.kdf module +--------------------------- + +.. automodule:: lightnion.crypto.kdf + :members: + :undoc-members: + :show-inheritance: + +lightnion.crypto.ntor module +---------------------------- + +.. automodule:: lightnion.crypto.ntor + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lightnion.crypto + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/lightnion.http.rst.txt b/docs/source/_build/html/_sources/lightnion.http.rst.txt new file mode 100644 index 0000000..fec8299 --- /dev/null +++ b/docs/source/_build/html/_sources/lightnion.http.rst.txt @@ -0,0 +1,38 @@ +lightnion.http package +====================== + +Submodules +---------- + +lightnion.http.ntor module +-------------------------- + +.. automodule:: lightnion.http.ntor + :members: + :undoc-members: + :show-inheritance: + +lightnion.http.polling module +----------------------------- + +.. automodule:: lightnion.http.polling + :members: + :undoc-members: + :show-inheritance: + +lightnion.http.websocket module +------------------------------- + +.. automodule:: lightnion.http.websocket + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lightnion.http + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/lightnion.proxy.rst.txt b/docs/source/_build/html/_sources/lightnion.proxy.rst.txt new file mode 100644 index 0000000..1e24624 --- /dev/null +++ b/docs/source/_build/html/_sources/lightnion.proxy.rst.txt @@ -0,0 +1,70 @@ +lightnion.proxy package +======================= + +Submodules +---------- + +lightnion.proxy.auth module +--------------------------- + +.. automodule:: lightnion.proxy.auth + :members: + :undoc-members: + :show-inheritance: + +lightnion.proxy.forward module +------------------------------ + +.. automodule:: lightnion.proxy.forward + :members: + :undoc-members: + :show-inheritance: + +lightnion.proxy.jobs module +--------------------------- + +.. automodule:: lightnion.proxy.jobs + :members: + :undoc-members: + :show-inheritance: + +lightnion.proxy.link module +--------------------------- + +.. automodule:: lightnion.proxy.link + :members: + :undoc-members: + :show-inheritance: + +lightnion.proxy.parts module +---------------------------- + +.. automodule:: lightnion.proxy.parts + :members: + :undoc-members: + :show-inheritance: + +lightnion.proxy.path module +--------------------------- + +.. automodule:: lightnion.proxy.path + :members: + :undoc-members: + :show-inheritance: + +lightnion.proxy.relayinfo module +-------------------------------- + +.. automodule:: lightnion.proxy.relayinfo + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lightnion.proxy + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/lightnion.rst.txt b/docs/source/_build/html/_sources/lightnion.rst.txt new file mode 100644 index 0000000..c159b71 --- /dev/null +++ b/docs/source/_build/html/_sources/lightnion.rst.txt @@ -0,0 +1,129 @@ +lightnion package +================= + +Subpackages +----------- + +.. toctree:: + + lightnion.cell + lightnion.crypto + lightnion.http + lightnion.proxy + lightnion.tests + +Submodules +---------- + +lightnion.cache module +---------------------- + +.. automodule:: lightnion.cache + :members: + :undoc-members: + :show-inheritance: + +lightnion.consensus module +-------------------------- + +.. automodule:: lightnion.consensus + :members: + :undoc-members: + :show-inheritance: + +lightnion.constants module +-------------------------- + +.. automodule:: lightnion.constants + :members: + :undoc-members: + :show-inheritance: + +lightnion.create module +----------------------- + +.. automodule:: lightnion.create + :members: + :undoc-members: + :show-inheritance: + +lightnion.descriptors module +---------------------------- + +.. automodule:: lightnion.descriptors + :members: + :undoc-members: + :show-inheritance: + +lightnion.extend module +----------------------- + +.. automodule:: lightnion.extend + :members: + :undoc-members: + :show-inheritance: + +lightnion.hop module +-------------------- + +.. automodule:: lightnion.hop + :members: + :undoc-members: + :show-inheritance: + +lightnion.link module +--------------------- + +.. automodule:: lightnion.link + :members: + :undoc-members: + :show-inheritance: + +lightnion.onion module +---------------------- + +.. automodule:: lightnion.onion + :members: + :undoc-members: + :show-inheritance: + +lightnion.path\_selection module +-------------------------------- + +.. automodule:: lightnion.path_selection + :members: + :undoc-members: + :show-inheritance: + +lightnion.signature module +-------------------------- + +.. automodule:: lightnion.signature + :members: + :undoc-members: + :show-inheritance: + +lightnion.socket module +----------------------- + +.. automodule:: lightnion.socket + :members: + :undoc-members: + :show-inheritance: + +lightnion.utils module +---------------------- + +.. automodule:: lightnion.utils + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lightnion + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/lightnion.tests.rst.txt b/docs/source/_build/html/_sources/lightnion.tests.rst.txt new file mode 100644 index 0000000..f9fcfd9 --- /dev/null +++ b/docs/source/_build/html/_sources/lightnion.tests.rst.txt @@ -0,0 +1,78 @@ +lightnion.tests package +======================= + +Submodules +---------- + +lightnion.tests.path\_selection\_test module +-------------------------------------------- + +.. automodule:: lightnion.tests.path_selection_test + :members: + :undoc-members: + :show-inheritance: + +lightnion.tests.test\_consensus\_chutney module +----------------------------------------------- + +.. automodule:: lightnion.tests.test_consensus_chutney + :members: + :undoc-members: + :show-inheritance: + +lightnion.tests.test\_create\_chutney module +-------------------------------------------- + +.. automodule:: lightnion.tests.test_create_chutney + :members: + :undoc-members: + :show-inheritance: + +lightnion.tests.test\_descriptors\_chutney module +------------------------------------------------- + +.. automodule:: lightnion.tests.test_descriptors_chutney + :members: + :undoc-members: + :show-inheritance: + +lightnion.tests.test\_extend\_chutney module +-------------------------------------------- + +.. automodule:: lightnion.tests.test_extend_chutney + :members: + :undoc-members: + :show-inheritance: + +lightnion.tests.test\_hop\_chutney module +----------------------------------------- + +.. automodule:: lightnion.tests.test_hop_chutney + :members: + :undoc-members: + :show-inheritance: + +lightnion.tests.test\_link\_chutney module +------------------------------------------ + +.. automodule:: lightnion.tests.test_link_chutney + :members: + :undoc-members: + :show-inheritance: + +lightnion.tests.test\_path\_selection\_chutney module +----------------------------------------------------- + +.. automodule:: lightnion.tests.test_path_selection_chutney + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lightnion.tests + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/modules.rst.txt b/docs/source/_build/html/_sources/modules.rst.txt new file mode 100644 index 0000000..95d6d08 --- /dev/null +++ b/docs/source/_build/html/_sources/modules.rst.txt @@ -0,0 +1,7 @@ +lightnion +========= + +.. toctree:: + :maxdepth: 4 + + lightnion diff --git a/docs/source/_build/html/_static/ajax-loader.gif b/docs/source/_build/html/_static/ajax-loader.gif new file mode 100644 index 0000000..61faf8c Binary files /dev/null and b/docs/source/_build/html/_static/ajax-loader.gif differ diff --git a/docs/source/_build/html/_static/basic.css b/docs/source/_build/html/_static/basic.css new file mode 100644 index 0000000..0807176 --- /dev/null +++ b/docs/source/_build/html/_static/basic.css @@ -0,0 +1,676 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 450px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist td { + vertical-align: top; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/source/_build/html/_static/comment-bright.png b/docs/source/_build/html/_static/comment-bright.png new file mode 100644 index 0000000..15e27ed Binary files /dev/null and b/docs/source/_build/html/_static/comment-bright.png differ diff --git a/docs/source/_build/html/_static/comment-close.png b/docs/source/_build/html/_static/comment-close.png new file mode 100644 index 0000000..4d91bcf Binary files /dev/null and b/docs/source/_build/html/_static/comment-close.png differ diff --git a/docs/source/_build/html/_static/comment.png b/docs/source/_build/html/_static/comment.png new file mode 100644 index 0000000..dfbc0cb Binary files /dev/null and b/docs/source/_build/html/_static/comment.png differ diff --git a/docs/source/_build/html/_static/css/badge_only.css b/docs/source/_build/html/_static/css/badge_only.css new file mode 100644 index 0000000..3c33cef --- /dev/null +++ b/docs/source/_build/html/_static/css/badge_only.css @@ -0,0 +1 @@ +.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} diff --git a/docs/source/_build/html/_static/css/theme.css b/docs/source/_build/html/_static/css/theme.css new file mode 100644 index 0000000..8daf2c9 --- /dev/null +++ b/docs/source/_build/html/_static/css/theme.css @@ -0,0 +1,4 @@ +*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}[hidden]{display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:hover,a:active{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;color:#000;text-decoration:none}mark{background:#ff0;color:#000;font-style:italic;font-weight:bold}pre,code,.rst-content tt,.rst-content code,kbd,samp{font-family:monospace,serif;_font-family:"courier new",monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:before,q:after{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}ul,ol,dl{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:0;margin:0;padding:0}label{cursor:pointer}legend{border:0;*margin-left:-7px;padding:0;white-space:normal}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*width:13px;*height:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top;resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none !important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{html,body,section{background:none !important}*{box-shadow:none !important;text-shadow:none !important;filter:none !important;-ms-filter:none !important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,.rst-content .toctree-wrapper p.caption,h3{orphans:3;widows:3}h2,.rst-content .toctree-wrapper p.caption,h3{page-break-after:avoid}}.fa:before,.wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content .code-block-caption .headerlink:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo,.rst-content .admonition,.btn,input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"],select,textarea,.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a,.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a,.wy-nav-top a{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa,.wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content .code-block-caption .headerlink,.rst-content tt.download span:first-child,.rst-content code.download span:first-child,.icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.wy-menu-vertical li span.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-left.toctree-expand,.wy-menu-vertical li.current>a span.fa-pull-left.toctree-expand,.rst-content .fa-pull-left.admonition-title,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content dl dt .fa-pull-left.headerlink,.rst-content p.caption .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.rst-content code.download span.fa-pull-left:first-child,.fa-pull-left.icon{margin-right:.3em}.fa.fa-pull-right,.wy-menu-vertical li span.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-right.toctree-expand,.wy-menu-vertical li.current>a span.fa-pull-right.toctree-expand,.rst-content .fa-pull-right.admonition-title,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content dl dt .fa-pull-right.headerlink,.rst-content p.caption .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.rst-content code.download span.fa-pull-right:first-child,.fa-pull-right.icon{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.wy-menu-vertical li span.pull-left.toctree-expand,.wy-menu-vertical li.on a span.pull-left.toctree-expand,.wy-menu-vertical li.current>a span.pull-left.toctree-expand,.rst-content .pull-left.admonition-title,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content dl dt .pull-left.headerlink,.rst-content p.caption .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content .code-block-caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.rst-content code.download span.pull-left:first-child,.pull-left.icon{margin-right:.3em}.fa.pull-right,.wy-menu-vertical li span.pull-right.toctree-expand,.wy-menu-vertical li.on a span.pull-right.toctree-expand,.wy-menu-vertical li.current>a span.pull-right.toctree-expand,.rst-content .pull-right.admonition-title,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content dl dt .pull-right.headerlink,.rst-content p.caption .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content .code-block-caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.rst-content code.download span.pull-right:first-child,.pull-right.icon{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.rst-content .admonition-title:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.wy-dropdown .caret:before,.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li span.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content .code-block-caption .headerlink,.rst-content tt.download span:first-child,.rst-content code.download span:first-child,.icon,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context{font-family:inherit}.fa:before,.wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content .code-block-caption .headerlink:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before{font-family:"FontAwesome";display:inline-block;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa,a .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,a .rst-content .admonition-title,.rst-content a .admonition-title,a .rst-content h1 .headerlink,.rst-content h1 a .headerlink,a .rst-content h2 .headerlink,.rst-content h2 a .headerlink,a .rst-content h3 .headerlink,.rst-content h3 a .headerlink,a .rst-content h4 .headerlink,.rst-content h4 a .headerlink,a .rst-content h5 .headerlink,.rst-content h5 a .headerlink,a .rst-content h6 .headerlink,.rst-content h6 a .headerlink,a .rst-content dl dt .headerlink,.rst-content dl dt a .headerlink,a .rst-content p.caption .headerlink,.rst-content p.caption a .headerlink,a .rst-content table>caption .headerlink,.rst-content table>caption a .headerlink,a .rst-content .code-block-caption .headerlink,.rst-content .code-block-caption a .headerlink,a .rst-content tt.download span:first-child,.rst-content tt.download a span:first-child,a .rst-content code.download span:first-child,.rst-content code.download a span:first-child,a .icon{display:inline-block;text-decoration:inherit}.btn .fa,.btn .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .btn span.toctree-expand,.btn .wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.on a .btn span.toctree-expand,.btn .wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.current>a .btn span.toctree-expand,.btn .rst-content .admonition-title,.rst-content .btn .admonition-title,.btn .rst-content h1 .headerlink,.rst-content h1 .btn .headerlink,.btn .rst-content h2 .headerlink,.rst-content h2 .btn .headerlink,.btn .rst-content h3 .headerlink,.rst-content h3 .btn .headerlink,.btn .rst-content h4 .headerlink,.rst-content h4 .btn .headerlink,.btn .rst-content h5 .headerlink,.rst-content h5 .btn .headerlink,.btn .rst-content h6 .headerlink,.rst-content h6 .btn .headerlink,.btn .rst-content dl dt .headerlink,.rst-content dl dt .btn .headerlink,.btn .rst-content p.caption .headerlink,.rst-content p.caption .btn .headerlink,.btn .rst-content table>caption .headerlink,.rst-content table>caption .btn .headerlink,.btn .rst-content .code-block-caption .headerlink,.rst-content .code-block-caption .btn .headerlink,.btn .rst-content tt.download span:first-child,.rst-content tt.download .btn span:first-child,.btn .rst-content code.download span:first-child,.rst-content code.download .btn span:first-child,.btn .icon,.nav .fa,.nav .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .nav span.toctree-expand,.nav .wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.on a .nav span.toctree-expand,.nav .wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.current>a .nav span.toctree-expand,.nav .rst-content .admonition-title,.rst-content .nav .admonition-title,.nav .rst-content h1 .headerlink,.rst-content h1 .nav .headerlink,.nav .rst-content h2 .headerlink,.rst-content h2 .nav .headerlink,.nav .rst-content h3 .headerlink,.rst-content h3 .nav .headerlink,.nav .rst-content h4 .headerlink,.rst-content h4 .nav .headerlink,.nav .rst-content h5 .headerlink,.rst-content h5 .nav .headerlink,.nav .rst-content h6 .headerlink,.rst-content h6 .nav .headerlink,.nav .rst-content dl dt .headerlink,.rst-content dl dt .nav .headerlink,.nav .rst-content p.caption .headerlink,.rst-content p.caption .nav .headerlink,.nav .rst-content table>caption .headerlink,.rst-content table>caption .nav .headerlink,.nav .rst-content .code-block-caption .headerlink,.rst-content .code-block-caption .nav .headerlink,.nav .rst-content tt.download span:first-child,.rst-content tt.download .nav span:first-child,.nav .rst-content code.download span:first-child,.rst-content code.download .nav span:first-child,.nav .icon{display:inline}.btn .fa.fa-large,.btn .wy-menu-vertical li span.fa-large.toctree-expand,.wy-menu-vertical li .btn span.fa-large.toctree-expand,.btn .rst-content .fa-large.admonition-title,.rst-content .btn .fa-large.admonition-title,.btn .rst-content h1 .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.btn .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .btn .fa-large.headerlink,.btn .rst-content p.caption .fa-large.headerlink,.rst-content p.caption .btn .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.btn .rst-content .code-block-caption .fa-large.headerlink,.rst-content .code-block-caption .btn .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.rst-content tt.download .btn span.fa-large:first-child,.btn .rst-content code.download span.fa-large:first-child,.rst-content code.download .btn span.fa-large:first-child,.btn .fa-large.icon,.nav .fa.fa-large,.nav .wy-menu-vertical li span.fa-large.toctree-expand,.wy-menu-vertical li .nav span.fa-large.toctree-expand,.nav .rst-content .fa-large.admonition-title,.rst-content .nav .fa-large.admonition-title,.nav .rst-content h1 .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.nav .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.nav .rst-content p.caption .fa-large.headerlink,.rst-content p.caption .nav .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.nav .rst-content .code-block-caption .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.nav .rst-content code.download span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.nav .fa-large.icon{line-height:.9em}.btn .fa.fa-spin,.btn .wy-menu-vertical li span.fa-spin.toctree-expand,.wy-menu-vertical li .btn span.fa-spin.toctree-expand,.btn .rst-content .fa-spin.admonition-title,.rst-content .btn .fa-spin.admonition-title,.btn .rst-content h1 .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.btn .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .btn .fa-spin.headerlink,.btn .rst-content p.caption .fa-spin.headerlink,.rst-content p.caption .btn .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.btn .rst-content .code-block-caption .fa-spin.headerlink,.rst-content .code-block-caption .btn .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.rst-content tt.download .btn span.fa-spin:first-child,.btn .rst-content code.download span.fa-spin:first-child,.rst-content code.download .btn span.fa-spin:first-child,.btn .fa-spin.icon,.nav .fa.fa-spin,.nav .wy-menu-vertical li span.fa-spin.toctree-expand,.wy-menu-vertical li .nav span.fa-spin.toctree-expand,.nav .rst-content .fa-spin.admonition-title,.rst-content .nav .fa-spin.admonition-title,.nav .rst-content h1 .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.nav .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.nav .rst-content p.caption .fa-spin.headerlink,.rst-content p.caption .nav .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.nav .rst-content .code-block-caption .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.nav .rst-content code.download span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.nav .fa-spin.icon{display:inline-block}.btn.fa:before,.wy-menu-vertical li span.btn.toctree-expand:before,.rst-content .btn.admonition-title:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content dl dt .btn.headerlink:before,.rst-content p.caption .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.rst-content code.download span.btn:first-child:before,.btn.icon:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.wy-menu-vertical li span.btn.toctree-expand:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content p.caption .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.rst-content code.download span.btn:first-child:hover:before,.btn.icon:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li .btn-mini span.toctree-expand:before,.btn-mini .rst-content .admonition-title:before,.rst-content .btn-mini .admonition-title:before,.btn-mini .rst-content h1 .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.btn-mini .rst-content dl dt .headerlink:before,.rst-content dl dt .btn-mini .headerlink:before,.btn-mini .rst-content p.caption .headerlink:before,.rst-content p.caption .btn-mini .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.rst-content tt.download .btn-mini span:first-child:before,.btn-mini .rst-content code.download span:first-child:before,.rst-content code.download .btn-mini span:first-child:before,.btn-mini .icon:before{font-size:14px;vertical-align:-15%}.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo,.rst-content .admonition{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.wy-alert-title,.rst-content .admonition-title{color:#fff;font-weight:bold;display:block;color:#fff;background:#6ab0de;margin:-12px;padding:6px 12px;margin-bottom:12px}.wy-alert.wy-alert-danger,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.admonition{background:#fdf3f2}.wy-alert.wy-alert-danger .wy-alert-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .danger .wy-alert-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .danger .admonition-title,.rst-content .error .admonition-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition .admonition-title{background:#f29f97}.wy-alert.wy-alert-warning,.rst-content .wy-alert-warning.note,.rst-content .attention,.rst-content .caution,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.tip,.rst-content .warning,.rst-content .wy-alert-warning.seealso,.rst-content .admonition-todo,.rst-content .wy-alert-warning.admonition{background:#ffedcc}.wy-alert.wy-alert-warning .wy-alert-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .attention .wy-alert-title,.rst-content .caution .wy-alert-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .attention .admonition-title,.rst-content .caution .admonition-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .warning .admonition-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .admonition-todo .admonition-title,.rst-content .wy-alert-warning.admonition .admonition-title{background:#f0b37e}.wy-alert.wy-alert-info,.rst-content .note,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.rst-content .seealso,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.admonition{background:#e7f2fa}.wy-alert.wy-alert-info .wy-alert-title,.rst-content .note .wy-alert-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.rst-content .note .admonition-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .seealso .admonition-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition .admonition-title{background:#6ab0de}.wy-alert.wy-alert-success,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.warning,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.admonition{background:#dbfaf4}.wy-alert.wy-alert-success .wy-alert-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .hint .wy-alert-title,.rst-content .important .wy-alert-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .hint .admonition-title,.rst-content .important .admonition-title,.rst-content .tip .admonition-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition .admonition-title{background:#1abc9c}.wy-alert.wy-alert-neutral,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.admonition{background:#f3f6f6}.wy-alert.wy-alert-neutral .wy-alert-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition .admonition-title{color:#404040;background:#e1e4e5}.wy-alert.wy-alert-neutral a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a{color:#2980B9}.wy-alert p:last-child,.rst-content .note p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.rst-content .seealso p:last-child,.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0px;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,0.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27AE60}.wy-tray-container li.wy-tray-item-info{background:#2980B9}.wy-tray-container li.wy-tray-item-warning{background:#E67E22}.wy-tray-container li.wy-tray-item-danger{background:#E74C3C}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width: 768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px 12px;color:#fff;border:1px solid rgba(0,0,0,0.1);background-color:#27AE60;text-decoration:none;font-weight:normal;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:0px 1px 2px -1px rgba(255,255,255,0.5) inset,0px -2px 0px 0px rgba(0,0,0,0.1) inset;outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:0px -1px 0px 0px rgba(0,0,0,0.05) inset,0px 2px 0px 0px rgba(0,0,0,0.1) inset;padding:8px 12px 6px 12px}.btn:visited{color:#fff}.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn-disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn-disabled:hover,.btn-disabled:focus,.btn-disabled:active{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980B9 !important}.btn-info:hover{background-color:#2e8ece !important}.btn-neutral{background-color:#f3f6f6 !important;color:#404040 !important}.btn-neutral:hover{background-color:#e5ebeb !important;color:#404040}.btn-neutral:visited{color:#404040 !important}.btn-success{background-color:#27AE60 !important}.btn-success:hover{background-color:#295 !important}.btn-danger{background-color:#E74C3C !important}.btn-danger:hover{background-color:#ea6153 !important}.btn-warning{background-color:#E67E22 !important}.btn-warning:hover{background-color:#e98b39 !important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f !important}.btn-link{background-color:transparent !important;color:#2980B9;box-shadow:none;border-color:transparent !important}.btn-link:hover{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:active{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:visited{color:#9B59B6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:before,.wy-btn-group:after{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:solid 1px #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,0.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980B9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:solid 1px #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type="search"]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980B9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned input,.wy-form-aligned textarea,.wy-form-aligned select,.wy-form-aligned .wy-help-inline,.wy-form-aligned label{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{border:0;margin:0;padding:0}legend{display:block;width:100%;border:0;padding:0;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label{display:block;margin:0 0 .3125em 0;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;*zoom:1;max-width:68em;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#E74C3C}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full input[type="text"],.wy-control-group .wy-form-full input[type="password"],.wy-control-group .wy-form-full input[type="email"],.wy-control-group .wy-form-full input[type="url"],.wy-control-group .wy-form-full input[type="date"],.wy-control-group .wy-form-full input[type="month"],.wy-control-group .wy-form-full input[type="time"],.wy-control-group .wy-form-full input[type="datetime"],.wy-control-group .wy-form-full input[type="datetime-local"],.wy-control-group .wy-form-full input[type="week"],.wy-control-group .wy-form-full input[type="number"],.wy-control-group .wy-form-full input[type="search"],.wy-control-group .wy-form-full input[type="tel"],.wy-control-group .wy-form-full input[type="color"],.wy-control-group .wy-form-halves input[type="text"],.wy-control-group .wy-form-halves input[type="password"],.wy-control-group .wy-form-halves input[type="email"],.wy-control-group .wy-form-halves input[type="url"],.wy-control-group .wy-form-halves input[type="date"],.wy-control-group .wy-form-halves input[type="month"],.wy-control-group .wy-form-halves input[type="time"],.wy-control-group .wy-form-halves input[type="datetime"],.wy-control-group .wy-form-halves input[type="datetime-local"],.wy-control-group .wy-form-halves input[type="week"],.wy-control-group .wy-form-halves input[type="number"],.wy-control-group .wy-form-halves input[type="search"],.wy-control-group .wy-form-halves input[type="tel"],.wy-control-group .wy-form-halves input[type="color"],.wy-control-group .wy-form-thirds input[type="text"],.wy-control-group .wy-form-thirds input[type="password"],.wy-control-group .wy-form-thirds input[type="email"],.wy-control-group .wy-form-thirds input[type="url"],.wy-control-group .wy-form-thirds input[type="date"],.wy-control-group .wy-form-thirds input[type="month"],.wy-control-group .wy-form-thirds input[type="time"],.wy-control-group .wy-form-thirds input[type="datetime"],.wy-control-group .wy-form-thirds input[type="datetime-local"],.wy-control-group .wy-form-thirds input[type="week"],.wy-control-group .wy-form-thirds input[type="number"],.wy-control-group .wy-form-thirds input[type="search"],.wy-control-group .wy-form-thirds input[type="tel"],.wy-control-group .wy-form-thirds input[type="color"]{width:100%}.wy-control-group .wy-form-full{float:left;display:block;margin-right:2.3576515979%;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.3576515979%;width:48.821174201%}.wy-control-group .wy-form-halves:last-child{margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n+1){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.3576515979%;width:31.7615656014%}.wy-control-group .wy-form-thirds:last-child{margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control{margin:6px 0 0 0;font-size:90%}.wy-control-no-input{display:inline-block;margin:6px 0 0 0;font-size:90%}.wy-control-group.fluid-input input[type="text"],.wy-control-group.fluid-input input[type="password"],.wy-control-group.fluid-input input[type="email"],.wy-control-group.fluid-input input[type="url"],.wy-control-group.fluid-input input[type="date"],.wy-control-group.fluid-input input[type="month"],.wy-control-group.fluid-input input[type="time"],.wy-control-group.fluid-input input[type="datetime"],.wy-control-group.fluid-input input[type="datetime-local"],.wy-control-group.fluid-input input[type="week"],.wy-control-group.fluid-input input[type="number"],.wy-control-group.fluid-input input[type="search"],.wy-control-group.fluid-input input[type="tel"],.wy-control-group.fluid-input input[type="color"]{width:100%}.wy-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;*overflow:visible}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type="datetime-local"]{padding:.34375em .625em}input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus{outline:0;outline:thin dotted \9;border-color:#333}input.no-focus:focus{border-color:#ccc !important}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:1px auto #129FEA}input[type="text"][disabled],input[type="password"][disabled],input[type="email"][disabled],input[type="url"][disabled],input[type="date"][disabled],input[type="month"][disabled],input[type="time"][disabled],input[type="datetime"][disabled],input[type="datetime-local"][disabled],input[type="week"][disabled],input[type="number"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="color"][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#E74C3C;border:1px solid #E74C3C}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#E74C3C}input[type="file"]:focus:invalid:focus,input[type="radio"]:focus:invalid:focus,input[type="checkbox"]:focus:invalid:focus{outline-color:#E74C3C}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type="radio"][disabled],input[type="checkbox"][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:solid 1px #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{position:absolute;content:"";display:block;left:0;top:0;width:36px;height:12px;border-radius:4px;background:#ccc;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{position:absolute;content:"";display:block;width:18px;height:18px;border-radius:4px;background:#999;left:-3px;top:-3px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27AE60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#E74C3C}.wy-control-group.wy-control-group-error input[type="text"],.wy-control-group.wy-control-group-error input[type="password"],.wy-control-group.wy-control-group-error input[type="email"],.wy-control-group.wy-control-group-error input[type="url"],.wy-control-group.wy-control-group-error input[type="date"],.wy-control-group.wy-control-group-error input[type="month"],.wy-control-group.wy-control-group-error input[type="time"],.wy-control-group.wy-control-group-error input[type="datetime"],.wy-control-group.wy-control-group-error input[type="datetime-local"],.wy-control-group.wy-control-group-error input[type="week"],.wy-control-group.wy-control-group-error input[type="number"],.wy-control-group.wy-control-group-error input[type="search"],.wy-control-group.wy-control-group-error input[type="tel"],.wy-control-group.wy-control-group-error input[type="color"]{border:solid 1px #E74C3C}.wy-control-group.wy-control-group-error textarea{border:solid 1px #E74C3C}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27AE60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#E74C3C}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#E67E22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980B9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width: 480px){.wy-form button[type="submit"]{margin:.7em 0 0}.wy-form input[type="text"],.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:.3em;display:block}.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0 0}.wy-form .wy-help-inline,.wy-form-message-inline,.wy-form-message{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width: 768px){.tablet-hide{display:none}}@media screen and (max-width: 480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.wy-table,.rst-content table.docutils,.rst-content table.field-list{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.wy-table caption,.rst-content table.docutils caption,.rst-content table.field-list caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td,.wy-table th,.rst-content table.docutils th,.rst-content table.field-list th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.wy-table td:first-child,.rst-content table.docutils td:first-child,.rst-content table.field-list td:first-child,.wy-table th:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list th:first-child{border-left-width:0}.wy-table thead,.rst-content table.docutils thead,.rst-content table.field-list thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.wy-table thead th,.rst-content table.docutils thead th,.rst-content table.field-list thead th{font-weight:bold;border-bottom:solid 2px #e1e4e5}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td{background-color:transparent;vertical-align:middle}.wy-table td p,.rst-content table.docutils td p,.rst-content table.field-list td p{line-height:18px}.wy-table td p:last-child,.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child{margin-bottom:0}.wy-table .wy-table-cell-min,.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min{width:1%;padding-right:0}.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:gray;font-size:90%}.wy-table-tertiary{color:gray;font-size:80%}.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td,.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td{background-color:#f3f6f6}.wy-table-backed{background-color:#f3f6f6}.wy-table-bordered-all,.rst-content table.docutils{border:1px solid #e1e4e5}.wy-table-bordered-all td,.rst-content table.docutils td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.wy-table-bordered-all tbody>tr:last-child td,.rst-content table.docutils tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0 !important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980B9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9B59B6}html{height:100%;overflow-x:hidden}body{font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;font-weight:normal;color:#404040;min-height:100%;overflow-x:hidden;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#E67E22 !important}a.wy-text-warning:hover{color:#eb9950 !important}.wy-text-info{color:#2980B9 !important}a.wy-text-info:hover{color:#409ad5 !important}.wy-text-success{color:#27AE60 !important}a.wy-text-success:hover{color:#36d278 !important}.wy-text-danger{color:#E74C3C !important}a.wy-text-danger:hover{color:#ed7669 !important}.wy-text-neutral{color:#404040 !important}a.wy-text-neutral:hover{color:#595959 !important}h1,h2,.rst-content .toctree-wrapper p.caption,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif}p{line-height:24px;margin:0;font-size:16px;margin-bottom:24px}h1{font-size:175%}h2,.rst-content .toctree-wrapper p.caption{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}code,.rst-content tt,.rst-content code{white-space:nowrap;max-width:100%;background:#fff;border:solid 1px #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;color:#E74C3C;overflow-x:auto}code.code-large,.rst-content tt.code-large{font-size:90%}.wy-plain-list-disc,.rst-content .section ul,.rst-content .toctree-wrapper ul,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.wy-plain-list-disc li,.rst-content .section ul li,.rst-content .toctree-wrapper ul li,article ul li{list-style:disc;margin-left:24px}.wy-plain-list-disc li p:last-child,.rst-content .section ul li p:last-child,.rst-content .toctree-wrapper ul li p:last-child,article ul li p:last-child{margin-bottom:0}.wy-plain-list-disc li ul,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li ul,article ul li ul{margin-bottom:0}.wy-plain-list-disc li li,.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,article ul li li{list-style:circle}.wy-plain-list-disc li li li,.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,article ul li li li{list-style:square}.wy-plain-list-disc li ol li,.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,article ul li ol li{list-style:decimal}.wy-plain-list-decimal,.rst-content .section ol,.rst-content ol.arabic,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.wy-plain-list-decimal li,.rst-content .section ol li,.rst-content ol.arabic li,article ol li{list-style:decimal;margin-left:24px}.wy-plain-list-decimal li p:last-child,.rst-content .section ol li p:last-child,.rst-content ol.arabic li p:last-child,article ol li p:last-child{margin-bottom:0}.wy-plain-list-decimal li ul,.rst-content .section ol li ul,.rst-content ol.arabic li ul,article ol li ul{margin-bottom:0}.wy-plain-list-decimal li ul li,.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:before,.wy-breadcrumbs:after{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.wy-breadcrumbs li code,.wy-breadcrumbs li .rst-content tt,.rst-content .wy-breadcrumbs li tt{padding:5px;border:none;background:none}.wy-breadcrumbs li code.literal,.wy-breadcrumbs li .rst-content tt.literal,.rst-content .wy-breadcrumbs li tt.literal{color:#404040}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width: 480px){.wy-breadcrumbs-extra{display:none}.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:before,.wy-menu-horiz:after{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz ul,.wy-menu-horiz li{display:inline-block}.wy-menu-horiz li:hover{background:rgba(255,255,255,0.1)}.wy-menu-horiz li.divide-left{border-left:solid 1px #404040}.wy-menu-horiz li.divide-right{border-right:solid 1px #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#3a7ca8;height:32px;display:inline-block;line-height:32px;padding:0 1.618em;margin:12px 0 0 0;display:block;font-weight:bold;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:solid 1px #404040}.wy-menu-vertical li.divide-bottom{border-bottom:solid 1px #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:gray;border-right:solid 1px #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.wy-menu-vertical li code,.wy-menu-vertical li .rst-content tt,.rst-content .wy-menu-vertical li tt{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li span.toctree-expand{display:block;float:left;margin-left:-1.2em;font-size:.8em;line-height:1.6em;color:#4d4d4d}.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a{color:#404040;padding:.4045em 1.618em;font-weight:bold;position:relative;background:#fcfcfc;border:none;padding-left:1.618em -4px}.wy-menu-vertical li.on a:hover,.wy-menu-vertical li.current>a:hover{background:#fcfcfc}.wy-menu-vertical li.on a:hover span.toctree-expand,.wy-menu-vertical li.current>a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand{display:block;font-size:.8em;line-height:1.6em;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:solid 1px #c9c9c9;border-top:solid 1px #c9c9c9}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a{color:#404040}.wy-menu-vertical li.toctree-l1.current li.toctree-l2>ul,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>ul{display:none}.wy-menu-vertical li.toctree-l1.current li.toctree-l2.current>ul,.wy-menu-vertical li.toctree-l2.current li.toctree-l3.current>ul{display:block}.wy-menu-vertical li.toctree-l2.current>a{background:#c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{display:block;background:#c9c9c9;padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.toctree-l2 span.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3{font-size:.9em}.wy-menu-vertical li.toctree-l3.current>a{background:#bdbdbd;padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{display:block;background:#bdbdbd;padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.toctree-l3 span.toctree-expand{color:#969696}.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:normal}.wy-menu-vertical a{display:inline-block;line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover span.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980B9;cursor:pointer;color:#fff}.wy-menu-vertical a:active span.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980B9;text-align:center;padding:.809em;display:block;color:#fcfcfc;margin-bottom:.809em}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em auto;height:45px;width:45px;background-color:#2980B9;padding:5px;border-radius:100%}.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a{color:#fcfcfc;font-size:100%;font-weight:bold;display:inline-block;padding:4px 6px;margin-bottom:.809em}.wy-side-nav-search>a:hover,.wy-side-nav-search .wy-dropdown>a:hover{background:rgba(255,255,255,0.1)}.wy-side-nav-search>a img.logo,.wy-side-nav-search .wy-dropdown>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search>a.icon img.logo,.wy-side-nav-search .wy-dropdown>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:normal;color:rgba(255,255,255,0.3)}.wy-nav .wy-menu-vertical header{color:#2980B9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980B9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980B9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:before,.wy-nav-top:after{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:bold}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980B9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,0.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:gray}footer p{margin-bottom:12px}footer span.commit code,footer span.commit .rst-content tt,.rst-content footer span.commit tt{padding:0px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:1em;background:none;border:none;color:gray}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:before,.rst-footer-buttons:after{width:100%}.rst-footer-buttons:before,.rst-footer-buttons:after{display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:before,.rst-breadcrumbs-buttons:after{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:solid 1px #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:solid 1px #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:gray;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width: 768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-side-scroll{width:auto}.wy-side-nav-search{width:auto}.wy-menu.wy-menu-vertical{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width: 1100px){.wy-nav-content-wrap{background:rgba(0,0,0,0.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,footer,.wy-nav-side{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content p.caption .headerlink,.rst-content p.caption .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .icon{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content img{max-width:100%;height:auto}.rst-content div.figure{margin-bottom:24px}.rst-content div.figure p.caption{font-style:italic}.rst-content div.figure p:last-child.caption{margin-bottom:0px}.rst-content div.figure.align-center{text-align:center}.rst-content .section>img,.rst-content .section>a>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px 12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;display:block;overflow:auto}.rst-content pre.literal-block,.rst-content div[class^='highlight']{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px 0}.rst-content pre.literal-block div[class^='highlight'],.rst-content div[class^='highlight'] div[class^='highlight']{padding:0px;border:none;margin:0}.rst-content div[class^='highlight'] td.code{width:100%}.rst-content .linenodiv pre{border-right:solid 1px #e6e9ea;margin:0;padding:12px 12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^='highlight'] pre{white-space:pre;margin:0;padding:12px 12px;display:block;overflow:auto}.rst-content div[class^='highlight'] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content pre.literal-block,.rst-content div[class^='highlight'] pre,.rst-content .linenodiv pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;line-height:1.4}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^='highlight'],.rst-content div[class^='highlight'] pre{white-space:pre-wrap}}.rst-content .note .last,.rst-content .attention .last,.rst-content .caution .last,.rst-content .danger .last,.rst-content .error .last,.rst-content .hint .last,.rst-content .important .last,.rst-content .tip .last,.rst-content .warning .last,.rst-content .seealso .last,.rst-content .admonition-todo .last,.rst-content .admonition .last{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,0.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent !important;border-color:rgba(0,0,0,0.1) !important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha li{list-style:upper-alpha}.rst-content .section ol p,.rst-content .section ul p{margin-bottom:12px}.rst-content .section ol p:last-child,.rst-content .section ul p:last-child{margin-bottom:24px}.rst-content .line-block{margin-left:0px;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0px}.rst-content .topic-title{font-weight:bold;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0px 0px 24px 24px}.rst-content .align-left{float:left;margin:0px 24px 24px 0px}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content .toctree-wrapper p.caption .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content .code-block-caption .headerlink{visibility:hidden;font-size:14px}.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content .toctree-wrapper p.caption .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content dl dt .headerlink:after,.rst-content p.caption .headerlink:after,.rst-content table>caption .headerlink:after,.rst-content .code-block-caption .headerlink:after{content:"";font-family:FontAwesome}.rst-content h1:hover .headerlink:after,.rst-content h2:hover .headerlink:after,.rst-content .toctree-wrapper p.caption:hover .headerlink:after,.rst-content h3:hover .headerlink:after,.rst-content h4:hover .headerlink:after,.rst-content h5:hover .headerlink:after,.rst-content h6:hover .headerlink:after,.rst-content dl dt:hover .headerlink:after,.rst-content p.caption:hover .headerlink:after,.rst-content table>caption:hover .headerlink:after,.rst-content .code-block-caption:hover .headerlink:after{visibility:visible}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:solid 1px #e1e4e5}.rst-content .sidebar p,.rst-content .sidebar ul,.rst-content .sidebar dl{font-size:90%}.rst-content .sidebar .last{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif;font-weight:bold;background:#e1e4e5;padding:6px 12px;margin:-24px;margin-bottom:24px;font-size:100%}.rst-content .highlighted{background:#F1C40F;display:inline-block;font-weight:bold;padding:0 6px}.rst-content .footnote-reference,.rst-content .citation-reference{vertical-align:baseline;position:relative;top:-0.4em;line-height:0;font-size:90%}.rst-content table.docutils.citation,.rst-content table.docutils.footnote{background:none;border:none;color:gray}.rst-content table.docutils.citation td,.rst-content table.docutils.citation tr,.rst-content table.docutils.footnote td,.rst-content table.docutils.footnote tr{border:none;background-color:transparent !important;white-space:normal}.rst-content table.docutils.citation td.label,.rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}.rst-content table.docutils.citation tt,.rst-content table.docutils.citation code,.rst-content table.docutils.footnote tt,.rst-content table.docutils.footnote code{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}.rst-content table.docutils td .last,.rst-content table.docutils td .last :last-child{margin-bottom:0}.rst-content table.field-list{border:none}.rst-content table.field-list td{border:none}.rst-content table.field-list td p{font-size:inherit;line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content tt,.rst-content tt,.rst-content code{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;padding:2px 5px}.rst-content tt big,.rst-content tt em,.rst-content tt big,.rst-content code big,.rst-content tt em,.rst-content code em{font-size:100% !important;line-height:normal}.rst-content tt.literal,.rst-content tt.literal,.rst-content code.literal{color:#E74C3C}.rst-content tt.xref,a .rst-content tt,.rst-content tt.xref,.rst-content code.xref,a .rst-content tt,a .rst-content code{font-weight:bold;color:#404040}.rst-content pre,.rst-content kbd,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace}.rst-content a tt,.rst-content a tt,.rst-content a code{color:#2980B9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:bold;margin-bottom:12px}.rst-content dl p,.rst-content dl table,.rst-content dl ul,.rst-content dl ol{margin-bottom:12px !important}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl:not(.docutils){margin-bottom:24px}.rst-content dl:not(.docutils) dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980B9;border-top:solid 3px #6ab0de;padding:6px;position:relative}.rst-content dl:not(.docutils) dt:before{color:#6ab0de}.rst-content dl:not(.docutils) dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dl dt{margin-bottom:6px;border:none;border-left:solid 3px #ccc;background:#f0f0f0;color:#555}.rst-content dl:not(.docutils) dl dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dt:first-child{margin-top:0}.rst-content dl:not(.docutils) tt,.rst-content dl:not(.docutils) tt,.rst-content dl:not(.docutils) code{font-weight:bold}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) code.descclassname{background-color:transparent;border:none;padding:0;font-size:100% !important}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname{font-weight:bold}.rst-content dl:not(.docutils) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:bold}.rst-content dl:not(.docutils) .property{display:inline-block;padding-right:8px}.rst-content .viewcode-link,.rst-content .viewcode-back{display:inline-block;color:#27AE60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:bold}.rst-content tt.download,.rst-content code.download{background:inherit;padding:inherit;font-weight:normal;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content tt.download span:first-child,.rst-content code.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .versionmodified{font-style:italic}@media screen and (max-width: 480px){.rst-content .sidebar{width:100%}}span[id*='MathJax-Span']{color:#404040}.math{text-align:center}@font-face{font-family:"Lato";src:url("../fonts/Lato-Regular.woff2") format("woff2"),url("../fonts/Lato-Regular.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"Lato";src:url("../fonts/Lato-Bold.woff2") format("woff2"),url("../fonts/Lato-Bold.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"Lato";src:url("../fonts/Lato-BoldItalic.woff2") format("woff2"),url("../fonts/Lato-BoldItalic.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"Lato";src:url("../fonts/Lato-Italic.woff2") format("woff2"),url("../fonts/Lato-Italic.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"Roboto Slab";font-style:normal;font-weight:400;src:url("../fonts/RobotoSlab-Regular.woff2") format("woff2"),url("../fonts/RobotoSlab-Regular.ttf") format("truetype")}@font-face{font-family:"Roboto Slab";font-style:normal;font-weight:700;src:url("../fonts/RobotoSlab-Bold.woff2") format("woff2"),url("../fonts/RobotoSlab-Bold.ttf") format("truetype")} diff --git a/docs/source/_build/html/_static/doctools.js b/docs/source/_build/html/_static/doctools.js new file mode 100644 index 0000000..344db17 --- /dev/null +++ b/docs/source/_build/html/_static/doctools.js @@ -0,0 +1,315 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var bbox = span.getBBox(); + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + var parentOfText = node.parentNode.parentNode; + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { + this.initOnKeyListeners(); + } + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === 'undefined') + return string; + return (typeof translated === 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) === 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this === '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/docs/source/_build/html/_static/documentation_options.js b/docs/source/_build/html/_static/documentation_options.js new file mode 100644 index 0000000..d28647e --- /dev/null +++ b/docs/source/_build/html/_static/documentation_options.js @@ -0,0 +1,10 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '', + LANGUAGE: 'None', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, +}; \ No newline at end of file diff --git a/docs/source/_build/html/_static/down-pressed.png b/docs/source/_build/html/_static/down-pressed.png new file mode 100644 index 0000000..5756c8c Binary files /dev/null and b/docs/source/_build/html/_static/down-pressed.png differ diff --git a/docs/source/_build/html/_static/down.png b/docs/source/_build/html/_static/down.png new file mode 100644 index 0000000..1b3bdad Binary files /dev/null and b/docs/source/_build/html/_static/down.png differ diff --git a/docs/source/_build/html/_static/file.png b/docs/source/_build/html/_static/file.png new file mode 100644 index 0000000..a858a41 Binary files /dev/null and b/docs/source/_build/html/_static/file.png differ diff --git a/docs/source/_build/html/_static/fonts/Lato-Bold.ttf b/docs/source/_build/html/_static/fonts/Lato-Bold.ttf new file mode 100644 index 0000000..70c4dd9 Binary files /dev/null and b/docs/source/_build/html/_static/fonts/Lato-Bold.ttf differ diff --git a/docs/source/_build/html/_static/fonts/Lato-Bold.woff2 b/docs/source/_build/html/_static/fonts/Lato-Bold.woff2 new file mode 100644 index 0000000..2ab3f6d Binary files /dev/null and b/docs/source/_build/html/_static/fonts/Lato-Bold.woff2 differ diff --git a/docs/source/_build/html/_static/fonts/Lato-BoldItalic.ttf b/docs/source/_build/html/_static/fonts/Lato-BoldItalic.ttf new file mode 100644 index 0000000..c0e84bc Binary files /dev/null and b/docs/source/_build/html/_static/fonts/Lato-BoldItalic.ttf differ diff --git a/docs/source/_build/html/_static/fonts/Lato-BoldItalic.woff2 b/docs/source/_build/html/_static/fonts/Lato-BoldItalic.woff2 new file mode 100644 index 0000000..3cedab6 Binary files /dev/null and b/docs/source/_build/html/_static/fonts/Lato-BoldItalic.woff2 differ diff --git a/docs/source/_build/html/_static/fonts/Lato-Italic.ttf b/docs/source/_build/html/_static/fonts/Lato-Italic.ttf new file mode 100644 index 0000000..e7a31ce Binary files /dev/null and b/docs/source/_build/html/_static/fonts/Lato-Italic.ttf differ diff --git a/docs/source/_build/html/_static/fonts/Lato-Italic.woff2 b/docs/source/_build/html/_static/fonts/Lato-Italic.woff2 new file mode 100644 index 0000000..005bd62 Binary files /dev/null and b/docs/source/_build/html/_static/fonts/Lato-Italic.woff2 differ diff --git a/docs/source/_build/html/_static/fonts/Lato-Regular.ttf b/docs/source/_build/html/_static/fonts/Lato-Regular.ttf new file mode 100644 index 0000000..b536f95 Binary files /dev/null and b/docs/source/_build/html/_static/fonts/Lato-Regular.ttf differ diff --git a/docs/source/_build/html/_static/fonts/Lato-Regular.woff2 b/docs/source/_build/html/_static/fonts/Lato-Regular.woff2 new file mode 100644 index 0000000..597115a Binary files /dev/null and b/docs/source/_build/html/_static/fonts/Lato-Regular.woff2 differ diff --git a/docs/source/_build/html/_static/fonts/RobotoSlab-Bold.ttf b/docs/source/_build/html/_static/fonts/RobotoSlab-Bold.ttf new file mode 100644 index 0000000..df5d1df Binary files /dev/null and b/docs/source/_build/html/_static/fonts/RobotoSlab-Bold.ttf differ diff --git a/docs/source/_build/html/_static/fonts/RobotoSlab-Bold.woff2 b/docs/source/_build/html/_static/fonts/RobotoSlab-Bold.woff2 new file mode 100644 index 0000000..184189b Binary files /dev/null and b/docs/source/_build/html/_static/fonts/RobotoSlab-Bold.woff2 differ diff --git a/docs/source/_build/html/_static/fonts/RobotoSlab-Regular.ttf b/docs/source/_build/html/_static/fonts/RobotoSlab-Regular.ttf new file mode 100644 index 0000000..eb52a79 Binary files /dev/null and b/docs/source/_build/html/_static/fonts/RobotoSlab-Regular.ttf differ diff --git a/docs/source/_build/html/_static/fonts/RobotoSlab-Regular.woff2 b/docs/source/_build/html/_static/fonts/RobotoSlab-Regular.woff2 new file mode 100644 index 0000000..e2621bc Binary files /dev/null and b/docs/source/_build/html/_static/fonts/RobotoSlab-Regular.woff2 differ diff --git a/docs/source/_build/html/_static/fonts/fontawesome-webfont.eot b/docs/source/_build/html/_static/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/docs/source/_build/html/_static/fonts/fontawesome-webfont.eot differ diff --git a/docs/source/_build/html/_static/fonts/fontawesome-webfont.svg b/docs/source/_build/html/_static/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/docs/source/_build/html/_static/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/_build/html/_static/fonts/fontawesome-webfont.ttf b/docs/source/_build/html/_static/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/docs/source/_build/html/_static/fonts/fontawesome-webfont.ttf differ diff --git a/docs/source/_build/html/_static/fonts/fontawesome-webfont.woff b/docs/source/_build/html/_static/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/docs/source/_build/html/_static/fonts/fontawesome-webfont.woff differ diff --git a/docs/source/_build/html/_static/fonts/fontawesome-webfont.woff2 b/docs/source/_build/html/_static/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/docs/source/_build/html/_static/fonts/fontawesome-webfont.woff2 differ diff --git a/docs/source/_build/html/_static/jquery.js b/docs/source/_build/html/_static/jquery.js new file mode 100644 index 0000000..7e32910 --- /dev/null +++ b/docs/source/_build/html/_static/jquery.js @@ -0,0 +1,10365 @@ +/*! + * jQuery JavaScript Library v3.3.1-dfsg + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2019-04-19T06:52Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. + + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + + + + var preservedScriptAttributes = { + type: true, + src: true, + noModule: true + }; + + function DOMEval( code, doc, node ) { + doc = doc || document; + + var i, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + if ( node[ i ] ) { + script[ i ] = node[ i ]; + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.3.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.3 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true && ("form" in elem || "label" in elem); + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + disabledAncestor( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + div.style.position = "absolute"; + scrollboxSizeVal = div.offsetWidth === 36 || "absolute"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. +function finalPropName( name ) { + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + ) ); + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + val = curCSS( elem, dimension, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox; + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = valueIsBorderBox && + ( support.boxSizingReliable() || val === elem.style[ dimension ] ); + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + if ( val === "auto" || + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) { + + val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ]; + + // offsetWidth/offsetHeight provide border-box values + valueIsBorderBox = true; + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra && boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ); + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && support.scrollboxSize() === styles.position ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = Date.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Index
  • + + +
  • + + + +
  • + +
+ + +
+
+
+
+ + +

Index

+ +
+ A + | B + | C + | D + | E + | F + | G + | H + | I + | K + | L + | M + | N + | O + | P + | Q + | R + | S + | T + | U + | V + | W + | Z + +
+

A

+ + + +
+ +

B

+ + + +
+ +

C

+ + + +
+ +

D

+ + + +
+ +

E

+ + + +
+ +

F

+ + + +
+ +

G

+ + + +
+ +

H

+ + + +
+ +

I

+ + + +
+ +

K

+ + + +
+ +

L

+ + + +
+ +

M

+ + + +
+ +

N

+ + + +
+ +

O

+ + + +
+ +

P

+ + + +
+ +

Q

+ + + +
+ +

R

+ + + +
+ +

S

+ + + +
+ +

T

+ + + +
+ +

U

+ + + +
+ +

V

+ + + +
+ +

W

+ + + +
+ +

Z

+ + +
+ + + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/index.html b/docs/source/_build/html/index.html new file mode 100644 index 0000000..07abb56 --- /dev/null +++ b/docs/source/_build/html/index.html @@ -0,0 +1,224 @@ + + + + + + + + + + + Welcome to Lightnion’s documentation! — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

Welcome to Lightnion’s documentation!

+
+

Introduction

+
+ +
+

Lightnion is a JavaScript library that you can include on your webpage to let +any modern browser make anonymous requests. Lightnion uses an untrusted +proxy to interact with the Tor network. This proxy converts between protocols +(Websockets to pure TCP). This repository also contains a Python Lightnion Tor +client that we have been using for testing.

+

WARNING: At the moment Lightnion is alpha-level research software. Do not +use it in production, or for anything that really requires anonymity. You are, +however, more than welcome to experiment with Lightnion. Please provide +feedback opening issues or writing to the authors.

+
+
+
+

Indices and tables

+ +
+ + +
+ +
+
+ + + + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/install.html b/docs/source/_build/html/install.html new file mode 100644 index 0000000..a40bfa2 --- /dev/null +++ b/docs/source/_build/html/install.html @@ -0,0 +1,192 @@ + + + + + + + + + + + Installation — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

Installation

+
+ + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/lightnion.cell.html b/docs/source/_build/html/lightnion.cell.html new file mode 100644 index 0000000..8af380c --- /dev/null +++ b/docs/source/_build/html/lightnion.cell.html @@ -0,0 +1,1183 @@ + + + + + + + + + + + lightnion.cell package — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

lightnion.cell package

+ +
+

Submodules

+
+
+

lightnion.cell.address module

+
+
+class lightnion.cell.address.addr_type[source]
+

Bases: lightnion.cell.view._anonymous_cached_enum

+

An enumeration.

+
+
+ERROR_NON_TRANS = <bound method enum.<locals>._anonymous_cached_enum.value of <enum 'addr_type'>>
+
+ +
+
+ERROR_TRANS = <bound method enum.<locals>._anonymous_cached_enum.value of <enum 'addr_type'>>
+
+ +
+
+HOSTNAME = <bound method enum.<locals>._anonymous_cached_enum.value of <enum 'addr_type'>>
+
+ +
+
+IPV4_ADDR = <bound method enum.<locals>._anonymous_cached_enum.value of <enum 'addr_type'>>
+
+ +
+
+IPV6_ADDR = <bound method enum.<locals>._anonymous_cached_enum.value of <enum 'addr_type'>>
+
+ +
+ +
+
+class lightnion.cell.address.address_view(*kargs, **kwargs)[source]
+

Bases: lightnion.cell.view.packet

+
+ +
+
+lightnion.cell.address.pack(host, type_hint=None)[source]
+
+ +
+
+

lightnion.cell.certs module

+
+
+class lightnion.cell.certs.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+class lightnion.cell.certs.cert_type[source]
+

Bases: lightnion.cell.view._anonymous_enum

+

An enumeration.

+
+
+ED_SIGNED_AUTHENTICATE = <bound method enum.<locals>._anonymous_enum.value of <enum 'cert_type'>>
+
+ +
+
+ED_SIGNED_SIGNING_KEY = <bound method enum.<locals>._anonymous_enum.value of <enum 'cert_type'>>
+
+ +
+ +
+ +
+
+RSA_SELF_SIGNED_IDENTITY = <bound method enum.<locals>._anonymous_enum.value of <enum 'cert_type'>>
+
+ +
+
+RSA_SIGNED_AUTHENTICATE = <bound method enum.<locals>._anonymous_enum.value of <enum 'cert_type'>>
+
+ +
+
+RSA_SIGNED_ED_IDENTITY = <bound method enum.<locals>._anonymous_enum.value of <enum 'cert_type'>>
+
+ +
+ +
+ +
+ +
+
+

lightnion.cell.challenge module

+
+
+class lightnion.cell.challenge.auth_type[source]
+

Bases: lightnion.cell.view._anonymous_enum

+

An enumeration.

+
+
+ED_AUTH = <bound method enum.<locals>._anonymous_enum.value of <enum 'auth_type'>>
+
+ +
+
+RSA_AUTH = <bound method enum.<locals>._anonymous_enum.value of <enum 'auth_type'>>
+
+ +
+ +
+
+class lightnion.cell.challenge.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+lightnion.cell.challenge.pack(*methods, challenge=None)[source]
+
+ +
+
+

lightnion.cell.common module

+
+
+class lightnion.cell.common.length_halved_view(*kargs, **kwargs)[source]
+

Bases: lightnion.cell.view.cached_uint

+
+
+cache()[source]
+
+ +
+
+iseven()[source]
+
+ +
+
+valid(payload=b'')[source]
+
+ +
+
+write(payload=b'', value=None)[source]
+
+ +
+ +
+
+

lightnion.cell.create2 module

+
+
+class lightnion.cell.create2.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+class lightnion.cell.create2.create_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+ +
+
+lightnion.cell.create2.pack(circuit_id, handshake_data)[source]
+
+ +
+
+

lightnion.cell.create_fast module

+
+
+class lightnion.cell.create_fast.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+lightnion.cell.create_fast.pack(circuit_id, material=None)[source]
+
+ +
+
+

lightnion.cell.created2 module

+
+
+class lightnion.cell.created2.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+class lightnion.cell.created2.created_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+ +
+
+

lightnion.cell.created_fast module

+
+
+class lightnion.cell.created_fast.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+lightnion.cell.created_fast.pack(circuit_id, material, derivative)[source]
+
+ +
+
+

lightnion.cell.destroy module

+
+
+class lightnion.cell.destroy.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+lightnion.cell.destroy.pack(circuit_id, reason)[source]
+
+ +
+
+class lightnion.cell.destroy.reason[source]
+

Bases: lightnion.cell.view._anonymous_enum

+

An enumeration.

+
+
+CONNECTFAILED = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+DESTROYED = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+FINISHED = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+HIBERNATING = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+INTERNAL = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+NONE = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+NOSUCHSERVICE = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+OR_CONN_CLOSED = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+OR_IDENTITY = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+PROTOCOL = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+REQUESTED = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+RESOURCELIMIT = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+
+TIMEOUT = <bound method enum.<locals>._anonymous_enum.value of <enum 'reason'>>
+
+ +
+ +
+
+

lightnion.cell.netinfo module

+
+
+class lightnion.cell.netinfo.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+lightnion.cell.netinfo.pack(other_address, *addresses, timestamp=None)[source]
+
+ +
+
+

lightnion.cell.padding module

+
+
+class lightnion.cell.padding.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+lightnion.cell.padding.pack()[source]
+
+ +
+
+

lightnion.cell.relay_early module

+
+
+class lightnion.cell.relay_early.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+lightnion.cell.relay_early.pack(circuit_id, cmd, data, recognized=b'\x00\x00', *, stream_id, digest)[source]
+
+ +
+
+

lightnion.cell.versions module

+
+
+class lightnion.cell.versions.cell_view(header=<lightnion.cell.view.fields object>)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+lightnion.cell.versions.pack(versions)[source]
+
+ +
+
+lightnion.cell.versions.recv(peer)[source]
+
+ +
+
+lightnion.cell.versions.send(peer, payload)[source]
+
+ +
+
+

lightnion.cell.view module

+
+
+class lightnion.cell.view.basic[source]
+

Bases: object

+
+
+valid(payload=b'')[source]
+
+ +
+
+value(payload=b'', field=None)[source]
+
+ +
+
+width(payload=b'')[source]
+
+ +
+
+write(payload=b'', value=None, **kwargs)[source]
+
+ +
+ +
+
+lightnion.cell.view.bind(parent_view, parent_wrapper, parent_field=None, init=[])[source]
+
+ +
+
+lightnion.cell.view.cache(base, typename=None, init=None)[source]
+
+ +
+
+class lightnion.cell.view.codec(*codecs, size)[source]
+

Bases: lightnion.cell.view.data

+
+
+valid(payload=b'')[source]
+
+ +
+
+value(payload=b'', field=None)[source]
+
+ +
+
+write(payload=b'', value=None, **kwargs)[source]
+
+ +
+ +
+
+class lightnion.cell.view.composite[source]
+

Bases: lightnion.cell.view.basic

+
+
+write(payload=b'', value=None, **kwargs)[source]
+
+ +
+ +
+
+class lightnion.cell.view.data(size)[source]
+

Bases: lightnion.cell.view.basic

+
+
+size
+
+ +
+
+valid(payload=b'')[source]
+
+ +
+
+value(payload=b'', field=None)[source]
+
+ +
+
+width(payload=b'')[source]
+
+ +
+
+write(payload=b'', value=None, **kwargs)[source]
+
+ +
+ +
+
+lightnion.cell.view.enum(size, byteorder='big', typename=None, cached=False)[source]
+
+ +
+
+class lightnion.cell.view.fields(**kwargs)[source]
+

Bases: lightnion.cell.view.composite

+
+
+list_fields()[source]
+
+ +
+
+offset(payload=b'', field=None)[source]
+
+ +
+
+valid(payload=b'')[source]
+
+ +
+
+value(payload=b'', field=None)[source]
+
+ +
+
+visit(payload=b'', operator=<function fields.<lambda>>)[source]
+
+ +
+
+width(payload=b'')[source]
+
+ +
+
+write(payload=b'', value=None, **kwargs)[source]
+
+ +
+ +
+
+class lightnion.cell.view.ip_address(*, version)[source]
+

Bases: lightnion.cell.view.data

+
+
+valid(payload=b'')[source]
+
+ +
+
+value(payload=b'', field=None)[source]
+
+ +
+
+write(payload=b'', value=None, **kwargs)[source]
+
+ +
+ +
+
+lightnion.cell.view.iscached(item)[source]
+
+ +
+
+lightnion.cell.view.iscomposite(item)[source]
+
+ +
+
+lightnion.cell.view.isview(item)[source]
+
+ +
+
+lightnion.cell.view.like(parent_view, typename=None, init=None)[source]
+
+ +
+
+class lightnion.cell.view.packet(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.fields

+
+
+cache_fields(payload=b'', value=None)[source]
+
+ +
+
+fixed_size
+
+ +
+
+list_fields()[source]
+
+ +
+
+offset(payload=b'', field=None)[source]
+
+ +
+
+valid(payload=b'')[source]
+
+ +
+
+value(payload=b'', field=None)[source]
+
+ +
+
+width(payload=b'')[source]
+
+ +
+
+write(payload=b'', value=None, **kwargs)[source]
+
+ +
+ +
+
+class lightnion.cell.view.series(item_view, n)[source]
+

Bases: lightnion.cell.view.composite

+
+
+max_quantity = 32
+
+ +
+
+offset(payload=b'', field=None)[source]
+
+ +
+
+quantity
+
+ +
+
+valid(payload=b'')[source]
+
+ +
+
+value(payload=b'', field=None)[source]
+
+ +
+
+width(payload=b'')[source]
+
+ +
+
+write(payload=b'', value=None, **kwargs)[source]
+
+ +
+ +
+
+class lightnion.cell.view.uint(size, byteorder='big')[source]
+

Bases: lightnion.cell.view.basic

+
+
+valid(payload=b'')[source]
+
+ +
+
+value(payload=b'', field=None)[source]
+
+ +
+
+width(payload=b'')[source]
+
+ +
+
+write(payload=b'', value=None, **kwargs)[source]
+
+ +
+ +
+
+class lightnion.cell.view.union(view_table, union_tag)[source]
+

Bases: lightnion.cell.view.composite

+
+
+active_view
+
+ +
+
+offset(payload=b'', field=None)[source]
+
+ +
+
+tag
+
+ +
+
+valid(payload=b'')[source]
+
+ +
+
+value(payload=b'', field=None)[source]
+
+ +
+
+width(payload=b'')[source]
+
+ +
+
+write(payload=b'', value=None, **kwargs)[source]
+
+ +
+ +
+
+class lightnion.cell.view.wrapper(parent_view)[source]
+

Bases: object

+

This is a view bound to raw bytes.

+

See self.fields to list fields within the view. +See help(self._view) for details on the underlying view.

+
+
+fields
+
+ +
+
+finalize(truncate=True)[source]
+
+ +
+
+offset(field)[source]
+
+ +
+
+raw
+
+ +
+
+set(*kargs, **kwargs)[source]
+
+ +
+
+truncated
+
+ +
+
+valid
+
+ +
+
+value(field=None)[source]
+
+ +
+
+width
+
+ +
+
+write(value=None, **kwargs)[source]
+
+ +
+ +
+
+

Module contents

+
+
+class lightnion.cell.cell_view(header)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+class lightnion.cell.cmd[source]
+

Bases: lightnion.cell.view._anonymous_enum

+

An enumeration.

+
+
+AUTHENTICATE = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+AUTHORIZE = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+AUTH_CHALLENGE = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+CERTS = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+CREATE = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+CREATE2 = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+CREATED = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+CREATED2 = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+CREATED_FAST = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+CREATE_FAST = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+DESTROY = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+NETINFO = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+PADDING = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+PADDING_NEGOTIATE = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_EARLY = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+VERSIONS = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+VPADDING = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+is_fixed
+
+ +
+
+is_variable
+
+ +
+ +
+
+lightnion.cell.pad(payload)[source]
+
+ +
+
+ + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/lightnion.cell.relay.html b/docs/source/_build/html/lightnion.cell.relay.html new file mode 100644 index 0000000..8146180 --- /dev/null +++ b/docs/source/_build/html/lightnion.cell.relay.html @@ -0,0 +1,407 @@ + + + + + + + + + + + lightnion.cell.relay package — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

lightnion.cell.relay package

+
+

Submodules

+
+
+

lightnion.cell.relay.extend2 module

+
+
+class lightnion.cell.relay.extend2.extend2_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+ +
+
+class lightnion.cell.relay.extend2.handshake_type[source]
+

Bases: lightnion.cell.view._anonymous_enum

+

An enumeration.

+
+
+NTOR = <bound method enum.<locals>._anonymous_enum.value of <enum 'handshake_type'>>
+
+ +
+ +
+
+class lightnion.cell.relay.extend2.linkspec_type[source]
+

Bases: lightnion.cell.view._anonymous_cached_enum

+

An enumeration.

+
+
+ED_ID = <bound method enum.<locals>._anonymous_cached_enum.value of <enum 'linkspec_type'>>
+
+ +
+
+LEGACY_ID = <bound method enum.<locals>._anonymous_cached_enum.value of <enum 'linkspec_type'>>
+
+ +
+
+TLS_TCP_4 = <bound method enum.<locals>._anonymous_cached_enum.value of <enum 'linkspec_type'>>
+
+ +
+
+TLS_TCP_6 = <bound method enum.<locals>._anonymous_cached_enum.value of <enum 'linkspec_type'>>
+
+ +
+ +
+
+class lightnion.cell.relay.extend2.linkspec_view(*kargs, **kwargs)[source]
+

Bases: lightnion.cell.view.packet

+
+ +
+
+class lightnion.cell.relay.extend2.linkspecs_view(*kargs, **kwargs)[source]
+

Bases: lightnion.cell.view.packet

+
+ +
+
+lightnion.cell.relay.extend2.pack(handshake, addresses=[], identities=[])[source]
+
+ +
+
+

lightnion.cell.relay.extended2 module

+
+
+class lightnion.cell.relay.extended2.extended2_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+ +
+
+

Module contents

+
+
+class lightnion.cell.relay.cell_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+class lightnion.cell.relay.cmd[source]
+

Bases: lightnion.cell.view._anonymous_enum

+

An enumeration.

+
+
+RELAY_BEGIN = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_BEGIN_DIR = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_CONNECTED = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_DATA = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_DROP = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_END = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_EXTEND = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_EXTEND2 = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_EXTENDED = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_EXTENDED2 = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_RESOLVE = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_RESOLVED = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_SENDME = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_TRUNCATE = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+RELAY_TRUNCATED = <bound method enum.<locals>._anonymous_enum.value of <enum 'cmd'>>
+
+ +
+
+is_backward
+
+ +
+
+is_circuit
+
+ +
+
+is_control
+
+ +
+
+is_forward
+
+ +
+ +
+
+lightnion.cell.relay.pack(circuit_id, cmd, data, recognized=b'\x00\x00', *, stream_id, digest)[source]
+
+ +
+
+class lightnion.cell.relay.relay_view(header_view=None, fixed_size=None, field_name=None, data_name=None, data_view=None, extra_fields=None)[source]
+

Bases: lightnion.cell.view.packet

+
+
+valid(payload=b'')[source]
+
+ +
+ +
+
+ + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/lightnion.crypto.html b/docs/source/_build/html/lightnion.crypto.html new file mode 100644 index 0000000..a4d4536 --- /dev/null +++ b/docs/source/_build/html/lightnion.crypto.html @@ -0,0 +1,288 @@ + + + + + + + + + + + lightnion.crypto package — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

lightnion.crypto package

+
+

Submodules

+
+
+

lightnion.crypto.kdf module

+
+
+class lightnion.crypto.kdf.kdf_tor(raw_material)[source]
+

Bases: object

+
+ +
+
+

lightnion.crypto.ntor module

+
+
+lightnion.crypto.ntor.h_mac(data)
+
+ +
+
+lightnion.crypto.ntor.h_verify(data)
+
+ +
+
+lightnion.crypto.ntor.hand(identity, onion_key)[source]
+
+ +
+
+class lightnion.crypto.ntor.hmac[source]
+

Bases: object

+
+
+block_size = 64
+
+ +
+
+static digest(key, message)[source]
+
+ +
+
+output_size = 32
+
+ +
+
+prf()
+
+ +
+
+static tweaked(tweak)[source]
+
+ +
+ +
+
+class lightnion.crypto.ntor.kdf(material)[source]
+

Bases: object

+
+
+static ntor(material, length)[source]
+
+ +
+
+static rfc5869(material, salt, context, length)[source]
+
+ +
+ +
+
+lightnion.crypto.ntor.server(server_keys, identity, message, length)[source]
+
+ +
+
+lightnion.crypto.ntor.shake(client_keys, message, identity, onion_key, length)[source]
+
+ +
+
+

Module contents

+
+
+ + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/lightnion.html b/docs/source/_build/html/lightnion.html new file mode 100644 index 0000000..4af8758 --- /dev/null +++ b/docs/source/_build/html/lightnion.html @@ -0,0 +1,1916 @@ + + + + + + + + + + + lightnion package — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

lightnion package

+
+

Subpackages

+
+ +
+
+
+

Submodules

+
+
+

lightnion.cache module

+
+
+class lightnion.cache.consensus[source]
+

Bases: object

+
+
+static filename(flavor)[source]
+
+ +
+
+static get(flavor)[source]
+
+ +
+
+static put(fields)[source]
+
+ +
+ +
+
+class lightnion.cache.descriptors[source]
+

Bases: object

+
+
+static filename(descriptor, get=False)[source]
+
+ +
+
+static get(flavor, digest)[source]
+
+ +
+
+static put(descriptor)[source]
+
+ +
+ +
+
+lightnion.cache.directory(base_dir=None)[source]
+
+ +
+
+lightnion.cache.purge()[source]
+
+ +
+
+

lightnion.consensus module

+
+
+lightnion.consensus.consume_dir_sources(consensus)[source]
+

Consume directory source listing if present, then returns the remaining +input to be further processed and a set of directory sources (or None, +if none present).

+
+
Will consume the following fields:
+
    +
  • dir-source
  • +
  • contact
  • +
  • vote-digest
  • +
+
+
+ +++ + + + + + +
Parameters:consensus (str) – input to be processed
Returns:a tuple (remaining-input, headers-or-None)
+
+ +
+ +

Consume consensus footer if present, then returns the remaining input +to be further processed and a set of footers (or None, if none +present).

+
+
Will consume the following fields:
+
    +
  • directory-footer
  • +
  • bandwidth-weights
  • +
  • directory-signature
  • +
+
+
+ +++ + + + + + +
Parameters:
    +
  • consensus (str) – input to be processed
  • +
  • flavor (str) – consensus flavor (‘unflavored’ or ‘microdesc’)
  • +
+
Returns:

a tuple (remaining-input, headers-or-None)

+
+
+ +
+
+lightnion.consensus.consume_headers(consensus, flavor='unflavored')[source]
+

Consume consensus headers if present, then returns the remaining input +to be further processed and a set of headers (or None, if none +present).

+
+
Will consume the following fields:
+
    +
  • network-status-version
  • +
  • vote-status
  • +
  • consensus-method
  • +
  • valid-after
  • +
  • fresh-until
  • +
  • valid-until
  • +
  • voting-delay
  • +
  • client-versions
  • +
  • server-versions
  • +
  • known-flags
  • +
  • recommended-client-protocols
  • +
  • recommended-relay-protocols
  • +
  • required-client-protocols
  • +
  • required-relay-protocols
  • +
  • params
  • +
  • shared-rand-previous-value
  • +
  • shared-rand-current-value
  • +
+
+
+ +++ + + + + + +
Parameters:
    +
  • consensus (str) – input to be processed
  • +
  • flavor (str) – consensus flavor (‘unflavored’ or ‘microdesc’)
  • +
+
Returns:

a tuple (remaining-input, headers-or-None)

+
+
+ +
+
+lightnion.consensus.consume_http(consensus)[source]
+

Consume HTTP headers if present, then returns the remaining input to be +further processed and a set of headers (or None, if none present).

+ +++ + + + + + +
Parameters:consensus (str) – input to be processed
Returns:a tuple (remaining-input, headers-or-None)
+
+ +
+
+lightnion.consensus.consume_routers(consensus, flavor='unflavored')[source]
+

Consume router listing if present, then returns the remaining input to +be further processed and a set of routers (or None, if none present).

+
+
Will consume the following fields:
+
    +
  • r
  • +
  • m
  • +
  • s
  • +
  • v
  • +
  • pr
  • +
  • w
  • +
  • p (unflavored only)
  • +
  • a (unflavored only)
  • +
+
+
+ +++ + + + + + +
Parameters:
    +
  • consensus (str) – input to be processed
  • +
  • flavor (str) – consensus flavor (‘unflavored’ or ‘microdesc’)
  • +
+
Returns:

a tuple (remaining-input, headers-or-None)

+
+
+ +
+
+lightnion.consensus.download(state, flavor='microdesc', cache=True)[source]
+
+ +
+
+lightnion.consensus.download_direct(hostname, port, flavor='microdesc')[source]
+

Retrieve consensus via a direct HTTP connection. +:param hostname: host name of the node from which to retrieve the consensus. +:param port: port of the node from which to retrieve the consensus. +:param flavor: flavour of the consensus to retrieve. +:param cache: if the retrieved consensus should put in the cache.

+
+ +
+
+lightnion.consensus.download_raw(hostname, port, flavor='unflavored')[source]
+

Retrieve raw consensus via a direct HTTP connection. +:param hostname: host name of the node from which to retrieve the consensus. +:param port: port of the node from which to retrieve the consensus. +:param flavor: flavour of the consensus to retrieve.

+
+ +
+
+lightnion.consensus.extract_date(consensus, field)[source]
+

Retrieve the value from a date field as a datetime object.

+
+ +
+
+lightnion.consensus.extract_nodes_digests_micro(consensus_raw)[source]
+

Retrieve a list of the digests of all routers in the consensus.

+
+ +
+
+lightnion.consensus.extract_nodes_digests_unflavored(consensus_raw)[source]
+

Retrieve a list of the digests of all routers in the consensus.

+
+ +
+
+lightnion.consensus.load(file_name, cache=True)[source]
+

Load the consensus from a file +:param file_name: the name of the file in consensus_file +:param cache: if we cache the newly downloaded consensus +:return: the parsed consensus

+
+ +
+
+lightnion.consensus.parse(consensus, flavor='unflavored')[source]
+

Parse a raw consensus with the given flavor, then returns sanitized +entries as a python dictionary.

+ +++ + + + + + +
Parameters:
    +
  • consensus (str) – input to be processed
  • +
  • flavor (str) – consensus flavor (‘unflavored’ or ‘microdesc’)
  • +
+
Returns:

a python dictionary

+
+
+ +
+
+lightnion.consensus.parse_address(address)[source]
+

Take a Tor-formatted v4 or v6 IP address with a port, returns a +cleaned-up version.

+ +++ + + + + + +
Parameters:address (str) – input address to be processed
Returns:a tuple (address, port, guessed-type) where port is an +integer and guessed-type is 4 or 6 (IPv4 or IPv6).
+
+ +
+
+lightnion.consensus.parse_base64(payload, decode=False)[source]
+

Take an input base64 string, decode it, re-encode it.

+
+
For example, we use it to parse “shared-rand-current-value” fields:
+
https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L2069
+
+ +++ + + + + + +
Parameters:
    +
  • payload (str) – input base64-encoded data
  • +
  • decode (bool) – return raw bytes (default: False)
  • +
+
Returns:

a base64-encoded string equivalent to the input

+
+
+ +
+
+lightnion.consensus.parse_fingerprint(payload)[source]
+
+ +
+
+lightnion.consensus.parse_params(params)[source]
+

Take Tor-formatted parameters, then returns a keyword-based dictionary +of integers.

+
+
For example, we use it to parse “params” fields:
+
https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L1820
+
+ +++ + + + + + +
Parameters:params (str) – input params to be processed
Returns:a dictionary with (param-name, param-integer-value) items
+
+ +
+
+lightnion.consensus.parse_range_once(value, expand=True)[source]
+

Take Tor-formatted ranges, then returns it as a list of integers if +expanded or a mix of integers and ranges as [low, high] tuples.

+
+
For example, we use it to parse “p” fields:
+
https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L2322
+
+ +++ + + + + + +
Parameters:
    +
  • value (str) – input value to be processed
  • +
  • expand (bool) – do we expand a range as integers? (default: True)
  • +
+
Returns:

a list of integers or a mix of integers and range list/tuples

+
+
+ +
+
+lightnion.consensus.parse_ranges(ranges, expand=True)[source]
+

Take Tor-formatted named ranges, then returns a keyword-based +dictionary of list of integers or mix of integers and range tuples (as +returned by parse_range_once), expanded or not.

+
+
For example, we use it to parse “recommended-client-protocols” fields:
+
https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L780
+
+ +++ + + + + + +
Parameters:
    +
  • ranges (str) – input ranges to be processed
  • +
  • expand (bool) – do we expand ranges as integers? (default: True)
  • +
+
Returns:

a dictionary with (range-name, range-content) items

+
+
+ +
+
+lightnion.consensus.parse_time(timedate)[source]
+

Take a Tor-formatted (Y-m-d H:M:S) time, parse it, then returns the +corresponding date, time and datetime object. This function assumes +that the given time uses the UTC timezone – as it’s the timezone used +into Tor consensuses.

+ +++ + + + + + +
Parameters:timedate (str) – input time and date to be parsed
Returns:a tuple (date-str, time-str, datetime-object)
+
+ +
+
+lightnion.consensus.scrap(consensus, end_of_field)[source]
+

Consume lines upon matching a criterion.

+
+
Returns (consensus-without-first-line, first-line)
+
if end_of_field(first-line) returns True, +else returns (consensus-with-first-line, None)
+
+ +++ + + + + + +
Parameters:
    +
  • consensus (bytes) – input which first line may be consumed
  • +
  • end_of_field (function) – passed a line, returns True when no match
  • +
+
Returns:

a tuple (updated-consensus, next-field-or-None)

+
+
+ +
+
+lightnion.consensus.scrap_signature(consensus, fix=b'SIGNATURE')[source]
+

Consume a signature field if there is one to consume.

+ +++ + + + + + +
Parameters:consensus (bytes) – input which may start with a signature.
Returns:a tuple (updated-consensus, signature-or-None)
+
+ +
+
+

lightnion.constants module

+
+
+class lightnion.constants.flow[source]
+

Bases: object

+
+
+class circuit[source]
+

Bases: object

+
+
+default = 1000
+
+ +
+
+increment = 100
+
+ +
+
+lowlimit = 900
+
+ +
+ +
+
+class stream[source]
+

Bases: object

+
+
+default = 500
+
+ +
+
+increment = 50
+
+ +
+
+lowlimit = 450
+
+ +
+ +
+ +
+
+

lightnion.create module

+
+
+class lightnion.create.circuit[source]
+

Bases: lightnion.create.circuit

+
+
+destroyed = False
+
+ +
+
+get(block=True)[source]
+
+ +
+
+last_stream_id = 0
+
+ +
+
+put(payload)[source]
+
+ +
+
+queue = None
+
+ +
+
+reason = None
+
+ +
+
+stream_windows = None
+
+ +
+
+window = None
+
+ +
+ +
+
+lightnion.create.fast(link)[source]
+

Use a CREATE_FAST cell to initiate a one-hop circuit.

+

The expected transcript is:

+
+
+
(… perform a proper link handshake here …)
+

Onion Proxy (client) Onion Router (server)

+
+
/ [ 7] :—— CREATE_FAST¹ ——-> [8] +| [10] <—— CREATED_FAST ——-: [9] +| +| Shared circuit key (via KDF-TOR²)
+
+
+
¹The initiator picks an available circuit ID (CircID) with its most
+
significant bit equal to 1 (v4-or-higher links).
+
+ +++ + + + + + +
Parameters:link – a link.link object, see: link.initiate
Returns:a onion.state object, see: onion.state
+
+ +
+
+lightnion.create.fast_async(link)[source]
+

Use a CREATE_FAST cell to initiate a one-hop circuit.

+

The expected transcript is:

+
+
+
(… perform a proper link handshake here …)
+

Onion Proxy (client) Onion Router (server)

+
+
/ [ 7] :—— CREATE_FAST¹ ——-> [8] +| [10] <—— CREATED_FAST ——-: [9] +| +| Shared circuit key (via KDF-TOR²)
+
+
+
¹The initiator picks an available circuit ID (CircID) with its most
+
significant bit equal to 1 (v4-or-higher links).
+
+ +++ + + + + + +
Parameters:link – a link.link object, see: link.initiate
Returns:a onion.state object, see: onion.state
+
+ +
+
+lightnion.create.ntor(link, descriptor)[source]
+
+ +
+
+lightnion.create.ntor_async(link, descriptor)[source]
+
+ +
+
+lightnion.create.ntor_handshake(link, circuit_id, handshake, timeout=None)[source]
+
+ +
+
+lightnion.create.ntor_raw(link, payload, timeout=None)[source]
+
+ +
+
+lightnion.create.ntor_raw2(circuit_id, payload)[source]
+
+ +
+
+

lightnion.descriptors module

+
+
+lightnion.descriptors.batch_query(items, prefix, separator='-', fixed_max_length=3968)[source]
+
+ +
+
+lightnion.descriptors.compute_descriptor_digest(fields, descriptors, entry, flavor)[source]
+

(details of the parser – private API)

+

Plugs into our consumer to compute extra “digest” fields that expose +the (micro-)descriptor’s (micro-)digest, enabling us to easily fetch +associated entries within a consensus.

+ +++ + + + + + +
Parameters:
    +
  • fields (list) – “fields” accumulator used by the consumer
  • +
  • descriptors (bytes) – remaining input to be parsed by the consumer
  • +
  • entry (bytes) – last line being parsed by the consumer
  • +
  • flavor (str) – flavor used by the consumer
  • +
+
Returns:

updated (or not) fields accumulator

+
+
+ +
+
+lightnion.descriptors.consume_descriptors(descriptors, flavor='microdesc')[source]
+
+ +
+
+lightnion.descriptors.download(state, cons=None, flavor='microdesc', cache=True, fail_on_missing=False)[source]
+
+ +
+
+lightnion.descriptors.download_authority(state)[source]
+
+ +
+
+lightnion.descriptors.download_authority_direct(host, port)[source]
+

Retrieve authority. +:param host: host from which to retrieve the authority. +:param port: port from which to retrieve the authority. +:return: Authority.

+
+ +
+
+lightnion.descriptors.download_direct(host, port, cons, flavor='unflavored')[source]
+

Retrieve descriptor via a direct HTTP connection. +:param host: host from which to retrieve the descriptors. +:param port: port from which to retrieve the descriptors. +:param cons: consensus for which nodes a descriptor need to be retrieved.

+
+ +
+
+lightnion.descriptors.download_raw(host, port, cons, flavor='unflavored')[source]
+

Retrieve descriptor via a direct HTTP connection. +:param host: host from which to retrieve the descriptors. +:param port: port from which to retrieve the descriptors. +:param cons: consensus for which nodes a descriptor need to be retrieved.

+
+ +
+
+lightnion.descriptors.download_raw_by_digests_micro(host, port, digests_bytes)[source]
+

Retrieve descriptor via a direct HTTP connection. +:param host: host from which to retrieve the descriptors. +:param port: port from which to retrieve the descriptors. +:param digests: Digests (in a binary form) of the nodes for which a descriptor need to be retrieved.

+
+ +
+
+lightnion.descriptors.download_raw_by_digests_unflavored(host, port, digests_bytes)[source]
+

Retrieve descriptor via a direct HTTP connection. +:param host: host from which to retrieve the descriptors. +:param port: port from which to retrieve the descriptors. +:param digests: Digests (in a binary form) of the nodes for which a descriptor need to be retrieved.

+
+ +
+
+lightnion.descriptors.download_relay_descriptor(host='127.0.0.1', port=9051)[source]
+

Retrieve a relay’s own descriptor.

+
+ +
+
+lightnion.descriptors.filter_descriptors(descriptors, digests, flavor='unflavored')[source]
+

Filter out the invalid descriptors. +:param descriptors: Descriptors to be filtered. +:param digests: Digests from the consensus. +:param flavor: Flavor of the descriptor.

+
+ +
+
+lightnion.descriptors.parse_descriptors(descriptors, flavor='microdesc')[source]
+
+ +
+
+

lightnion.extend module

+
+
+lightnion.extend.circuit(state, descriptor)[source]
+
+ +
+
+

lightnion.hop module

+
+
+lightnion.hop.directory_query(state, query=None, compression='deflate', timeout=30, **kwargs)[source]
+
+ +
+
+lightnion.hop.recv(state, block=True, once=False, auto_sendme=True)[source]
+

Receive one or more RELAY{_EARLY,} cells from state attached circuit.

+ +++ + + + + + +
Parameters:
    +
  • state – a state object (see onion.state)
  • +
  • block (bool) – block while receiving? (default: True)
  • +
  • block – attempt only receiving once? (default: False)
  • +
+
Returns:

a tuple (updated state, received RELAY{_EARLY,} cells)

+
+
+
Notes:
+
    +
  • returns an updated state that MUST be used afterwards.
  • +
  • non-RELAY{_EARLY,} cells within the circuit may be reordered.
  • +
+
+
+
+ +
+
+lightnion.hop.send(state, command, payload=b'', stream_id=0)[source]
+

Send one RELAY{_EARLY,} cell through state attached circuit.

+ +++ + + + + + +
Parameters:
    +
  • state – a state object (see onion.state)
  • +
  • command (str) – RELAY{_EARLY,} cell command (see cell.relay.cmd)
  • +
  • payload (bytes) – RELAY{_EARLY,} cell content (default: b’‘)
  • +
  • stream_id (int) – RELAY{_EARLY,} stream ID (default: 0)
  • +
+
Returns:

an updated state

+
+

Note: returns an updated state that *MUST be used afterwards.*

+
+ +
+
+lightnion.hop.zlib_decompress(compressed_data, min_bufsize=32)[source]
+
+ +
+ +
+

lightnion.onion module

+
+
+lightnion.onion.build(state, command, payload=b'', stream_id=0)[source]
+

Build a RELAY{_EARLY,} cell.

+ +++ + + + + + +
Parameters:
    +
  • state – a state object (see onion.state)
  • +
  • command (str) – RELAY{_EARLY,} cell command (see cell.relay.cmd)
  • +
  • payload (bytes) – RELAY{_EARLY,} cell content (default: b’‘)
  • +
  • stream_id (int) – RELAY{_EARLY,} stream ID (default: 0)
  • +
+
Returns:

a tuple (updated state, cell)

+
+

Note: returns an updated state that MUST be used afterwards.

+
+ +
+
+lightnion.onion.core(state, command, payload=b'', stream_id=0)[source]
+

Build a RELAY{_EARLY,} cell as an onion core (plaintext w/ state)

+ +++ + + + + + +
Parameters:
    +
  • state – a state object (see onion.state)
  • +
  • command (str) – RELAY{_EARLY,} cell command (see cell.relay.cmd)
  • +
  • payload (bytes) – RELAY{_EARLY,} cell content (default: b’‘)
  • +
  • stream_id (int) – RELAY{_EARLY,} stream ID (default: 0)
  • +
+
Returns:

a tuple (updated state, cell)

+
+

Note: should not be called explicitly.

+
+ +
+
+lightnion.onion.peel(state, cell)[source]
+

Decrypt a RELAY{_EARLY,} cell using provided state.

+ +++ + + + + + +
Parameters:
    +
  • state – a state object (see onion.state)
  • +
  • cell – a RELAY{_EARLY,} cell object (see cell.relay.cell)
  • +
+
Returns:

a tuple (updated state, decrypted cell)

+
+

Note: returns an updated state that MUST be used afterwards.

+
+ +
+
+lightnion.onion.recognize(state, cell, backward=True)[source]
+

Attempt to recognize a RELAY{_EARLY,} cell.

+ +++ + + + + + +
Parameters:
    +
  • state – a state object (see onion.state)
  • +
  • cell – a RELAY{_EARLY,} cell object (see cell.relay.cell)
  • +
  • backward (bool) – is it backward? or else forward? (default: True)
  • +
+
Returns:

a tuple (updated state, bool)

+
+

Note: returns an updated state that MUST be used afterwards.

+
+ +
+
+class lightnion.onion.state(link, circuit, early_count=8)[source]
+

Bases: object

+

Handle Tor onion-encryption cryptographic states.

+

For now, only handle cryptography as an initiator (as an OP to an OR).

+

TODO: add support for __init__(link, circuit, initiator={True,False})

+
+
+
Status Condition
+
+
backward decryptor provided initiator=True
+
+
encryptor (none) initiator=False
+
digest provided
+
+
+
forward decryptor (none) initiator=False
+
+
encryptor provided initiator=True
+
digest provided
+
+
+
+
+
+
+depth
+

Number of inner layers in the onion.

+
+ +
+
+early_count
+

Number of remaining RELAY_EARLY cells before sending RELAY cells.

+
+ +
+
+wrap(inner)[source]
+

Wraps an inner state w/ self as outer state (see lightnion.extend).

+
+
Usage:
+
    +
  1. A one-hop circuit is build with stateA.
  2. +
  3. A key exchange is made through stateA to get stateB.
  4. +
  5. Then, call stateA.wrap(stateB) to properly wrap the onion.
  6. +
+
+
Usage:
+
    +
  1. A two-hop circuit is build with state{A,B}.
  2. +
  3. A key exchange is made through state{A,B} to get stateC.
  4. +
  5. Then, call statea.wrap(stateC) to properly wrap the onion.
  6. +
+
+
+

Note: should not be called explicitly.

+
+ +
+ +
+
+

lightnion.path_selection module

+
+
+lightnion.path_selection.in_same_family(r0, r1, r2=None)[source]
+

Check if r0 and r1 (and possibly r0 and r2) are in the same family or not +:param r0: the descriptor of the first router (the router we are trying to see if it meets all conditions to be chosen) +:param r1: the descriptor of the second router +:param r2: the descriptor of the third router (possibly none) +:return: a boolean

+
+ +
+
+lightnion.path_selection.keep_exit(router, state)[source]
+

Checks that the router is not a bad exit, is not down, is stable, +is valid, does not run an old TOR’s version, has an available ed25519 +identity key and has an ‘accept’ exit policy +:params router: the router we want to check +:state: +:return: tuple (boolean that indicates if we keep it, new state, descriptor)

+
+ +
+
+lightnion.path_selection.keep_exit_with_descr(descr, router, guard)[source]
+

Checks that the router is not a bad exit, is not down, is stable, +is valid, does not run an old TOR’s version, has an available ed25519 +identity key and has an ‘accept’ exit policy +:param descr: descriptor of the exit candidate. +:params router: the router we want to check +:param guard: the guard in the path +:return: tuple (boolean that indicates if we keep it, new state, descriptor)

+
+ +
+
+lightnion.path_selection.keep_guard(router, state, exit_node, testing)[source]
+

Checks that the given router has the properties to be a guard +:param router: the router that must be inspected +:param state: state +:param exit_node: the previously chosen node +:return: if the router can be kept, the updated state and the descriptor

+
+ +
+
+lightnion.path_selection.keep_guard_with_descr(descr, router, testing)[source]
+

Checks that the given router has the properties to be a guard +:param descr: descriptor of the exit candidate. +:param router: the router that must be inspected +:return: if the router can be kept, the updated state and the descriptor

+
+ +
+
+lightnion.path_selection.keep_middle(router, state, exit_node, guard, testing)[source]
+

Checks that the given router has the properties to be a middle node +:param router: the router that must be inspected +:param state: state +:param exit_node: the previously chosen exit node +:param guard: the previously chosen guard +:return: if the router can be kept, the updated state and the descriptor

+
+ +
+
+lightnion.path_selection.keep_middle_with_descr(descr, router, exit_node, guard, testing)[source]
+

Checks that the given router has the properties to be a middle node +:param descr: descriptor of the exit candidate. +:param router: the router that must be inspected +:param exit_node: the previously chosen exit node +:param guard: the previously chosen guard +:return: if the router can be kept, the updated state and the descriptor

+
+ +
+
+lightnion.path_selection.obey_minimal_constraint(router, exit_node=None, guard=None, testing=False)[source]
+

Checks if the given router respects the minimal constraints +:param testing: +:param router: router that must respect the constraints +:param exit_node: the chosen exit node +:param guard: the chosen guard node +:return: boolean

+
+ +
+
+lightnion.path_selection.pick_good_entry(routers, state, exit_node, testing)[source]
+

Simplified version of the Guard selection algorithm +:param routers: the routers of the consensus +:param state: the state +:return: updated state and the descriptor of the guard node

+
+ +
+
+lightnion.path_selection.pick_good_entry_from_routers(descr, routers, testing)[source]
+

Simplified version of the Guard selection algorithm +:param routers: the routers of the consensus +:param state: the state +:return: updated state and the descriptor of the guard node

+
+ +
+
+lightnion.path_selection.pick_good_exit(routers, state)[source]
+

Choose the exit node +:param routers: the routers given by the consensus +:param state: the state +:return: the descriptor of the exit node

+
+ +
+
+lightnion.path_selection.pick_good_exit_from_routers(descr, routers, guard)[source]
+

Choose the exit node +:param routers: the routers given by the consensus +:param guard: the guard in the path +:return: the descriptor of the exit node

+
+ +
+
+lightnion.path_selection.pick_good_middle(routers, state, exit_node, guard, testing)[source]
+

Choose the middle node given the exit and the guard node +:param routers: the routers of the consensus +:param state: the state +:param exit_node: the previously chosen exit node +:param guard: the previously chosen guard node +:return: updated state and the descriptor of the guard node

+
+ +
+
+lightnion.path_selection.pick_good_middle_from_routers(descr, routers, exit_node, guard, testing)[source]
+

Choose the middle node given the exit and the guard node +:param routers: the routers of the consensus +:param exit_node: the previously chosen exit node +:param guard: the previously chosen guard node +:return: updated state and the descriptor of the guard node

+
+ +
+
+lightnion.path_selection.select_end_path_from_consensus(cons, descr, guard, testing=False)[source]
+

Handle the selection of the middle and exit nodes +:params routers: list of the routers given by the consensus +:params descr: list of descriptors +:returns: tuple (guard, middle, exit)

+
+ +
+
+lightnion.path_selection.select_guard_from_consensus(cons, descr, testing=False)[source]
+

Handle the selection of the guard node +:params routers: list of the routers given by the consensus +:params descr: list of descriptors +:returns: tuple (guard, middle, exit)

+
+ +
+
+lightnion.path_selection.select_path(routers, state, testing=False)[source]
+

Handle the path selection +:params routers: list of the routers given by the consensus +:state: +:returns: updated state tuple (guard, middle, exit)

+
+ +
+
+lightnion.path_selection.weighted_random_choice(list_of_possible)[source]
+

Choose one of the candidates at random weighted by their (avg) bandwidth +:params list_of_possible: list of descriptors of the candidates +:returns: descriptor of the randomly selected router

+
+ +
+
+

lightnion.signature module

+
+
+lightnion.signature.get_binary_signature(fingerprint, signatures_and_key_digest)[source]
+

This function encodes a signature in base64 pem format into binary +:param fingerprint: the fingerprint of the author of the signature we want to encode +:param signatures_and_key_digest: the mapping from fingerprints to signature (and the signature key digest) +:return: the binary version of the signature

+
+ +
+
+lightnion.signature.get_hash(public_key, signature)[source]
+

This functions performs RSA on a binary signature +:param public_key: the key used to compute RSA +:param signature: the signature +:return: the binary digest of the signature

+
+ +
+
+lightnion.signature.get_signature_and_digests(remaining)[source]
+

Function that get the signature and the hex digests from the remaining part of the consensus +:param remaining: remaining (without the part that must be hashed) part of the consensus split by authority +:return: dictionary mapping the fingerprint of an authority and both its signature and the hex digest of its public +key

+
+ +
+
+lightnion.signature.verify(raw_cons, keys, minimal=0.5)[source]
+

This function verifies the given raw consensus

+
+
Note: TOR does not perform a full PKCS#1 v1.5 signature (RFC 2313) as mentioned in the TOR’s reference.
+
The padding of the data that must be signed is done following the reference (see subsection 8.1 of the +RFC 2313 for more details), however the digest is not wrapped into the data structure described in the +subsection 10.1.2. This is the reason why RSA is performed manually and the module PKCS1_v1_5 of pycrypto is +not used.
+
+ +++ + + + +
Parameters:
    +
  • raw_cons – the consensus we want to verify
  • +
  • keys – a dictionary of keys as retrieved by the function get_signing_keys_info of tools/keys.py
  • +
  • minimal – the minimal percentage of the authorities whose signatures must be verified in order to accept the
  • +
+
+

given consensus +:return: true if at least the minimal number of signatures are verified

+
+ +
+
+lightnion.signature.verify_format(padded_hash)[source]
+

This function verifies that the hash as the good format, i.e: +# 1 byte - [null ‘’] +# 1 byte - [block type identifier ‘’] - Should always be 1 +# N bytes - [padding ‘ÿ’ ] +# 1 byte - [separator ‘’ ] +# M bytes - [message] +:param padded_hash: +:return: true if the format is correct

+
+ +
+
+lightnion.signature.verify_key(actual, hex_digest)[source]
+

Function that verify that the downloaded key corresponds to the hex digest of the consensus +:param actual: the key with the format

+

—–BEGIN RSA PUBLIC KEY—–

+

base64 encoded key split on multiples lines ending with

+

—–END RSA PUBLIC KEY—–

+ +++ + + + + + +
Parameters:hex_digest – the sha1 digest of the key
Returns:true if the key is verified
+
+ +
+
+

lightnion.socket module

+
+
+lightnion.socket.cell_slice(payload, once=False)[source]
+
+ +
+
+class lightnion.socket.io(peer, daemon=True, period=0.01, max_fails=32, max_queue=2048, buffer_size=4096)[source]
+

Bases: object

+
+
+binding()[source]
+
+ +
+
+close()[source]
+
+ +
+
+dead
+
+ +
+
+pending
+
+ +
+
+recv(block=True)[source]
+
+ +
+
+send(payload, block=True)[source]
+
+ +
+ +
+
+class lightnion.socket.worker(peer, max_fails=32, max_queue=2048, buffer_size=4096)[source]
+

Bases: threading.Thread

+
+
+close()[source]
+
+ +
+
+die(e)[source]
+
+ +
+
+main()[source]
+
+ +
+
+recv(block=True)[source]
+
+ +
+
+run()[source]
+

Method representing the thread’s activity.

+

You may override this method in a subclass. The standard run() method +invokes the callable object passed to the object’s constructor as the +target argument, if any, with sequential and keyword arguments taken +from the args and kwargs arguments, respectively.

+
+ +
+
+send(cell, block=True)[source]
+
+ +
+ +
+
+

lightnion.utils module

+
+
+exception lightnion.utils.InvalidCellHeaderException(header)[source]
+

Bases: Exception

+
+ +
+
+exception lightnion.utils.InvalidCellLengthException[source]
+

Bases: Exception

+
+ +
+
+lightnion.utils.cell_get_cid(cell)[source]
+
+ +
+
+lightnion.utils.cell_get_cmd(cell)[source]
+
+ +
+
+lightnion.utils.cell_get_len(cell)[source]
+
+ +
+
+lightnion.utils.cell_is_valid(cell)[source]
+
+ +
+
+lightnion.utils.cell_is_variable_length(cmd)[source]
+
+ +
+
+lightnion.utils.cell_netinfo_build(host)[source]
+
+ +
+
+lightnion.utils.cell_pad_null(cell)[source]
+
+ +
+
+lightnion.utils.cell_pad_rnd(cell)[source]
+
+ +
+
+lightnion.utils.cell_set_cid(cell, cid)[source]
+
+ +
+
+lightnion.utils.cell_slice(payload)[source]
+

Retrieve the next cell from the payload and truncate that one. +:param payload: bytearray

+
+ +
+
+lightnion.utils.cell_slice_old(payload)[source]
+

Retrieve the next cell from the payload and truncate that one. +:param payload: bytearray

+
+ +
+
+lightnion.utils.cell_to_str(cell)[source]
+
+ +
+
+lightnion.utils.cell_version_build(versions)[source]
+
+ +
+
+lightnion.utils.cell_version_get_cmd(cell)[source]
+
+ +
+
+lightnion.utils.cell_version_get_len(cell)[source]
+
+ +
+
+lightnion.utils.cell_version_get_versions(cell)[source]
+
+ +
+
+lightnion.utils.cell_version_is_valid(cell)[source]
+
+ +
+
+lightnion.utils.cmd_to_str(cmd)[source]
+
+ +
+
+

Module contents

+
+
+ + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/lightnion.http.html b/docs/source/_build/html/lightnion.http.html new file mode 100644 index 0000000..8de4a13 --- /dev/null +++ b/docs/source/_build/html/lightnion.http.html @@ -0,0 +1,384 @@ + + + + + + + + + + + lightnion.http package — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

lightnion.http package

+
+

Submodules

+
+
+

lightnion.http.ntor module

+
+
+lightnion.http.ntor.hand(guard, encode=True)[source]
+
+ +
+
+lightnion.http.ntor.shake(payload, material)[source]
+
+ +
+
+

lightnion.http.polling module

+
+
+class lightnion.http.polling.io(endpoint, period=0.1, daemon=True, max_queue=2048)[source]
+

Bases: object

+
+
+close()[source]
+
+ +
+
+dead
+
+ +
+
+recv(block=True)[source]
+
+ +
+
+send(payload, block=True)[source]
+
+ +
+ +
+
+class lightnion.http.polling.worker(endpoint, period, max_queue=2048)[source]
+

Bases: threading.Thread

+
+
+close()[source]
+
+ +
+
+die(e)[source]
+
+ +
+
+main()[source]
+
+ +
+
+recv(block=True)[source]
+
+ +
+
+run()[source]
+

Method representing the thread’s activity.

+

You may override this method in a subclass. The standard run() method +invokes the callable object passed to the object’s constructor as the +target argument, if any, with sequential and keyword arguments taken +from the args and kwargs arguments, respectively.

+
+ +
+
+send(cell, block=True)[source]
+
+ +
+ +
+
+

lightnion.http.websocket module

+
+
+lightnion.http.websocket.channel_handler(websocket, worker)[source]
+
+ +
+
+lightnion.http.websocket.client(worker)[source]
+
+ +
+
+lightnion.http.websocket.incoming(websocket, worker)[source]
+
+ +
+
+class lightnion.http.websocket.io(endpoint, period=0.1, daemon=True, max_queue=2048)[source]
+

Bases: object

+
+
+close()[source]
+
+ +
+
+dead
+
+ +
+
+recv(block=True)[source]
+
+ +
+
+send(payload, block=True)[source]
+
+ +
+ +
+
+lightnion.http.websocket.outcoming(websocket, worker)[source]
+
+ +
+
+class lightnion.http.websocket.worker(endpoint, period, max_queue=2048)[source]
+

Bases: threading.Thread

+
+
+close()[source]
+
+ +
+
+die(e)[source]
+
+ +
+
+recv(block=True)[source]
+
+ +
+
+run()[source]
+

Method representing the thread’s activity.

+

You may override this method in a subclass. The standard run() method +invokes the callable object passed to the object’s constructor as the +target argument, if any, with sequential and keyword arguments taken +from the args and kwargs arguments, respectively.

+
+ +
+
+send(cell, block=True)[source]
+
+ +
+ +
+
+

Module contents

+
+
+class lightnion.http.channel[source]
+

Bases: lightnion.http.channel

+
+ +
+
+lightnion.http.client(host, port=80, *, io, prefix='http', failures=5, **kwargs)[source]
+
+ +
+
+ + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/lightnion.proxy.html b/docs/source/_build/html/lightnion.proxy.html new file mode 100644 index 0000000..7f91973 --- /dev/null +++ b/docs/source/_build/html/lightnion.proxy.html @@ -0,0 +1,675 @@ + + + + + + + + + + + lightnion.proxy package — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

lightnion.proxy package

+
+

Submodules

+
+
+

lightnion.proxy.auth module

+
+
+lightnion.proxy.auth.filename(auth_dir, filename, base_dir=None)[source]
+
+ +
+
+lightnion.proxy.auth.genpkey(auth_dir, base_dir=None)[source]
+
+ +
+
+lightnion.proxy.auth.getpkey(auth_dir, base_dir=None)[source]
+
+ +
+
+class lightnion.proxy.auth.material[source]
+

Bases: lightnion.proxy.auth.material

+
+
+perform(client, data)[source]
+
+ +
+
+public
+
+ +
+
+suffix
+
+ +
+ +
+
+

lightnion.proxy.forward module

+
+
+class lightnion.proxy.forward.clerk(slave_node, control_port, dir_port, compute_path, auth_dir=None)[source]
+

Bases: object

+
+
+get_descriptor_unflavoured(router)[source]
+

Retrieve a descriptor. +:param router: Router from which we want the descriptor. +:return: the descriptor of the given router.

+
+ +
+
+get_guard()[source]
+

Generate a guard +:return: guard node

+
+ +
+
+prepare()[source]
+
+ +
+
+retrieve_consensus()[source]
+

Retrieve relays data with direct HTTP connection and schedule its future retrival.

+
+ +
+
+wait_for_consensus()[source]
+

Ensure a consensus is present in the clerk, and fetch a new one if it is not.

+
+ +
+ +
+
+lightnion.proxy.forward.create_channel()[source]
+

Create a channel.

+
+ +
+
+lightnion.proxy.forward.delete_channel(uid)[source]
+

Delete a channel. +:param uid: channel identifier

+
+ +
+
+lightnion.proxy.forward.get_consensus()[source]
+

Retrieve consensus.

+
+ +
+
+lightnion.proxy.forward.get_consensus_raw(flavor)[source]
+

Retrieve raw consensus.

+
+ +
+
+lightnion.proxy.forward.get_descriptors()[source]
+
+ +
+
+lightnion.proxy.forward.get_descriptors_raw(flavor)[source]
+
+ +
+
+lightnion.proxy.forward.get_guard()[source]
+

Retrieve guard descriptor.

+
+ +
+
+lightnion.proxy.forward.get_signing_keys()[source]
+

Retrieve signing keys to verify consensus.

+
+ +
+
+lightnion.proxy.forward.loop_signal_handler(signum, loop)[source]
+

Handler to stop coroutines.

+
+ +
+
+lightnion.proxy.forward.main(port, slave_node, control_port, dir_port, compute_path, auth_dir=None)[source]
+

Entry point

+
+ +
+
+

lightnion.proxy.jobs module

+
+
+class lightnion.proxy.jobs.Channel(token, cid)[source]
+

Bases: object

+
+ +
+
+exception lightnion.proxy.jobs.ChannelDoesNotExistException(channel)[source]
+

Bases: Exception

+
+ +
+
+class lightnion.proxy.jobs.ChannelManager[source]
+

Bases: object

+

Channel manager

+
+
+create_channel(consensus, descriptors, select_path)[source]
+

Create a new channel. +:param ntor: First part of the ntor handshake provided by the client. +:param consensus: The current consensus. +:param descriptors: A collection of the current descriptors. +:return: Response to be send to the client

+
+ +
+
+crypto = <lightnion.proxy.parts.crypto object>
+
+ +
+
+delete_channel(channel)[source]
+

Delete a given channel if it is managed by the channel manager, do nothing otherwise. +:param channel: Channel to be deleted.

+
+ +
+
+destroy_circuit_from_client(channel)[source]
+

Destroy a circuit corresponding to a channel as if the order was comming from the client side. +:param channel: Channel handling the circuit to be destroyed.

+
+ +
+ +

Destroy a circuit corresponding to a channel as if the order was comming from the link side. +:param channel: Channel handling the circuit to be destroyed.

+
+ +
+
+gen_token_from_cid(cid)[source]
+

Produce a token from a circuit id. +:param cid: circuit id used to generate the token.

+
+ +
+
+get_channel_by_token(token)[source]
+

Get a channel by its token. +:param token: Token identifying the channel.

+
+ +
+ +

Reset the link used the channel handler. +:param link: Link to use. +:param rnd_gen: Method to generate a random number to initialize the token generator.

+
+ +
+
+schedule_to_send(cell, cid)[source]
+

Scedule the data to be send to the correct channel. +:param cell: cell to be send.

+
+ +
+ +

Set a link to be used by the channel handler. +:param link: Link to use. +:param rnd_gen: Method to generate a random number to initialize the token generator.

+
+ +
+ +
+
+exception lightnion.proxy.jobs.CircuitDoesNotExistException(cid)[source]
+

Bases: Exception

+
+ +
+
+exception lightnion.proxy.jobs.InvalidTokenException(token)[source]
+

Bases: Exception

+
+ +
+
+exception lightnion.proxy.jobs.LinkAlreadyInitializedException[source]
+

Bases: Exception

+
+ +
+
+exception lightnion.proxy.jobs.LinkNotInitializedException[source]
+

Bases: Exception

+
+ +
+
+class lightnion.proxy.jobs.WebsocketManager(host='0.0.0.0', port=8765, timeout=60)[source]
+

Bases: object

+
+
+prefix = '/lightnion/api/v0.1/channels/'
+
+ +
+
+prefix_len = 29
+
+ +
+
+serve(loop)[source]
+

Create and start a websocket server, then wait for it to close. +:param host: host on which the websocket need to run. +:param port: port on which the websocket is listening.

+
+ +
+
+set_channel_manager(channel_manager)[source]
+

Set the channel manager to use for dispatching data. +:param channel_manager: The channel manager to use.

+
+ +
+
+stop()[source]
+
+ +
+ +
+
+lightnion.proxy.jobs.dummy_random_gen()[source]
+
+ +
+ +
+

lightnion.proxy.parts module

+
+
+class lightnion.proxy.parts.crypto[source]
+

Bases: object

+
+
+compute_token(circuit_id, binding)[source]
+
+ +
+
+decrypt_token(token, binding)[source]
+
+ +
+ +
+
+

lightnion.proxy.path module

+
+
+lightnion.proxy.path.convert(*entries, consensus, expect='fetch_format')[source]
+
+ +
+
+lightnion.proxy.path.emitter(output_queue, kill_queue, control_host, control_port, batch=32, target=1024, nb_worker=2)[source]
+
+ +
+
+lightnion.proxy.path.fetch(batch=32, target=1024, nb_worker=2, tor_process=None, socks_port=None, control_host='127.0.0.1', control_port=None)[source]
+
+ +
+
+lightnion.proxy.path.get_tor(control_port=9051, socks_port=9050, msg_handler=None)[source]
+
+ +
+
+class lightnion.proxy.path.producer(process, path_queue, kill_queue, tor_process)[source]
+

Bases: object

+
+
+close()[source]
+
+ +
+
+dead
+
+ +
+
+empty
+
+ +
+
+get()[source]
+
+ +
+ +
+
+class lightnion.proxy.path.worker(host, port, barrier, path_queue, batch_size)[source]
+

Bases: threading.Thread

+
+
+run()[source]
+

Method representing the thread’s activity.

+

You may override this method in a subclass. The standard run() method +invokes the callable object passed to the object’s constructor as the +target argument, if any, with sequential and keyword arguments taken +from the args and kwargs arguments, respectively.

+
+ +
+ +
+
+

lightnion.proxy.relayinfo module

+
+
+lightnion.proxy.relayinfo.get_relay_info(port, password=None, params=None)[source]
+

Retrieve some info from the relay.

+
+ +
+
+

Module contents

+
+
+ + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/lightnion.tests.html b/docs/source/_build/html/lightnion.tests.html new file mode 100644 index 0000000..a5deebe --- /dev/null +++ b/docs/source/_build/html/lightnion.tests.html @@ -0,0 +1,320 @@ + + + + + + + + + + + lightnion.tests package — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

lightnion.tests package

+
+

Submodules

+
+
+

lightnion.tests.path_selection_test module

+
+
+lightnion.tests.path_selection_test.get_chutney_consensus()[source]
+

Get chutney’s consensus

+
+ +
+
+lightnion.tests.path_selection_test.test_keep_exit_works_with_reject_exit_policy(get_chutney_consensus)[source]
+
+ +
+
+lightnion.tests.path_selection_test.test_keep_exit_works_with_suitable_router(get_chutney_consensus)[source]
+
+ +
+
+lightnion.tests.path_selection_test.test_obey_minimal_constraint_with_one_router(get_chutney_consensus)[source]
+
+ +
+
+lightnion.tests.path_selection_test.test_path_selection_works(get_chutney_consensus)[source]
+
+ +
+
+lightnion.tests.path_selection_test.test_pick_good_exit_returns_a_router(get_chutney_consensus)[source]
+
+ +
+
+

lightnion.tests.test_consensus_chutney module

+
+
+lightnion.tests.test_consensus_chutney.test_download_microdesc()[source]
+
+ +
+
+lightnion.tests.test_consensus_chutney.test_download_unflavored()[source]
+
+ +
+
+

lightnion.tests.test_create_chutney module

+
+
+lightnion.tests.test_create_chutney.test_fast()[source]
+
+ +
+
+lightnion.tests.test_create_chutney.test_ntor()[source]
+
+ +
+
+

lightnion.tests.test_descriptors_chutney module

+
+
+lightnion.tests.test_descriptors_chutney.test_download_authority()[source]
+
+ +
+
+lightnion.tests.test_descriptors_chutney.test_download_microdesc()[source]
+
+ +
+
+lightnion.tests.test_descriptors_chutney.test_download_unflavored()[source]
+
+ +
+
+

lightnion.tests.test_extend_chutney module

+
+
+lightnion.tests.test_extend_chutney.test_circuit()[source]
+
+ +
+
+

lightnion.tests.test_hop_chutney module

+
+
+lightnion.tests.test_hop_chutney.test_directory_query()[source]
+
+ +
+ +
+

lightnion.tests.test_path_selection_chutney module

+
+
+lightnion.tests.test_path_selection_chutney.test_select_path()[source]
+
+ +
+
+

Module contents

+
+
+ + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/modules.html b/docs/source/_build/html/modules.html new file mode 100644 index 0000000..697787a --- /dev/null +++ b/docs/source/_build/html/modules.html @@ -0,0 +1,277 @@ + + + + + + + + + + + lightnion — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

lightnion

+
+ +
+
+ + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/objects.inv b/docs/source/_build/html/objects.inv new file mode 100644 index 0000000..fb73ac7 Binary files /dev/null and b/docs/source/_build/html/objects.inv differ diff --git a/docs/source/_build/html/py-modindex.html b/docs/source/_build/html/py-modindex.html new file mode 100644 index 0000000..6e6cbc4 --- /dev/null +++ b/docs/source/_build/html/py-modindex.html @@ -0,0 +1,480 @@ + + + + + + + + + + + Python Module Index — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Python Module Index
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ + +

Python Module Index

+ +
+ l +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ l
+ lightnion +
    + lightnion.cache +
    + lightnion.cell +
    + lightnion.cell.address +
    + lightnion.cell.certs +
    + lightnion.cell.challenge +
    + lightnion.cell.common +
    + lightnion.cell.create2 +
    + lightnion.cell.create_fast +
    + lightnion.cell.created2 +
    + lightnion.cell.created_fast +
    + lightnion.cell.destroy +
    + lightnion.cell.netinfo +
    + lightnion.cell.padding +
    + lightnion.cell.relay +
    + lightnion.cell.relay.extend2 +
    + lightnion.cell.relay.extended2 +
    + lightnion.cell.relay_early +
    + lightnion.cell.versions +
    + lightnion.cell.view +
    + lightnion.consensus +
    + lightnion.constants +
    + lightnion.create +
    + lightnion.crypto +
    + lightnion.crypto.kdf +
    + lightnion.crypto.ntor +
    + lightnion.descriptors +
    + lightnion.extend +
    + lightnion.hop +
    + lightnion.http +
    + lightnion.http.ntor +
    + lightnion.http.polling +
    + lightnion.http.websocket +
    + lightnion.link +
    + lightnion.onion +
    + lightnion.path_selection +
    + lightnion.proxy +
    + lightnion.proxy.auth +
    + lightnion.proxy.forward +
    + lightnion.proxy.jobs +
    + lightnion.proxy.link +
    + lightnion.proxy.parts +
    + lightnion.proxy.path +
    + lightnion.proxy.relayinfo +
    + lightnion.signature +
    + lightnion.socket +
    + lightnion.tests +
    + lightnion.tests.path_selection_test +
    + lightnion.tests.test_consensus_chutney +
    + lightnion.tests.test_create_chutney +
    + lightnion.tests.test_descriptors_chutney +
    + lightnion.tests.test_extend_chutney +
    + lightnion.tests.test_hop_chutney +
    + lightnion.tests.test_link_chutney +
    + lightnion.tests.test_path_selection_chutney +
    + lightnion.utils +
+ + +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/search.html b/docs/source/_build/html/search.html new file mode 100644 index 0000000..8b9ae17 --- /dev/null +++ b/docs/source/_build/html/search.html @@ -0,0 +1,206 @@ + + + + + + + + + + + Search — Lightnion documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Search
  • + + +
  • + + + +
  • + +
+ + +
+
+
+
+ + + + +
+ +
+ +
+ +
+
+ + +
+ +
+

+ © Copyright 2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu + +

+
+ Built with Sphinx using a theme provided by Read the Docs. + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/source/_build/html/searchindex.js b/docs/source/_build/html/searchindex.js new file mode 100644 index 0000000..1e2a794 --- /dev/null +++ b/docs/source/_build/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({docnames:["index","install","lightnion","lightnion.cell","lightnion.cell.relay","lightnion.crypto","lightnion.http","lightnion.proxy","lightnion.tests","modules"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:55},filenames:["index.rst","install.rst","lightnion.rst","lightnion.cell.rst","lightnion.cell.relay.rst","lightnion.crypto.rst","lightnion.http.rst","lightnion.proxy.rst","lightnion.tests.rst","modules.rst"],objects:{"":{lightnion:[2,0,0,"-"]},"lightnion.cache":{consensus:[2,1,1,""],descriptors:[2,1,1,""],directory:[2,3,1,""],purge:[2,3,1,""]},"lightnion.cache.consensus":{filename:[2,2,1,""],get:[2,2,1,""],put:[2,2,1,""]},"lightnion.cache.descriptors":{filename:[2,2,1,""],get:[2,2,1,""],put:[2,2,1,""]},"lightnion.cell":{address:[3,0,0,"-"],cell_view:[3,1,1,""],certs:[3,0,0,"-"],challenge:[3,0,0,"-"],cmd:[3,1,1,""],common:[3,0,0,"-"],create2:[3,0,0,"-"],create_fast:[3,0,0,"-"],created2:[3,0,0,"-"],created_fast:[3,0,0,"-"],destroy:[3,0,0,"-"],netinfo:[3,0,0,"-"],pad:[3,3,1,""],padding:[3,0,0,"-"],relay:[4,0,0,"-"],relay_early:[3,0,0,"-"],versions:[3,0,0,"-"],view:[3,0,0,"-"]},"lightnion.cell.address":{addr_type:[3,1,1,""],address_view:[3,1,1,""],pack:[3,3,1,""]},"lightnion.cell.address.addr_type":{ERROR_NON_TRANS:[3,4,1,""],ERROR_TRANS:[3,4,1,""],HOSTNAME:[3,4,1,""],IPV4_ADDR:[3,4,1,""],IPV6_ADDR:[3,4,1,""]},"lightnion.cell.cell_view":{valid:[3,5,1,""]},"lightnion.cell.certs":{cell_view:[3,1,1,""],cert_type:[3,1,1,""]},"lightnion.cell.certs.cell_view":{valid:[3,5,1,""]},"lightnion.cell.certs.cert_type":{ED_SIGNED_AUTHENTICATE:[3,4,1,""],ED_SIGNED_SIGNING_KEY:[3,4,1,""],ED_SIGNED_TLS_LINK:[3,4,1,""],RSA_SELF_SIGNED_IDENTITY:[3,4,1,""],RSA_SIGNED_AUTHENTICATE:[3,4,1,""],RSA_SIGNED_ED_IDENTITY:[3,4,1,""],RSA_SIGNED_LINK_KEY:[3,4,1,""]},"lightnion.cell.challenge":{auth_type:[3,1,1,""],cell_view:[3,1,1,""],pack:[3,3,1,""]},"lightnion.cell.challenge.auth_type":{ED_AUTH:[3,4,1,""],RSA_AUTH:[3,4,1,""]},"lightnion.cell.challenge.cell_view":{valid:[3,5,1,""]},"lightnion.cell.cmd":{AUTHENTICATE:[3,4,1,""],AUTHORIZE:[3,4,1,""],AUTH_CHALLENGE:[3,4,1,""],CERTS:[3,4,1,""],CREATE2:[3,4,1,""],CREATE:[3,4,1,""],CREATED2:[3,4,1,""],CREATED:[3,4,1,""],CREATED_FAST:[3,4,1,""],CREATE_FAST:[3,4,1,""],DESTROY:[3,4,1,""],NETINFO:[3,4,1,""],PADDING:[3,4,1,""],PADDING_NEGOTIATE:[3,4,1,""],RELAY:[3,4,1,""],RELAY_EARLY:[3,4,1,""],VERSIONS:[3,4,1,""],VPADDING:[3,4,1,""],is_fixed:[3,4,1,""],is_variable:[3,4,1,""]},"lightnion.cell.common":{length_halved_view:[3,1,1,""]},"lightnion.cell.common.length_halved_view":{cache:[3,5,1,""],iseven:[3,5,1,""],valid:[3,5,1,""],write:[3,5,1,""]},"lightnion.cell.create2":{cell_view:[3,1,1,""],create_view:[3,1,1,""],pack:[3,3,1,""]},"lightnion.cell.create2.cell_view":{valid:[3,5,1,""]},"lightnion.cell.create_fast":{cell_view:[3,1,1,""],pack:[3,3,1,""]},"lightnion.cell.create_fast.cell_view":{valid:[3,5,1,""]},"lightnion.cell.created2":{cell_view:[3,1,1,""],created_view:[3,1,1,""]},"lightnion.cell.created2.cell_view":{valid:[3,5,1,""]},"lightnion.cell.created_fast":{cell_view:[3,1,1,""],pack:[3,3,1,""]},"lightnion.cell.created_fast.cell_view":{valid:[3,5,1,""]},"lightnion.cell.destroy":{cell_view:[3,1,1,""],pack:[3,3,1,""],reason:[3,1,1,""]},"lightnion.cell.destroy.cell_view":{valid:[3,5,1,""]},"lightnion.cell.destroy.reason":{CONNECTFAILED:[3,4,1,""],DESTROYED:[3,4,1,""],FINISHED:[3,4,1,""],HIBERNATING:[3,4,1,""],INTERNAL:[3,4,1,""],NONE:[3,4,1,""],NOSUCHSERVICE:[3,4,1,""],OR_CONN_CLOSED:[3,4,1,""],OR_IDENTITY:[3,4,1,""],PROTOCOL:[3,4,1,""],REQUESTED:[3,4,1,""],RESOURCELIMIT:[3,4,1,""],TIMEOUT:[3,4,1,""]},"lightnion.cell.netinfo":{cell_view:[3,1,1,""],pack:[3,3,1,""]},"lightnion.cell.netinfo.cell_view":{valid:[3,5,1,""]},"lightnion.cell.padding":{cell_view:[3,1,1,""],pack:[3,3,1,""]},"lightnion.cell.padding.cell_view":{valid:[3,5,1,""]},"lightnion.cell.relay":{cell_view:[4,1,1,""],cmd:[4,1,1,""],extend2:[4,0,0,"-"],extended2:[4,0,0,"-"],pack:[4,3,1,""],relay_view:[4,1,1,""]},"lightnion.cell.relay.cell_view":{valid:[4,5,1,""]},"lightnion.cell.relay.cmd":{RELAY_BEGIN:[4,4,1,""],RELAY_BEGIN_DIR:[4,4,1,""],RELAY_CONNECTED:[4,4,1,""],RELAY_DATA:[4,4,1,""],RELAY_DROP:[4,4,1,""],RELAY_END:[4,4,1,""],RELAY_EXTEND2:[4,4,1,""],RELAY_EXTEND:[4,4,1,""],RELAY_EXTENDED2:[4,4,1,""],RELAY_EXTENDED:[4,4,1,""],RELAY_RESOLVE:[4,4,1,""],RELAY_RESOLVED:[4,4,1,""],RELAY_SENDME:[4,4,1,""],RELAY_TRUNCATE:[4,4,1,""],RELAY_TRUNCATED:[4,4,1,""],is_backward:[4,4,1,""],is_circuit:[4,4,1,""],is_control:[4,4,1,""],is_forward:[4,4,1,""]},"lightnion.cell.relay.extend2":{extend2_view:[4,1,1,""],handshake_type:[4,1,1,""],linkspec_type:[4,1,1,""],linkspec_view:[4,1,1,""],linkspecs_view:[4,1,1,""],pack:[4,3,1,""]},"lightnion.cell.relay.extend2.handshake_type":{NTOR:[4,4,1,""]},"lightnion.cell.relay.extend2.linkspec_type":{ED_ID:[4,4,1,""],LEGACY_ID:[4,4,1,""],TLS_TCP_4:[4,4,1,""],TLS_TCP_6:[4,4,1,""]},"lightnion.cell.relay.extended2":{extended2_view:[4,1,1,""]},"lightnion.cell.relay.relay_view":{valid:[4,5,1,""]},"lightnion.cell.relay_early":{cell_view:[3,1,1,""],pack:[3,3,1,""]},"lightnion.cell.relay_early.cell_view":{valid:[3,5,1,""]},"lightnion.cell.versions":{cell_view:[3,1,1,""],pack:[3,3,1,""],recv:[3,3,1,""],send:[3,3,1,""]},"lightnion.cell.versions.cell_view":{valid:[3,5,1,""]},"lightnion.cell.view":{"enum":[3,3,1,""],basic:[3,1,1,""],bind:[3,3,1,""],cache:[3,3,1,""],codec:[3,1,1,""],composite:[3,1,1,""],data:[3,1,1,""],fields:[3,1,1,""],ip_address:[3,1,1,""],iscached:[3,3,1,""],iscomposite:[3,3,1,""],isview:[3,3,1,""],like:[3,3,1,""],packet:[3,1,1,""],series:[3,1,1,""],uint:[3,1,1,""],union:[3,1,1,""],wrapper:[3,1,1,""]},"lightnion.cell.view.basic":{valid:[3,5,1,""],value:[3,5,1,""],width:[3,5,1,""],write:[3,5,1,""]},"lightnion.cell.view.codec":{valid:[3,5,1,""],value:[3,5,1,""],write:[3,5,1,""]},"lightnion.cell.view.composite":{write:[3,5,1,""]},"lightnion.cell.view.data":{size:[3,4,1,""],valid:[3,5,1,""],value:[3,5,1,""],width:[3,5,1,""],write:[3,5,1,""]},"lightnion.cell.view.fields":{list_fields:[3,5,1,""],offset:[3,5,1,""],valid:[3,5,1,""],value:[3,5,1,""],visit:[3,5,1,""],width:[3,5,1,""],write:[3,5,1,""]},"lightnion.cell.view.ip_address":{valid:[3,5,1,""],value:[3,5,1,""],write:[3,5,1,""]},"lightnion.cell.view.packet":{cache_fields:[3,5,1,""],fixed_size:[3,4,1,""],list_fields:[3,5,1,""],offset:[3,5,1,""],valid:[3,5,1,""],value:[3,5,1,""],width:[3,5,1,""],write:[3,5,1,""]},"lightnion.cell.view.series":{max_quantity:[3,4,1,""],offset:[3,5,1,""],quantity:[3,4,1,""],valid:[3,5,1,""],value:[3,5,1,""],width:[3,5,1,""],write:[3,5,1,""]},"lightnion.cell.view.uint":{valid:[3,5,1,""],value:[3,5,1,""],width:[3,5,1,""],write:[3,5,1,""]},"lightnion.cell.view.union":{active_view:[3,4,1,""],offset:[3,5,1,""],tag:[3,4,1,""],valid:[3,5,1,""],value:[3,5,1,""],width:[3,5,1,""],write:[3,5,1,""]},"lightnion.cell.view.wrapper":{fields:[3,4,1,""],finalize:[3,5,1,""],offset:[3,5,1,""],raw:[3,4,1,""],set:[3,5,1,""],truncated:[3,4,1,""],valid:[3,4,1,""],value:[3,5,1,""],width:[3,4,1,""],write:[3,5,1,""]},"lightnion.consensus":{consume_dir_sources:[2,3,1,""],consume_footer:[2,3,1,""],consume_headers:[2,3,1,""],consume_http:[2,3,1,""],consume_routers:[2,3,1,""],download:[2,3,1,""],download_direct:[2,3,1,""],download_raw:[2,3,1,""],extract_date:[2,3,1,""],extract_nodes_digests_micro:[2,3,1,""],extract_nodes_digests_unflavored:[2,3,1,""],load:[2,3,1,""],parse:[2,3,1,""],parse_address:[2,3,1,""],parse_base64:[2,3,1,""],parse_fingerprint:[2,3,1,""],parse_params:[2,3,1,""],parse_range_once:[2,3,1,""],parse_ranges:[2,3,1,""],parse_time:[2,3,1,""],scrap:[2,3,1,""],scrap_signature:[2,3,1,""]},"lightnion.constants":{flow:[2,1,1,""]},"lightnion.constants.flow":{circuit:[2,1,1,""],stream:[2,1,1,""]},"lightnion.constants.flow.circuit":{"default":[2,4,1,""],increment:[2,4,1,""],lowlimit:[2,4,1,""]},"lightnion.constants.flow.stream":{"default":[2,4,1,""],increment:[2,4,1,""],lowlimit:[2,4,1,""]},"lightnion.create":{circuit:[2,1,1,""],fast:[2,3,1,""],fast_async:[2,3,1,""],ntor:[2,3,1,""],ntor_async:[2,3,1,""],ntor_handshake:[2,3,1,""],ntor_raw2:[2,3,1,""],ntor_raw:[2,3,1,""]},"lightnion.create.circuit":{destroyed:[2,4,1,""],get:[2,5,1,""],last_stream_id:[2,4,1,""],put:[2,5,1,""],queue:[2,4,1,""],reason:[2,4,1,""],stream_windows:[2,4,1,""],window:[2,4,1,""]},"lightnion.crypto":{kdf:[5,0,0,"-"],ntor:[5,0,0,"-"]},"lightnion.crypto.kdf":{kdf_tor:[5,1,1,""]},"lightnion.crypto.ntor":{h_mac:[5,3,1,""],h_verify:[5,3,1,""],hand:[5,3,1,""],hmac:[5,1,1,""],kdf:[5,1,1,""],server:[5,3,1,""],shake:[5,3,1,""]},"lightnion.crypto.ntor.hmac":{block_size:[5,4,1,""],digest:[5,2,1,""],output_size:[5,4,1,""],prf:[5,5,1,""],tweaked:[5,2,1,""]},"lightnion.crypto.ntor.kdf":{ntor:[5,2,1,""],rfc5869:[5,2,1,""]},"lightnion.descriptors":{batch_query:[2,3,1,""],compute_descriptor_digest:[2,3,1,""],consume_descriptors:[2,3,1,""],download:[2,3,1,""],download_authority:[2,3,1,""],download_authority_direct:[2,3,1,""],download_direct:[2,3,1,""],download_raw:[2,3,1,""],download_raw_by_digests_micro:[2,3,1,""],download_raw_by_digests_unflavored:[2,3,1,""],download_relay_descriptor:[2,3,1,""],filter_descriptors:[2,3,1,""],parse_descriptors:[2,3,1,""]},"lightnion.extend":{circuit:[2,3,1,""]},"lightnion.hop":{directory_query:[2,3,1,""],recv:[2,3,1,""],send:[2,3,1,""],zlib_decompress:[2,3,1,""]},"lightnion.http":{channel:[6,1,1,""],client:[6,3,1,""],ntor:[6,0,0,"-"],polling:[6,0,0,"-"],websocket:[6,0,0,"-"]},"lightnion.http.ntor":{hand:[6,3,1,""],shake:[6,3,1,""]},"lightnion.http.polling":{io:[6,1,1,""],worker:[6,1,1,""]},"lightnion.http.polling.io":{close:[6,5,1,""],dead:[6,4,1,""],recv:[6,5,1,""],send:[6,5,1,""]},"lightnion.http.polling.worker":{close:[6,5,1,""],die:[6,5,1,""],main:[6,5,1,""],recv:[6,5,1,""],run:[6,5,1,""],send:[6,5,1,""]},"lightnion.http.websocket":{channel_handler:[6,3,1,""],client:[6,3,1,""],incoming:[6,3,1,""],io:[6,1,1,""],outcoming:[6,3,1,""],worker:[6,1,1,""]},"lightnion.http.websocket.io":{close:[6,5,1,""],dead:[6,4,1,""],recv:[6,5,1,""],send:[6,5,1,""]},"lightnion.http.websocket.worker":{close:[6,5,1,""],die:[6,5,1,""],recv:[6,5,1,""],run:[6,5,1,""],send:[6,5,1,""]},"lightnion.link":{initiate:[2,3,1,""],link:[2,1,1,""],negotiate_version:[2,3,1,""]},"lightnion.link.link":{close:[2,5,1,""],get:[2,5,1,""],pull:[2,5,1,""],put:[2,5,1,""],recv:[2,5,1,""],register:[2,5,1,""],send:[2,5,1,""],unregister:[2,5,1,""]},"lightnion.onion":{build:[2,3,1,""],core:[2,3,1,""],peel:[2,3,1,""],recognize:[2,3,1,""],state:[2,1,1,""]},"lightnion.onion.state":{depth:[2,4,1,""],early_count:[2,4,1,""],wrap:[2,5,1,""]},"lightnion.path_selection":{in_same_family:[2,3,1,""],keep_exit:[2,3,1,""],keep_exit_with_descr:[2,3,1,""],keep_guard:[2,3,1,""],keep_guard_with_descr:[2,3,1,""],keep_middle:[2,3,1,""],keep_middle_with_descr:[2,3,1,""],obey_minimal_constraint:[2,3,1,""],pick_good_entry:[2,3,1,""],pick_good_entry_from_routers:[2,3,1,""],pick_good_exit:[2,3,1,""],pick_good_exit_from_routers:[2,3,1,""],pick_good_middle:[2,3,1,""],pick_good_middle_from_routers:[2,3,1,""],select_end_path_from_consensus:[2,3,1,""],select_guard_from_consensus:[2,3,1,""],select_path:[2,3,1,""],weighted_random_choice:[2,3,1,""]},"lightnion.proxy":{auth:[7,0,0,"-"],forward:[7,0,0,"-"],jobs:[7,0,0,"-"],link:[7,0,0,"-"],parts:[7,0,0,"-"],path:[7,0,0,"-"],relayinfo:[7,0,0,"-"]},"lightnion.proxy.auth":{filename:[7,3,1,""],genpkey:[7,3,1,""],getpkey:[7,3,1,""],material:[7,1,1,""]},"lightnion.proxy.auth.material":{"public":[7,4,1,""],perform:[7,5,1,""],suffix:[7,4,1,""]},"lightnion.proxy.forward":{clerk:[7,1,1,""],create_channel:[7,3,1,""],delete_channel:[7,3,1,""],get_consensus:[7,3,1,""],get_consensus_raw:[7,3,1,""],get_descriptors:[7,3,1,""],get_descriptors_raw:[7,3,1,""],get_guard:[7,3,1,""],get_signing_keys:[7,3,1,""],loop_signal_handler:[7,3,1,""],main:[7,3,1,""]},"lightnion.proxy.forward.clerk":{get_descriptor_unflavoured:[7,5,1,""],get_guard:[7,5,1,""],prepare:[7,5,1,""],retrieve_consensus:[7,5,1,""],wait_for_consensus:[7,5,1,""]},"lightnion.proxy.jobs":{Channel:[7,1,1,""],ChannelDoesNotExistException:[7,6,1,""],ChannelManager:[7,1,1,""],CircuitDoesNotExistException:[7,6,1,""],InvalidTokenException:[7,6,1,""],LinkAlreadyInitializedException:[7,6,1,""],LinkNotInitializedException:[7,6,1,""],WebsocketManager:[7,1,1,""],dummy_random_gen:[7,3,1,""]},"lightnion.proxy.jobs.ChannelManager":{create_channel:[7,5,1,""],crypto:[7,4,1,""],delete_channel:[7,5,1,""],destroy_circuit_from_client:[7,5,1,""],destroy_circuit_from_link:[7,5,1,""],gen_token_from_cid:[7,5,1,""],get_channel_by_token:[7,5,1,""],reset_link:[7,5,1,""],schedule_to_send:[7,5,1,""],set_link:[7,5,1,""]},"lightnion.proxy.jobs.WebsocketManager":{prefix:[7,4,1,""],prefix_len:[7,4,1,""],serve:[7,5,1,""],set_channel_manager:[7,5,1,""],stop:[7,5,1,""]},"lightnion.proxy.link":{InvalidAuthCellException:[7,6,1,""],InvalidCellHeaderException:[7,6,1,""],InvalidCertsCellException:[7,6,1,""],InvalidDestroyCellException:[7,6,1,""],InvalidNetInfoCellException:[7,6,1,""],InvalidVersionCellException:[7,6,1,""],Link:[7,1,1,""],NoSupportedVersionException:[7,6,1,""]},"lightnion.proxy.link.Link":{gen_cid:[7,5,1,""],schedule_to_send:[7,5,1,""],set_channel_manager:[7,5,1,""]},"lightnion.proxy.parts":{crypto:[7,1,1,""]},"lightnion.proxy.parts.crypto":{compute_token:[7,5,1,""],decrypt_token:[7,5,1,""]},"lightnion.proxy.path":{convert:[7,3,1,""],emitter:[7,3,1,""],fetch:[7,3,1,""],get_tor:[7,3,1,""],producer:[7,1,1,""],worker:[7,1,1,""]},"lightnion.proxy.path.producer":{close:[7,5,1,""],dead:[7,4,1,""],empty:[7,4,1,""],get:[7,5,1,""]},"lightnion.proxy.path.worker":{run:[7,5,1,""]},"lightnion.proxy.relayinfo":{get_relay_info:[7,3,1,""]},"lightnion.signature":{get_binary_signature:[2,3,1,""],get_hash:[2,3,1,""],get_signature_and_digests:[2,3,1,""],verify:[2,3,1,""],verify_format:[2,3,1,""],verify_key:[2,3,1,""]},"lightnion.socket":{cell_slice:[2,3,1,""],io:[2,1,1,""],worker:[2,1,1,""]},"lightnion.socket.io":{binding:[2,5,1,""],close:[2,5,1,""],dead:[2,4,1,""],pending:[2,4,1,""],recv:[2,5,1,""],send:[2,5,1,""]},"lightnion.socket.worker":{close:[2,5,1,""],die:[2,5,1,""],main:[2,5,1,""],recv:[2,5,1,""],run:[2,5,1,""],send:[2,5,1,""]},"lightnion.tests":{path_selection_test:[8,0,0,"-"],test_consensus_chutney:[8,0,0,"-"],test_create_chutney:[8,0,0,"-"],test_descriptors_chutney:[8,0,0,"-"],test_extend_chutney:[8,0,0,"-"],test_hop_chutney:[8,0,0,"-"],test_link_chutney:[8,0,0,"-"],test_path_selection_chutney:[8,0,0,"-"]},"lightnion.tests.path_selection_test":{get_chutney_consensus:[8,3,1,""],test_keep_exit_works_with_reject_exit_policy:[8,3,1,""],test_keep_exit_works_with_suitable_router:[8,3,1,""],test_obey_minimal_constraint_with_one_router:[8,3,1,""],test_path_selection_works:[8,3,1,""],test_pick_good_exit_returns_a_router:[8,3,1,""]},"lightnion.tests.test_consensus_chutney":{test_download_microdesc:[8,3,1,""],test_download_unflavored:[8,3,1,""]},"lightnion.tests.test_create_chutney":{test_fast:[8,3,1,""],test_ntor:[8,3,1,""]},"lightnion.tests.test_descriptors_chutney":{test_download_authority:[8,3,1,""],test_download_microdesc:[8,3,1,""],test_download_unflavored:[8,3,1,""]},"lightnion.tests.test_extend_chutney":{test_circuit:[8,3,1,""]},"lightnion.tests.test_hop_chutney":{test_directory_query:[8,3,1,""]},"lightnion.tests.test_link_chutney":{test_initiate:[8,3,1,""]},"lightnion.tests.test_path_selection_chutney":{test_select_path:[8,3,1,""]},"lightnion.utils":{InvalidCellHeaderException:[2,6,1,""],InvalidCellLengthException:[2,6,1,""],cell_get_cid:[2,3,1,""],cell_get_cmd:[2,3,1,""],cell_get_len:[2,3,1,""],cell_is_valid:[2,3,1,""],cell_is_variable_length:[2,3,1,""],cell_netinfo_build:[2,3,1,""],cell_pad_null:[2,3,1,""],cell_pad_rnd:[2,3,1,""],cell_set_cid:[2,3,1,""],cell_slice:[2,3,1,""],cell_slice_old:[2,3,1,""],cell_to_str:[2,3,1,""],cell_version_build:[2,3,1,""],cell_version_get_cmd:[2,3,1,""],cell_version_get_len:[2,3,1,""],cell_version_get_versions:[2,3,1,""],cell_version_is_valid:[2,3,1,""],cmd_to_str:[2,3,1,""]},lightnion:{cache:[2,0,0,"-"],cell:[3,0,0,"-"],consensus:[2,0,0,"-"],constants:[2,0,0,"-"],create:[2,0,0,"-"],crypto:[5,0,0,"-"],descriptors:[2,0,0,"-"],extend:[2,0,0,"-"],hop:[2,0,0,"-"],http:[6,0,0,"-"],link:[2,0,0,"-"],onion:[2,0,0,"-"],path_selection:[2,0,0,"-"],proxy:[7,0,0,"-"],signature:[2,0,0,"-"],socket:[2,0,0,"-"],tests:[8,0,0,"-"],utils:[2,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","staticmethod","Python static method"],"3":["py","function","Python function"],"4":["py","attribute","Python attribute"],"5":["py","method","Python method"],"6":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:staticmethod","3":"py:function","4":"py:attribute","5":"py:method","6":"py:exception"},terms:{"4d0d42f":2,"\u00b9the":2,"boolean":2,"byte":[2,3],"class":[2,3,4,5,6,7],"create_fast\u00b9":2,"default":2,"enum":[3,4],"final":3,"function":[2,3,7],"import":2,"int":2,"new":[2,7],"null":2,"public":[2,7],"return":[2,7],"static":[2,5],"tor\u00b2":2,"true":[2,3,6],"try":2,"while":2,For:2,TLS:2,The:[2,6,7],Then:2,Use:2,Will:2,__init__:2,_anonymous_cached_enum:[3,4],_anonymous_enum:[3,4],_earli:2,_view:3,accept:2,accumul:2,activ:[2,6,7],active_view:3,actual:2,add:2,addr_typ:3,address:[2,4,9],address_view:3,after:2,afterward:2,algorithm:2,all:2,alpha:0,also:0,altern:2,alwai:2,ani:[0,2,6,7],anonym:0,answer:2,anyth:0,api:[2,7],arg:[2,6,7],argument:[2,6,7],as_initi:2,associ:2,assum:2,attach:2,attempt:2,auth:[2,9],auth_challeng:[2,3],auth_dir:7,auth_typ:3,authent:[2,3],author:[0,2,3],auto_sendm:2,avail:2,avg:2,backward:2,bad:2,bandwidth:2,barrier:7,base64:2,base:[2,3,4,5,6,7],base_dir:[2,7],basic:3,batch:7,batch_queri:2,batch_siz:7,been:0,befor:2,begin:2,being:2,between:0,big:3,binari:2,bind:[2,3,7],bit:2,blob:2,block:[2,6],block_siz:5,bool:2,both:2,bound:[3,4],browser:0,buffer_s:2,build:2,bytearrai:2,byteord:3,cach:[3,9],cache_field:3,cached_uint:3,call:2,callabl:[2,6,7],can:[0,2],candid:2,cell:[2,6,7,9],cell_get_cid:2,cell_get_cmd:2,cell_get_len:2,cell_is_valid:2,cell_is_variable_length:2,cell_netinfo_build:2,cell_pad_nul:2,cell_pad_rnd:2,cell_raw:7,cell_set_cid:2,cell_slic:2,cell_slice_old:2,cell_to_str:2,cell_version_build:2,cell_version_get_cmd:2,cell_version_get_len:2,cell_version_get_vers:2,cell_version_is_valid:2,cell_view:[3,4],cert:[2,9],cert_typ:3,challeng:[2,9],channel:[6,7],channel_handl:6,channel_manag:7,channeldoesnotexistexcept:7,channelmanag:7,check:2,choos:2,chosen:2,chutnei:8,cid:[2,7],circid:2,circuit:[2,7],circuit_id:[2,3,4,7],circuitdoesnotexistexcept:7,clean:2,clerk:7,client:[0,2,6,7],client_kei:5,close:[2,6,7],cmd:[2,3,4],cmd_to_str:2,codec:3,collect:7,com:[2,7],command:2,common:[2,9],composit:3,compress:2,compressed_data:2,comput:2,compute_descriptor_digest:2,compute_path:7,compute_token:7,con:2,condit:2,connect:[2,7],connectfail:3,consensu:[7,8,9],consensus:2,consensus_fil:2,consensus_raw:2,constant:9,constraint:2,constructor:[2,6,7],consum:2,consume_descriptor:2,consume_dir_sourc:2,consume_foot:2,consume_head:2,consume_http:2,consume_rout:2,contact:2,contain:0,content:9,context:5,control_host:7,control_port:7,convert:[0,7],core:2,coroutin:7,correct:[2,7],correspond:[2,7],creat:[3,7,9],create2:[2,9],create_channel:7,create_fast:[2,9],create_view:3,created2:[2,9],created_fast:[2,9],created_view:3,criterion:2,crypto:[2,7,9],cryptograph:2,cryptographi:2,current:[2,7],daemon:[2,6],data:[2,3,4,5,7],data_nam:[3,4],data_view:[3,4],date:2,datetim:2,dead:[2,6,7],decod:2,decrypt:2,decrypt_token:7,decryptor:2,deflat:2,delai:2,delet:7,delete_channel:7,depth:2,deriv:3,descr:2,describ:2,descriptor:[7,9],destroi:[2,7,9],destroy_circuit_from_cli:7,destroy_circuit_from_link:7,detail:[2,3],dictionari:2,die:[2,6],digest:[2,3,4,5],digests_byt:2,dir:2,dir_port:7,direct:[2,7],directori:2,directory_queri:2,dispatch:7,doe:2,don:2,done:2,down:2,download:2,download_author:2,download_authority_direct:2,download_direct:2,download_raw:2,download_raw_by_digests_micro:2,download_raw_by_digests_unflavor:2,download_relay_descriptor:2,dummy_random_gen:7,early_count:2,easili:2,ed25519:2,ed_auth:3,ed_id:4,ed_signed_authent:3,ed_signed_signing_kei:3,ed_signed_tls_link:3,els:2,emitt:7,empti:7,enabl:2,encod:[2,6],encrypt:2,encryptor:2,end:2,end_of_field:2,endpoint:6,ensur:7,entri:[2,7],enumer:[3,4],equal:2,equival:2,error_non_tran:3,error_tran:3,establish:2,exampl:2,except:[2,7],exchang:2,exit:2,exit_nod:2,expand:2,expect:[2,7],experi:0,explicitli:2,expos:2,extend2:[2,3],extend2_view:4,extend:9,extended2:[2,3],extended2_view:4,extra:2,extra_field:[3,4],extract_d:2,extract_nodes_digests_micro:2,extract_nodes_digests_unflavor:2,fail_on_miss:2,failur:6,fals:[2,3],famili:2,fast:2,fast_async:2,feedback:0,fetch:[2,7],fetch_format:7,field:[2,3],field_nam:[3,4],file:2,file_nam:2,filenam:[2,7],filter:2,filter_descriptor:2,fingerprint:2,finish:3,first:[2,7],fix:2,fixed_max_length:2,fixed_s:[3,4],flag:2,flavor:[2,7],flavour:2,flow:2,follow:2,footer:2,form:2,format:2,forward:[2,9],fresh:2,from:[2,6,7],full:2,further:2,futur:7,gen_cid:7,gen_token_from_cid:7,gener:7,genpkei:7,get:[2,7,8],get_binary_signatur:2,get_channel_by_token:7,get_chutney_consensu:8,get_consensu:7,get_consensus_raw:7,get_descriptor:7,get_descriptor_unflavour:7,get_descriptors_raw:7,get_guard:7,get_hash:2,get_relay_info:7,get_signature_and_digest:2,get_signing_kei:7,get_signing_keys_info:2,get_tor:7,getpkei:7,github:2,given:[2,7],good:2,guard:[2,6,7],guess:2,h_mac:5,h_verifi:5,hand:[5,6],handl:[2,7],handler:7,handshak:[2,4,7],handshake_data:3,handshake_typ:4,has:2,hash:2,have:0,header:[2,3],header_view:[3,4],help:3,here:2,hex:2,hex_digest:2,hibern:3,high:2,higher:2,hmac:5,hop:9,host:[2,3,6,7],hostnam:[2,3],howev:[0,2],http:[2,7,9],ident:[2,4,5],identifi:[2,7],in_same_famili:2,includ:0,incom:6,increment:2,index:0,indic:2,info:7,init:3,initi:[2,7],inner:2,input:2,inspect:2,instal:0,instanc:2,integ:2,interact:0,intern:3,invalid:2,invalidauthcellexcept:7,invalidcellheaderexcept:[2,7],invalidcelllengthexcept:2,invalidcertscellexcept:7,invaliddestroycellexcept:7,invalidnetinfocellexcept:7,invalidtokenexcept:7,invalidversioncellexcept:7,invok:[2,6,7],ip_address:3,ipv4:2,ipv4_addr:3,ipv6:2,ipv6_addr:3,is_backward:4,is_circuit:4,is_control:4,is_fix:3,is_forward:4,is_vari:3,iscach:3,iscomposit:3,iseven:3,issu:0,isview:3,item:[2,3],item_view:3,its:[2,7],javascript:0,job:[2,9],karg:[3,4],kdf:[2,9],kdf_tor:5,keep:2,keep_exit:2,keep_exit_with_descr:2,keep_guard:2,keep_guard_with_descr:2,keep_middl:2,keep_middle_with_descr:2,kei:[2,5,7],kept:2,keyword:[2,6,7],kill_queu:7,known:2,kwarg:[2,3,4,6,7],l1820:2,l2069:2,l2322:2,l780:2,lambda:3,last:2,last_stream_id:2,layer:2,least:2,legacy_id:4,length:5,length_halved_view:3,let:0,level:0,librari:0,like:3,line:2,link:9,linkalreadyinitializedexcept:7,linknotinitializedexcept:7,linkspec_typ:4,linkspec_view:4,linkspecs_view:4,list:[2,3],list_field:3,list_of_poss:2,listen:7,lnn:2,load:2,local:[3,4],loop:7,loop_signal_handl:7,low:2,lowlimit:2,made:2,mai:[2,6,7],main:[2,6,7],make:0,manag:7,manual:2,map:2,master:2,match:2,materi:[3,5,6,7],max_fail:2,max_quant:3,max_queu:[2,6],meet:2,mention:2,messag:[2,5],method:[2,3,4,6,7],micro:2,microdesc:2,middl:2,min_bufs:2,minim:2,mix:2,modern:0,modul:[0,9],moment:0,more:[0,2],most:2,msg_handler:7,multipl:2,must:2,name:2,nb_worker:7,need:[2,7],negoti:2,negotiate_vers:2,netinfo:[2,9],network:[0,2],newli:2,next:2,node:[2,7],non:2,none:[2,3,4,7],nosuchservic:3,nosupportedversionexcept:7,note:2,noth:7,now:2,ntor:[2,4,7,9],ntor_async:2,ntor_handshak:2,ntor_raw2:2,ntor_raw:2,number:[2,7],obey_minimal_constraint:2,object:[2,3,5,6,7],offset:3,old:2,onc:2,one:[2,7],onion:9,onion_kei:5,onli:2,open:0,oper:3,or_conn_clos:3,or_ident:3,order:[2,7],orport:2,other_address:3,otherwis:7,our:2,out:2,outcom:6,outer:2,output_queu:7,output_s:5,overrid:[2,6,7],own:2,pack:[2,3,4],packag:9,packet:[3,4],pad:[2,9],padded_hash:2,padding_negoti:3,page:0,param:[2,7],paramet:2,parent_field:3,parent_view:3,parent_wrapp:3,pars:2,parse_address:2,parse_base64:2,parse_descriptor:2,parse_fingerprint:2,parse_param:2,parse_rang:2,parse_range_onc:2,parse_tim:2,parser:2,part:[2,9],pass:[2,6,7],password:7,path:[2,9],path_queu:7,path_select:9,path_selection_test:[2,9],payload:[2,3,4,6],peel:2,peer:[2,3],pem:2,pend:2,percentag:2,perform:[2,7],period:[2,6],pick:2,pick_good_entri:2,pick_good_entry_from_rout:2,pick_good_exit:2,pick_good_exit_from_rout:2,pick_good_middl:2,pick_good_middle_from_rout:2,pkc:2,pkcs1_v1_5:2,plaintext:2,plcp:2,pleas:0,plug:2,point:7,polici:2,poll:[2,9],port:[2,6,7],possibl:2,prefix:[2,6,7],prefix_len:7,prepar:7,present:[2,7],previou:2,previous:2,prf:5,privat:2,process:[2,7],produc:7,product:0,proper:2,properli:2,properti:2,protocol:[0,2,3],provid:[0,2,7],proxi:[0,2,9],public_kei:2,pull:2,pure:0,purg:2,put:2,pycrypto:2,python:[0,2],quantiti:3,queri:2,queue:2,rand:2,random:[2,7],randomli:2,rang:2,raw:[2,3,7],raw_con:2,raw_materi:5,realli:0,reason:[2,3],receiv:2,recogn:[2,3,4],recommend:2,recv:[2,3,6],refer:2,regist:2,relai:[2,3,7],relay_begin:4,relay_begin_dir:4,relay_connect:4,relay_data:4,relay_drop:4,relay_earli:[2,9],relay_end:4,relay_extend2:4,relay_extend:4,relay_extended2:4,relay_resolv:4,relay_sendm:4,relay_trunc:4,relay_view:4,relayinfo:[2,9],remain:2,remot:2,reorder:2,repositori:0,repres:[2,6,7],request:[0,3],requir:[0,2],research:0,reset:7,reset_link:7,resourcelimit:3,respect:[2,6,7],respons:7,retriev:[2,7],retrieve_consensu:7,retriv:7,rfc5869:5,rfc:2,rnd_gen:7,router:[2,7],rsa:2,rsa_auth:3,rsa_self_signed_ident:3,rsa_signed_authent:3,rsa_signed_ed_ident:3,rsa_signed_link_kei:3,run:[2,6,7],salt:5,same:2,sanit:2,scedul:7,schedul:7,schedule_to_send:7,scrap:2,scrap_signatur:2,script:2,search:0,second:2,see:[2,3],select:2,select_end_path_from_consensu:2,select_guard_from_consensu:2,select_path:[2,7],self:[2,3],send:[2,3,6,7],sent:7,separ:2,sequenti:[2,6,7],seri:3,serv:7,server:[2,5,7],server_kei:5,set:[2,3,7],set_channel_manag:7,set_link:7,sha1:2,shake:[5,6],share:2,should:[2,7],side:7,sign:[2,7],signatur:9,signatures_and_key_digest:2,signific:2,signum:7,simplifi:2,size:3,slave_nod:7,socket:9,socks_port:7,softwar:0,some:7,sourc:[2,3,4,5,6,7,8],spec:2,split:2,ssl:2,sslv3:2,stabl:2,standard:[2,6,7],start:[2,7],state:2,statea:2,stateb:2,statec:2,statu:2,stop:7,str:2,stream:2,stream_id:[2,3,4],stream_window:2,string:2,structur:2,subclass:[2,6,7],submodul:9,subpackag:9,subsect:2,suffix:7,support:2,tag:3,take:2,taken:[2,6,7],target:[2,6,7],tcp:0,test:[0,2,9],test_circuit:8,test_consensus_chutnei:[2,9],test_create_chutnei:[2,9],test_descriptors_chutnei:[2,9],test_directory_queri:8,test_download_author:8,test_download_microdesc:8,test_download_unflavor:8,test_extend_chutnei:[2,9],test_fast:8,test_hop_chutnei:[2,9],test_initi:8,test_keep_exit_works_with_reject_exit_polici:8,test_keep_exit_works_with_suitable_rout:8,test_link_chutnei:[2,9],test_ntor:8,test_obey_minimal_constraint_with_one_rout:8,test_path_selection_chutnei:[2,9],test_path_selection_work:8,test_pick_good_exit_returns_a_rout:8,test_select_path:8,than:0,thi:[0,2,3,6,7],third:2,thread:[2,6,7],through:2,time:2,timed:2,timeout:[2,3,7],timestamp:3,timezon:2,tls_tcp_4:4,tls_tcp_6:4,todo:2,token:7,tool:2,tor:[0,2,7],tor_process:7,torspec:2,traffic:7,transcript:2,truncat:[2,3],tupl:2,tweak:5,two:2,txt:2,type:2,type_hint:3,typenam:3,uid:7,uint:3,underli:3,unflavor:2,union:3,union_tag:3,unregist:2,until:2,untrust:0,updat:2,upon:2,usag:2,use:[0,2,7],used:[2,7],uses:[0,2],using:[0,2],utc:2,util:9,valid:[2,3,4],valu:[2,3,4],verifi:[2,7],verify_format:2,verify_kei:2,version:[2,7,9],via:2,view:[2,4,9],view_tabl:3,visit:3,vote:2,vpad:3,wait:7,wait_for_consensu:7,want:[2,7],warn:0,webpag:0,websocket:[0,2,7,9],websocketmanag:7,weight:2,weighted_random_choic:2,when:2,where:2,which:[2,7],whose:2,why:2,width:3,window:2,within:[2,3],without:2,worker:[2,6,7],wrap:2,wrapper:3,write:[0,3],x00:[3,4],you:[0,2,6,7],your:0,zlib_decompress:2},titles:["Welcome to Lightnion\u2019s documentation!","Installation","lightnion package","lightnion.cell package","lightnion.cell.relay package","lightnion.crypto package","lightnion.http package","lightnion.proxy package","lightnion.tests package","lightnion"],titleterms:{address:3,auth:7,cach:2,cell:[3,4],cert:3,challeng:3,common:3,consensu:2,constant:2,content:[2,3,4,5,6,7,8],creat:2,create2:3,create_fast:3,created2:3,created_fast:3,crypto:5,descriptor:2,destroi:3,document:0,extend2:4,extend:2,extended2:4,forward:7,hop:2,http:6,indic:0,instal:1,introduct:0,job:7,kdf:5,lightnion:[0,2,3,4,5,6,7,8,9],link:[2,7],modul:[2,3,4,5,6,7,8],netinfo:3,ntor:[5,6],onion:2,packag:[2,3,4,5,6,7,8],pad:3,part:7,path:7,path_select:2,path_selection_test:8,poll:6,proxi:7,relai:4,relay_earli:3,relayinfo:7,signatur:2,socket:2,submodul:[2,3,4,5,6,7,8],subpackag:[2,3],tabl:0,test:8,test_consensus_chutnei:8,test_create_chutnei:8,test_descriptors_chutnei:8,test_extend_chutnei:8,test_hop_chutnei:8,test_link_chutnei:8,test_path_selection_chutnei:8,util:2,version:3,view:3,websocket:6,welcom:0}}) \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000..13beb08 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,191 @@ +# -*- coding: utf-8 -*- +# +# Configuration file for the Sphinx documentation builder. +# +# This file does only contain a selection of the most common options. For a +# full list see the documentation: +# http://www.sphinx-doc.org/en/master/config + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +sys.path.insert(0, os.path.abspath('../..')) + + +# -- Project information ----------------------------------------------------- + +project = 'Lightnion' +copyright = '2020, Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu' +author = 'Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu' + +# The short X.Y version +version = '' +# The full version, including alpha/beta/rc tags +release = '' + + +# -- General configuration --------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.todo', + 'sphinx.ext.coverage', + 'sphinx.ext.viewcode', + 'sphinx.ext.githubpages', + 'sphinx_js' +] + +# JS sources +js_source_path = '../js-client/src' + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = None + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +#html_theme = 'alabaster' +html_theme = 'sphinx_rtd_theme' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# The default sidebars (for documents that don't match any pattern) are +# defined by theme itself. Builtin themes are using these templates by +# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', +# 'searchbox.html']``. +# +# html_sidebars = {} + + +# -- Options for HTMLHelp output --------------------------------------------- + +# Output file base name for HTML help builder. +htmlhelp_basename = 'Lightniondoc' + + +# -- Options for LaTeX output ------------------------------------------------ + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'Lightnion.tex', 'Lightnion Documentation', + 'Matthieu Daumas, Ricardo Ferreira Ribeiro, Laurent Girod, Shivram N Gowtham, Wouter Lueks, Carmela Troncoso, Chia-An Yu', 'manual'), +] + + +# -- Options for manual page output ------------------------------------------ + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'lightnion', 'Lightnion Documentation', + [author], 1) +] + + +# -- Options for Texinfo output ---------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'Lightnion', 'Lightnion Documentation', + author, 'Lightnion', 'One line description of project.', + 'Miscellaneous'), +] + + +# -- Options for Epub output ------------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = project + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +# +# epub_identifier = '' + +# A unique identification for the text. +# +# epub_uid = '' + +# A list of files that should not be packed into the epub file. +epub_exclude_files = ['search.html'] + + +# -- Extension configuration ------------------------------------------------- + +# -- Options for todo extension ---------------------------------------------- + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True diff --git a/docs/source/deploy.rst b/docs/source/deploy.rst new file mode 100644 index 0000000..4ac075c --- /dev/null +++ b/docs/source/deploy.rst @@ -0,0 +1,139 @@ +========== +Deployment +========== + +**Warning:** Lightnion is an alpha-stage software which is not fit for +production at this point. + +Lightnion needs to be deployed from sources. It is constituted of two parts, a +JavaScript client and a proxy between the client and the guard relay on Tor +network. + +Prerequisites +============= + +Lightnion is a two-parts software constituted of: + +- a Javascript client called from the web browser +- a proxy running on a server + +The proxy requires at least 2 GiB of RAM, and was tested successfully only on +Linux. The proxy also need to connect to the Tor network, which can be done +either by simulationg it with Chutney or using the real Tor network. + +To test Lightnion proxy on a proper server, you also need a hidden Tor relay on +the same machine where Lightnion is running. We advise to run the guard relay +on the same server as the Lightnion proxy. To install the hidden Tor relay, +please refers to the `documentation from the Torproject +`_, `their wiki +`_, or the +documentation of the Linux distribution installed on the server. + +Installation +============ + +Installation of the Proxy +------------------------- + +The proxy requires Python 3.7 or superior and the libraries listed in the files +`requirements.txt` and `requirements-proxy.txt`, which can be installed with +`pip`. We tested the proxy on Debian Buster, it likely also work on other +Linux distributions which provide Python 3.7, but we did not test the proxy on +them. + +We advise to use git to retrieve the sources. +.. code-block:: + + $ git clone --recurse-submodules https://github.com/spring-epfl/lightnion.git + $ cd lightnion + +We strongly advise to install the Lightnion proxy in a virtual environment. +.. code-block:: + + $ virtualenv --python=python3 venv + $ . venv/bin/activate + +The dependances can be installed with `pip`. +.. code-block:: + + $ pip install -r requirements.txt -r requirements-proxy.txt + + +Building the JavaScript Client +------------------------------ + +The minified bundle of the Javacript client needs to be build. We wrote a +Makefile to simplify this task. +.. code-block:: + + $ cd js-client + $ make + +The resulting file `lightnion.bundle.js` is a bundle containing Lightnion and +all its dependancies. It can be served by a web server, and linked in a web +page as any other JS library. + + +Testing Lightnion Locally +========================= + +For testing Lightnion locally, you might prefer to simulte the Tor network to which the proxy is going to connect. To do so, we provide a script to configure the network simulated by Chutned. +.. code-block:: + + $ git clone https://git.torproject.org/chutney.git + $ cp lightnion/tools/chutney/small-chut chutney + $ cd chutney + +You might also want to disable the sandboxing, we provide a patch to do so. +.. code-block:: + + $ git apply ../lightnion/tools/chutney/sandbox_patch + +Once the installation is done, you can start Chutney with the commands. +.. code-block:: + + $ cd chutney + $ ./small-chut + +To Test Lightnion locally, it is necessary to run a local web server to +dispatch the Lightnion Javascript client. (Here is an example with Python.) +.. code-block:: + + $ cd js-client/demo + $ python -m http.server + +Then the proxy can be started with these commands (Here, the proxy is running +in a virtual environment). +.. code-block:: + + $ source env/bin/activate + (venv)$ python -m lightnion.proxy -vvv -s 127.0.0.1:9050 -c 8000 -d 9051 + + +Web Server configuration +======================== + +For testing Lightnion on a proper server, you need a webserver like Apache or +Nginx, and the compiled Lightnion bundle. + +By default, the connection between the client and proxy server is in clear. If +you prefer to use a secure connection, the sources of the Javascript client +needs to be slightly modified to accept HTTPS connection, and the ports need to +be changed to 443. In a later version, TLS will be enabled by default, and a +flag will be needed to use an insecure connection. + +A Typical Nginx configuration for a proxy server looks like this: + +.. literalinclude:: lightnion-nginx-tls.conf + + +Automatic Startup and Process Monitoring +======================================== + +We can ensure Lightnion is running by configuring systemd or another init +system to restart the process when necessary, and optionally to notify the +administrator when the service is restarted. + +.. literalinclude:: lightnion.service + +.. literalinclude:: lightnion-fail.service diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000..ddc3e88 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,31 @@ +===================================== +Welcome to Lightnion's documentation! +===================================== + +Introduction +============ + +Lightnion is a JavaScript library that you can include on your webpage to let +any modern browser make anonymous requests. Lightnion uses an *untrusted* +proxy to interact with the Tor network. This proxy converts between protocols +(Websockets to pure TCP). + +**WARNING:** At the moment Lightnion is alpha-level research software. Do *not* +use it in production, or for anything that really requires anonymity. You are, +however, more than welcome to experiment with Lightnion. Please provide +feedback opening issues or writing to the authors. + + +Contents +======== + +.. toctree:: + deploy + tutorial + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/source/lightnion-fail.service b/docs/source/lightnion-fail.service new file mode 100644 index 0000000..3e69365 --- /dev/null +++ b/docs/source/lightnion-fail.service @@ -0,0 +1,6 @@ +[Unit] +Description=Lightnion proxy failure notification + +[Service] +Type=oneshot +ExecStart=/bin/echo 'Lightnion process failed' | /usr/bin/mailx -s "Lightnion process failed" lightnion@lightning-test diff --git a/docs/source/lightnion-nginx-tls.conf b/docs/source/lightnion-nginx-tls.conf new file mode 100644 index 0000000..9604c70 --- /dev/null +++ b/docs/source/lightnion-nginx-tls.conf @@ -0,0 +1,62 @@ +server { + root /var/www/lightnion; + index index.html; + server_name lightnion.spring-lab.ch; + + location /lightnion/api/v0.1/channel/ { + proxy_pass http://localhost:8765; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + } + + location /lightnion/ { + proxy_pass http://localhost:4990; + } + + location /guard { + proxy_pass http://localhost:4990; + } + + location /channels { + proxy_pass http://localhost:4990; + } + + location /consensus { + proxy_pass http://localhost:4990; + } + + location /descriptors { + proxy_pass http://localhost:4990; + } + + location /signing-keys { + proxy_pass http://localhost:4990; + } + + + location / { + try_files $uri $uri/ =404; + } + + listen 443 default_server ssl; + + ssl_certificate /etc/letsencrypt/live/lightnion.spring-lab.ch/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/lightnion.spring-lab.ch/privkey.pem; + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; + + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + + ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS"; +} + + +server { + listen 80; + server_name lightnion.spring-lab.ch; + rewrite ^ https://$server_name$request_uri? permanent; +} diff --git a/docs/source/lightnion.crypto.rst b/docs/source/lightnion.crypto.rst new file mode 100644 index 0000000..cbec368 --- /dev/null +++ b/docs/source/lightnion.crypto.rst @@ -0,0 +1,30 @@ +lightnion.crypto package +======================== + +Submodules +---------- + +lightnion.crypto.kdf module +--------------------------- + +.. automodule:: lightnion.crypto.kdf + :members: + :undoc-members: + :show-inheritance: + +lightnion.crypto.ntor module +---------------------------- + +.. automodule:: lightnion.crypto.ntor + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: lightnion.crypto + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/lightnion.proxy.rst b/docs/source/lightnion.proxy.rst new file mode 100644 index 0000000..e53ea30 --- /dev/null +++ b/docs/source/lightnion.proxy.rst @@ -0,0 +1,53 @@ +lightnion.proxy package +======================= + +Submodules +---------- + +lightnion.proxy.auth module +--------------------------- + +.. automodule:: lightnion.proxy.auth + :members: + :undoc-members: + :show-inheritance: + +lightnion.proxy.forward module +------------------------------ + +.. automodule:: lightnion.proxy.forward + :members: + :undoc-members: + :show-inheritance: + +lightnion.proxy.jobs module +--------------------------- + +.. automodule:: lightnion.proxy.jobs + :members: + :undoc-members: + :show-inheritance: + +lightnion.proxy.link module +--------------------------- + +.. automodule:: lightnion.proxy.link + :members: + :undoc-members: + :show-inheritance: + +lightnion.proxy.parts module +---------------------------- + +.. automodule:: lightnion.proxy.parts + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: lightnion.proxy + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/lightnion.rst b/docs/source/lightnion.rst new file mode 100644 index 0000000..53a949b --- /dev/null +++ b/docs/source/lightnion.rst @@ -0,0 +1,58 @@ +lightnion package +================= + +Subpackages +----------- + +.. toctree:: + + lightnion.crypto + lightnion.proxy + +lightnion.consensus module +-------------------------- + +.. automodule:: lightnion.consensus + :members: + :undoc-members: + :show-inheritance: + +lightnion.constants module +-------------------------- + +.. automodule:: lightnion.constants + :members: + :undoc-members: + :show-inheritance: + +lightnion.descriptors module +---------------------------- + +.. automodule:: lightnion.descriptors + :members: + :undoc-members: + :show-inheritance: + +lightnion.path\_selection module +-------------------------------- + +.. automodule:: lightnion.path_selection + :members: + :undoc-members: + :show-inheritance: + +lightnion.signature module +-------------------------- + +.. automodule:: lightnion.signature + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: lightnion + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/lightnion.service b/docs/source/lightnion.service new file mode 100644 index 0000000..6d7379f --- /dev/null +++ b/docs/source/lightnion.service @@ -0,0 +1,16 @@ +[Unit] +Description=Lightnion proxy +After=network.target + +[Service] +TimeoutStopSec=2 +Restart=on-failure +RestartSec=60 +User=lightnion +Group=www-data +WorkingDirectory=/home/lightnion/lightnion +ExecStart=/home/lightnion/lightnion/venv/bin/python -m lightnion.proxy -vvv -s 127.0.0.1:9050 -c 8000 -d 9051 +OnFailure=lightnion-fail.service + +[Install] +WantedBy=multi-user.target diff --git a/docs/source/modules.rst b/docs/source/modules.rst new file mode 100644 index 0000000..95d6d08 --- /dev/null +++ b/docs/source/modules.rst @@ -0,0 +1,7 @@ +lightnion +========= + +.. toctree:: + :maxdepth: 4 + + lightnion diff --git a/js-client/.eslintrc.json b/js-client/.eslintrc.json new file mode 100644 index 0000000..bb26bb7 --- /dev/null +++ b/js-client/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "env": { + "browser": true, + "es6": true, + "mocha": true, + "commonjs": true + }, + "extends": "eslint:recommended", + "globals": { + "Atomics": "readonly", + "SharedArrayBuffer": "readonly" + }, + "parserOptions": { + "ecmaVersion": 2018, + "sourceType": "module" + }, + "rules": {} +} \ No newline at end of file diff --git a/js-client/.gitignore b/js-client/.gitignore index 7933508..0b7cfb0 100644 --- a/js-client/.gitignore +++ b/js-client/.gitignore @@ -3,3 +3,5 @@ lightnion.bundle.js lightnion.min.js lightnion.js sjcl.js + +node_modules/ diff --git a/js-client/Makefile b/js-client/Makefile index 3a53273..1b482bc 100644 --- a/js-client/Makefile +++ b/js-client/Makefile @@ -1,53 +1,83 @@ -include config.mk +.PHONY: all install build test doc lint clean help submodules integration -all: lightnion.min.js lightnion.bundle.js +# recursive wildcard +rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)) -lightnion.js: $(SOURCES) - cat $(SOURCES) > $@ +CP = cp +CD = cd +NPM = npm +GIT = git +JSDOC = ./node_modules/jsdoc/jsdoc.js -lightnion.min.js: lightnion.js - cd sjcl && sed -i 's/ADVANCED/SIMPLE/g' compress/compress_with_closure.sh - $(COMPRESSOR) $< > $@ +VENDOR = ./vendor +SJCL = $(VENDOR)/sjcl +SJCL-GIT = $(SJCL)/.git +SJCL-BUILD = $(VENDOR)/sjcl.js -lightnion.bundle.js: lightnion.min.js $(BUNDLES) +DIST = ./dist +LIGHTNION-BUNDLE = lightnion.bundle.js +LIGHTNION-BUNDLE-DIST = $(DIST)/lightnion.bundle.js +LIGHTNION-BUNDLE-INTEGRATION-TESTS = integration-tests/lightnion-websocket/public/lws.bundle.js -sjcl.js: - cp sjcl.patch sjcl - cd sjcl && git apply sjcl.patch && make - cd sjcl && cp sjcl.js .. - cd sjcl && git reset --hard && rm sjcl.patch +JSDOC-DIST = jsdoc/ -cleanup-bundle: - rm -f ./lightnion.bundle.js +SOURCES = $(call rwildcard,src/) -lightnion-bundle: - cat lightnion.min.js >> ./lightnion.bundle.js +all: $(LIGHTNION-BUNDLE) -lightnion-bundle-license: - echo -e '\n\n--\n\nLICENSE lightnion\n\n--\n\n' >> $(BUNDLELICENSE) - cat ../LICENSE >> $(BUNDLELICENSE) +install: + npm install -sjcl-bundle: sjcl.js - cat sjcl.js >> ./lightnion.bundle.js +# build project +build: LIGHTNION-BUNDLE-DIST LIGHTNION-BUNDLE -sjcl-bundle-license: - echo -e '\n\n--\n\nLICENSE sjcl\n\n--\n\n' >> $(BUNDLELICENSE) - cat sjcl/LICENSE.txt >> $(BUNDLELICENSE) +# build javascript documentation +doc: jsdoc/index.html -tweetnacl-bundle: - cat tweetnacl-js/nacl-fast.min.js >> ./lightnion.bundle.js - cat tweetnacl-util-js/nacl-util.min.js >> ./lightnion.bundle.js +# run unit tests +test: + @./node_modules/mocha/bin/mocha -r jsdom-global/register --require esm --recursive --exclude "src/export.js" src/ -tweetnacl-bundle-license: - echo -e '\n\n--\n\nLICENSE tweetnacl-js\n\n--\n\n' >> $(BUNDLELICENSE) - cat tweetnacl-js/LICENSE >> $(BUNDLELICENSE) - echo -e '\n\n--\n\nLICENSE tweetnacl-util-js\n\n--\n\n' >> $(BUNDLELICENSE) - cat tweetnacl-util-js/LICENSE >> ./LICENSE.bundle.txt +# build project for integration testing +integration: $(LIGHTNION-BUNDLE-INTEGRATION-TESTS) + cd integration-tests/lightnion-websocket/infra; sh setup.sh +# run javascript linter +lint: + ./node_modules/.bin/eslint src + +# clean built files clean: - rm -f sjcl.js + $(RM) $(LIGHTNION-BUNDLE) + $(RM) $(DIST)/* + $(RM) $(LIGHTNION-BUNDLE-INTEGRATION-TESTS) + $(RM) -r $(JSDOC-DIST) +# clean built files and dependencies mr_proper: clean - rm -f $(BUNDLELICENSE) - rm -f lightnion.js lightnion.min.js - rm -f lightnion.bundle.js lightnion.bundle.min.js + $(RM) $(SJCL-BUILD) + +# show this help +help: + @awk '/^#/{c=substr($$0,3);next}c&&/^[[:alpha:]][[:alnum:]_-]+:/{print substr($$1,1,index($$1,":")),c}1{c=0}' $(MAKEFILE_LIST) | column -s: -t + +$(LIGHTNION-BUNDLE): $(LIGHTNION-BUNDLE-DIST) + $(CP) $(LIGHTNION-BUNDLE-DIST) $@ + +$(LIGHTNION-BUNDLE-INTEGRATION-TESTS): $(LIGHTNION-BUNDLE-DIST) + $(CP) $(LIGHTNION-BUNDLE-DIST) $@ + +$(LIGHTNION-BUNDLE-DIST): $(SJCL-BUILD) $(SOURCES) + npm run build + +$(SJCL-GIT): + git submodule update --init --recursive + +$(SJCL-BUILD): $(SJCL-GIT) + cd $(SJCL) && ./configure --with-codecBytes --with-sha1 + cd $(SJCL) && make && cp sjcl.js ../ + # modify sjcl to export + echo "export { sjcl };" >> $(SJCL-BUILD) + +jsdoc/index.html: $(SOURCES) + $(JSDOC) -r -d $(JSDOC-DIST) src/ \ No newline at end of file diff --git a/js-client/README.md b/js-client/README.md index e55d456..9f1755e 100644 --- a/js-client/README.md +++ b/js-client/README.md @@ -14,6 +14,7 @@ You will have to clone the repository as follows: git clone --recurse-submodules https://github.com/spring-epfl/lighttor lightnion cd lightnion cd js-client +make install make ``` @@ -52,12 +53,6 @@ See `./demo/` for more examples. The bundle works on `firefox 61.0.2` and includes `sjcl+tweetnacl-js`. -If you wish to provide dependencies by yourself, include only: -``` -nacl-fast.min.js -nacl-util.min.js -sjcl.js -lightnion.min.js -``` -Note that you have to build few things with `sjcl.patch` to enable some -codecs. +## Unit testing + +Run `make test`. \ No newline at end of file diff --git a/js-client/config.mk b/js-client/config.mk deleted file mode 100644 index 02f4af5..0000000 --- a/js-client/config.mk +++ /dev/null @@ -1,11 +0,0 @@ -SOURCES=\ -src/BigInteger.min.js src/forge.min.js src/header.js src/endpoint.js src/get.js src/ntor.js src/relay.js src/onion.js\ -src/io.js src/post.js src/stream.js src/util.js src/api.js\ -src/signature.js src/consensusParser.js src/parser.js src/path.js src/export.js - -BUNDLELICENSE=LICENSE.bundle.txt -BUNDLES=\ -cleanup-bundle tweetnacl-bundle sjcl-bundle lightnion-bundle\ -lightnion-bundle-license tweetnacl-bundle-license sjcl-bundle-license - -COMPRESSOR=./sjcl/compress/compress_with_closure.sh diff --git a/js-client/demo/lightnion.bundle.js b/js-client/demo/lightnion.bundle.js deleted file mode 120000 index 4398a8a..0000000 --- a/js-client/demo/lightnion.bundle.js +++ /dev/null @@ -1 +0,0 @@ -../lightnion.bundle.js \ No newline at end of file diff --git a/js-client/demo/websocket.html b/js-client/demo/websocket.html new file mode 100644 index 0000000..6fac0cd --- /dev/null +++ b/js-client/demo/websocket.html @@ -0,0 +1,65 @@ + + + + + + lightnion websocket redirect echo demo + + + +

lightnion websocket redirect echo demo

+

+ Connects to a WebServer echo server "ws://echo.websocket.org", through Lightnion. +

+ +
+ + +
+ + +
    + + + + + + + + + \ No newline at end of file diff --git a/js-client/integration-tests/lightnion-websocket/README.md b/js-client/integration-tests/lightnion-websocket/README.md new file mode 100644 index 0000000..07b3c84 --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/README.md @@ -0,0 +1,34 @@ +# Integration Tests for Lightnion WebSocket + +## Requirements + +- Install [geckodriver](https://github.com/mozilla/geckodriver/releases) and add it to your PATH. +- Install `Tor` of version `0.3` (should be compatible with `lightnion`), instructions can be found [here](https://trac.torproject.org/projects/tor/wiki/TorRelayGuide#PlatformspecificInstructions). +- Install python requirements: +```bash +pip install -r requirements.txt +``` +- Install infrastructure dependencies: +```bash +cd ../.. && make integration +``` +# Running the tests + +```bash +python run_integration_test.py +``` + +Logs for `chutney` and `lightnion` will be found in `tests/logs`. + +## Notes + +### Troubleshooting + +- Launching chutney may fail because of paths being too long for unix socket. A solution is to move the project folder to a low level path like `/tmp`. + +### Infrastructure Components + +- `client`: a web browser client (selenium with geckodriver) +- `proxy`: a lightnion proxy +- `testnet`: a `testnet` simulated Tor network (chutney) +- `endpoint`: an endpoint for the websocket connection, the http server for the webpage and the lightnion code diff --git a/js-client/integration-tests/lightnion-websocket/common/__init__.py b/js-client/integration-tests/lightnion-websocket/common/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/js-client/integration-tests/lightnion-websocket/common/endpoint.py b/js-client/integration-tests/lightnion-websocket/common/endpoint.py new file mode 100755 index 0000000..89aa954 --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/common/endpoint.py @@ -0,0 +1,354 @@ +from aiohttp import web +from http.server import HTTPServer, SimpleHTTPRequestHandler +import datetime +import ssl +import asyncio +import aiohttp +import logging +import threading +import logging +import time +import socket +import sys +from .throughput import UploadState + +# for throughtput LTCP tests, hardcoded... +NUM_PACKETS = 10000 +PACKET_SIZE = 1000 + +async def http_handler(request): + name = request.match_info.get("name", "Anonymous") + text = "Hello, " + name + return aiohttp.web.Response(text=text) + + +async def websocket_handler(request): + """WebSocket Echo Handler for integration testing.""" + ws = aiohttp.web.WebSocketResponse(compress=False) + await ws.prepare(request) + + peername = request.transport.get_extra_info("peername") + if peername is not None: + logging.info(f"peer connected: {peername}") + request.app.endpoint.ws_connected_peers.add(peername) + + async for msg in ws: + + logging.info(f"received websocket message: {msg}") + + if msg.type == aiohttp.WSMsgType.TEXT: + if msg.data == "close": + await ws.close() + else: + response = msg.data + logging.info(f"sending websocket message: {response}") + await ws.send_str(response) + elif msg.type == aiohttp.WSMsgType.ERROR: + logging.info("ws connection closed with exception %s" % + ws.exception()) + + logging.info("websocket connection closed") + return ws + + +async def websocket_echo_handler(request): + """WebSocket Echo Handler for evaluation.""" + ws = aiohttp.web.WebSocketResponse() + await ws.prepare(request) + + async for msg in ws: + if msg.type == aiohttp.WSMsgType.TEXT: + if msg.data == "close": + await ws.close() + else: + response = msg.data + await ws.send_str(response) + elif msg.type == aiohttp.WSMsgType.ERROR: + logging.info("ws connection closed with exception %s" % + ws.exception()) + + logging.info("websocket connection closed") + return ws + + +async def websocket_time_to_first_message_handler(request): + """WebSocket Time to first message handler for evaluation.""" + ws = aiohttp.web.WebSocketResponse() + await ws.prepare(request) + + async for msg in ws: + if msg.type == aiohttp.WSMsgType.TEXT: + if msg.data == "close": + await ws.close() + else: + response = msg.data + # take the timestamp in ms + current_time_ms = int(datetime.datetime.now( + datetime.timezone.utc).timestamp() * 1000) # unix time + # send it as a string + await ws.send_str(f"{current_time_ms}") + elif msg.type == aiohttp.WSMsgType.ERROR: + logging.info("ws connection closed with exception %s" % + ws.exception()) + + logging.info("websocket connection closed") + return ws + + +async def websocket_upload_handler(request): + """WebSocket Upload Handler for evaluation. + + This is used to perform upload throughput tests from the javascript client. + """ + + ws = aiohttp.web.WebSocketResponse() + await ws.prepare(request) + endpoint = request.app.endpoint + + peername = request.transport.get_extra_info("peername") + if peername not in endpoint.upload_state_by_peer: + endpoint.upload_state_by_peer[peername] = UploadState() + + async for msg in ws: + if msg.type == aiohttp.WSMsgType.BINARY: + if not endpoint.upload_state_by_peer[peername].start_time: + # first packet received, record start time + endpoint.upload_state_by_peer[peername].start_time = int( + datetime.datetime.now().timestamp() * 1000) + + endpoint.upload_state_by_peer[peername].received_bytes += len( + msg.data) + + if (endpoint.upload_state_by_peer[peername].received_bytes >= endpoint.upload_state_by_peer[peername].expected_bytes): + end = int(datetime.datetime.now().timestamp() * 1000) + endpoint.upload_state_by_peer[peername].end_time = datetime.datetime.now( + ) + logging.info( + f"upload test ended for peer {peername}: received {expected_bytes} bytes") + + start = endpoint.upload_state_by_peer[peername].start_time + await ws.send_json({"start": start, "end": end}) + + elif msg.type == aiohttp.WSMsgType.TEXT: + if msg.data == "close": + await ws.close() + else: + # signal message, indicating the expected byte count to receive + received = msg.json() + if ("upload_bytes" in received): + expected_bytes = received["upload_bytes"] + endpoint.upload_state_by_peer[peername].expected_bytes = expected_bytes + logging.info( + f"peer {peername} started upload test for {expected_bytes} bytes") + + elif msg.type == aiohttp.WSMsgType.ERROR: + logging.info("ws connection closed with exception %s" % + ws.exception()) + + logging.info("websocket connection closed") + return ws + + +async def websocket_download_handler(request): + """WebSocket Upload Handler for evaluation. + + This is used to perform upload throughput tests from the javascript client. + """ + + ws = aiohttp.web.WebSocketResponse() + await ws.prepare(request) + endpoint = request.app.endpoint + + async for msg in ws: + if msg.type == aiohttp.WSMsgType.TEXT: + if msg.data == "close": + await ws.close() + else: + # signal message, indicating the byte count to send, and to start sending + received = msg.json() + if ("packetCount" in received and "packetSize" in received): + packet_count = received["packetCount"] + packet_size = received["packetSize"] + + # craft packet + pkt_src = [i % 256 for i in range(packet_size)] + pkt = bytearray(pkt_src) + + # wait some time + await asyncio.sleep(0.5) + + for i in range(packet_count): + await ws.send_bytes(pkt) + + elif msg.type == aiohttp.WSMsgType.ERROR: + logging.info("ws connection closed with exception %s" % + ws.exception()) + + logging.info("websocket connection closed") + return ws + + +class Endpoint: + """A HTTP/WebSocket endpoint used to test lightnion javscript client.""" + + def __init__( + self, host: str = "localhost", http_port: int = 8080, ws_port: int = None + ): + """Construct a test endpoint. + + The test endpoint hosts a HTTP and WebSocket server, both can be served on the same port or different. + + Args: + host (str): the host of the webserver (default: 'localhost') + http_port (int): the port of the http server + ws_port (int): the port of the webserver, if None, the same as the http_port + """ + + self.host = host + self.http_port = http_port + self.ws_port = ws_port + + # the set of peers that connected to the websocket + self.ws_connected_peers = set() + + # upload state for peers having started a throughput evaluation + self.upload_state_by_peer = {} + + # setup http server + self.http_app = aiohttp.web.Application() + self.http_app.endpoint = self + self.http_app.add_routes( + [ + # serve static files in public/ directory under route '/public' + web.static("/public", "./public/", show_index=True) + ] + ) + + if ws_port is None or ws_port == http_port: + self.http_app.add_routes( + [ + # serve websocket under route '/ws', + # for integration testing + web.get("/ws", websocket_handler), + web.get("/ws-echo", websocket_echo_handler), + web.get("/ws-upload", websocket_upload_handler), + web.get("/ws-download", websocket_download_handler), + web.get("/ws-ttfm", websocket_time_to_first_message_handler) + ] + ) + self.ws_app = None + self.ws_runner = None + else: + # setup a different websocket server + self.ws_app = aiohttp.web.Application() + self.ws_app.endpoint = self + self.ws_app.add_routes( + [ + # serve websocke tunder route '/ws', + # for integration testing + web.get("/ws", websocket_handler), + web.get("/ws-echo", websocket_echo_handler), + web.get("/ws-upload", websocket_upload_handler), + web.get("/ws-download", websocket_download_handler), + web.get("/ws-ttfm", websocket_time_to_first_message_handler) + ] + ) + self.ws_runner = aiohttp.web.AppRunner(self.ws_app) + + self.http_runner = aiohttp.web.AppRunner(self.http_app) + + def start(self): + # set event-loop if not defined (maybe running in a thread) + try: + loop = asyncio.get_event_loop() + except: + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + + loop.run_until_complete(self.http_runner.setup()) + http_site = aiohttp.web.TCPSite( + self.http_runner, self.host, self.http_port) + loop.run_until_complete(http_site.start()) + logging.info("http endpoint: started") + logging.info(f"http endpoint: running on {self.host}:{self.http_port}") + + if self.ws_runner: + loop.run_until_complete(self.ws_runner.setup()) + ws_site = aiohttp.web.TCPSite( + self.ws_runner, self.host, self.ws_port) + loop.run_until_complete(ws_site.start()) + logging.info("ws endpoint: started") + logging.info(f"ws endpoint: running on {self.host}:{self.ws_port}") + + # TCP + # self.tcp_echo_thread = threading.Thread(target = self.tcp_echo, daemon=True) + # self.tcp_echo_thread.start() + + async def tcp_echo(reader, writer): + request = None + while True: + request = await reader.read(255) + writer.write(request) + await writer.drain() + writer.close() + + async def tcp_ttfm(reader, writer): + import math + request = None + while True: + request = await reader.read(255) + current_time_ms = int(datetime.datetime.now( + datetime.timezone.utc).timestamp() * 1000) # unix time + writer.write(current_time_ms.to_bytes(32, 'little')) + await writer.drain() + writer.close() + + async def tcp_dl(reader, writer): + import math + request = None + while True: + request = await reader.read(1000) + # craft packet + pkt_src = [i % 256 for i in range(PACKET_SIZE)] + pkt = bytearray(pkt_src) + + # wait some time + await asyncio.sleep(0.5) + + for i in range(NUM_PACKETS): + writer.write(pkt) + await writer.drain() + writer.close() + + async def tcp_ul(reader, writer): + import math + request = None + start_time = None + end_time = None + recv_bytes = 0 + while True: + request = await reader.read(1000) + # print(request) + recv_bytes += len(request) + if start_time is None: + start_time = int(datetime.datetime.now().timestamp() * 1000) + if end_time is None and recv_bytes == NUM_PACKETS * PACKET_SIZE: + end_time = int(datetime.datetime.now().timestamp() * 1000) + + writer.write(start_time.to_bytes(32, 'little')) + writer.write(end_time.to_bytes(32, 'little')) + await writer.drain() + + writer.close() + + loop = asyncio.get_event_loop() + loop.create_task(asyncio.start_server(tcp_echo, 'localhost', 8082)) + loop.create_task(asyncio.start_server(tcp_ttfm, 'localhost', 8083)) + loop.create_task(asyncio.start_server(tcp_dl, 'localhost', 8084)) + loop.create_task(asyncio.start_server(tcp_ul, 'localhost', 8085)) + + loop.run_forever() + + def stop(self): + self.socket.close() + os._exit(0) diff --git a/js-client/integration-tests/lightnion-websocket/common/throughput.py b/js-client/integration-tests/lightnion-websocket/common/throughput.py new file mode 100644 index 0000000..0db2c92 --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/common/throughput.py @@ -0,0 +1,12 @@ +""" +Throughput evaluation helpers. +""" +from datetime import datetime + +class UploadState: + def __init__(self, start_time: datetime = None, end_time: datetime = None, expected_bytes: int = 0, received_bytes: int = 0): + self.start_time = start_time + self.end_time = end_time + self.expected_bytes = expected_bytes + self.received_bytes = received_bytes + diff --git a/js-client/integration-tests/lightnion-websocket/config.py b/js-client/integration-tests/lightnion-websocket/config.py new file mode 100644 index 0000000..ecfb0bf --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/config.py @@ -0,0 +1,21 @@ +HOST = "localhost" +HTTP_PORT = 8080 +WS_PORT = 8081 +TCP_PORT = 8082 +DEMO_PATH = "public/lws-echo-test.html" +EVALUATION_PATH = "public/evaluation/evaluation.html" + +WEBSOCKET_CONNECTING_WAIT = 5 # time to wait for the websocket to connect +WEBSOCKET_RESPONSE_WAIT = 2 # time to wait for the reception of a message +BROWSER_WAIT = 5 # time to wait for elements in the browser + +CHUTNEY = "./infra/chutney/chutney" +CHUTNEY_NET = "./infra/chutney/networks/basic" + +LIGHTNION_CWD = "./infra/lightnion" +LIGHTNION = "./venv/bin/python -m lightnion.proxy -s 127.0.0.1:5001 -d 7001 -c 8001 -vvv" + +LOG_DIRECTORY = "./logs" + +EVALUATION_WAIT = 1000 +EVALUATION_OUT_DIRECTORY = "./results" diff --git a/js-client/integration-tests/lightnion-websocket/infra/lightnion.sh b/js-client/integration-tests/lightnion-websocket/infra/lightnion.sh new file mode 100755 index 0000000..c99d44f --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/infra/lightnion.sh @@ -0,0 +1,7 @@ +#!/bin/sh +# start lightnion for integration tests + +source venv/bin/activate +cd ../../../../ +export PYTHONPATH="$PWD" +python -m lightnion.proxy -s 127.0.0.1:5001 -d 7001 -c 8001 -vvv diff --git a/js-client/integration-tests/lightnion-websocket/infra/setup.sh b/js-client/integration-tests/lightnion-websocket/infra/setup.sh new file mode 100755 index 0000000..da8d505 --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/infra/setup.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# setup dependencies for integration tests + +lightnion="../../../.." +lightnion-venv="venv/bin/activate" +chutney_dir="chutney" + + +# setup lightnion virtual environment +if [[ ! -e $lightnion_dir ]]; then + virtualenv venv + source venv/bin/activate + pip install -r "${lightnion}/requirements.txt" + pip install -r "${lightnion}/requirements-proxy.txt" +fi + + +# clone and setup chutney +if [[ ! -e $chutney_dir ]]; then + git clone https://git.torproject.org/chutney.git + # setup chutney from submodule in lightnion + cp ${lightnion_dir}/tools/chutney/* "${chutney_dir}/" + cd chutney + git apply sandbox_patch +fi + diff --git a/js-client/integration-tests/lightnion-websocket/public/echo-chat.css b/js-client/integration-tests/lightnion-websocket/public/echo-chat.css new file mode 100644 index 0000000..27d6640 --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/public/echo-chat.css @@ -0,0 +1,53 @@ +.user-input { + text-align: center; +} + +h1 { + text-align: center; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font: 13px Helvetica, Arial; +} + +form { + background: #000; + padding: 3px; + position: fixed; + bottom: 0; + width: 100%; +} + +form input { + border: 0; + padding: 10px; + width: 90%; + margin-right: .5%; +} + +form button { + width: 9%; + background: rgb(130, 224, 255); + border: none; + padding: 10px; +} + +#messages { + list-style-type: none; + margin: 0; + padding: 0; +} + +#messages li { + padding: 5px 10px; +} + +#messages li:nth-child(odd) { + background: #eee; +} \ No newline at end of file diff --git a/js-client/integration-tests/lightnion-websocket/public/lws-echo-test.html b/js-client/integration-tests/lightnion-websocket/public/lws-echo-test.html new file mode 100644 index 0000000..34ed85e --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/public/lws-echo-test.html @@ -0,0 +1,78 @@ + + + + + + + + + + + lightnion websocket redirect echo demo + + + + + + + +

    lightnion websocket redirect echo demo

    + +
      +
      + + +
      + + + + + + + + + \ No newline at end of file diff --git a/js-client/integration-tests/lightnion-websocket/requirements.txt b/js-client/integration-tests/lightnion-websocket/requirements.txt new file mode 100644 index 0000000..00b8ac7 --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/requirements.txt @@ -0,0 +1,4 @@ +selenium +aiohttp +pytest +psutil diff --git a/js-client/integration-tests/lightnion-websocket/run_integration_tests.py b/js-client/integration-tests/lightnion-websocket/run_integration_tests.py new file mode 100644 index 0000000..7b883df --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/run_integration_tests.py @@ -0,0 +1,22 @@ + +import logging +import signal +import unittest + +from tests.test_normal_behavior import NormalBehaviorTest + +if __name__ == "__main__": + def sigint_handler(signal, frame): + NormalBehaviorTest.close() + raise KeyboardInterrupt + + logging.basicConfig(level=logging.INFO) + signal.signal(signal.SIGINT, sigint_handler) + + suite = unittest.TestSuite() + suite.addTest(NormalBehaviorTest("test_webpage_get")) + suite.addTest(NormalBehaviorTest("test_echo_message")) + suite.addTest(NormalBehaviorTest("test_using_redirection")) + + runner = unittest.TextTestRunner() + runner.run(suite) diff --git a/js-client/integration-tests/lightnion-websocket/tests/lightion_websocket_test.py b/js-client/integration-tests/lightnion-websocket/tests/lightion_websocket_test.py new file mode 100644 index 0000000..7c702fc --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/tests/lightion_websocket_test.py @@ -0,0 +1,185 @@ +import logging +import threading +import unittest +import subprocess +import sys +import time +import os +import re +import psutil + +from signal import SIGKILL +from abc import ABC, abstractclassmethod +from pathlib import Path + +from selenium import webdriver +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.firefox.options import Options +from selenium.webdriver.support.wait import WebDriverWait + +from common.endpoint import Endpoint +from .utils import ReceivedMessage, WebSocketStatus, received_messages, sent_messages +from config import * + +""" +Integration tests for lightnion javascript websocket redirection. +""" + + +class LightnionWebSocketTest(ABC, unittest.TestCase): + """Abstract base class for tests of lightnion's websocket redirection. + + Instanciates: + - an endpoint (http+websocket) + - a Tor test network (chutney) + - a ligthnion proxy + """ + tor_pids = [] + + @abstractclassmethod + def endpoint_cls(self): + """Returns the class of the endpoint.""" + raise NotImplementedError + + @classmethod + def setUpClass(cls, http_port: int = HTTP_PORT, ws_port: int = WS_PORT, profile = None): + + # instanciate endpoint server + cls.endpoint = cls.endpoint_cls()(HOST, http_port, ws_port) + cls.endpoint_thread = threading.Thread( + target=cls.endpoint.start, name="endpoint-thread", daemon=True + ) + + if not os.path.exists(LOG_DIRECTORY): + os.mkdir(LOG_DIRECTORY) + cls.chutney_stdout = os.open("logs/chutney_stdout.log", os.O_WRONLY | os.O_CREAT) + cls.chutney_stderr = os.open("logs/chutney_stderr.log", os.O_WRONLY | os.O_CREAT) + cls.lightnion_stdout = os.open("logs/lightnion_stdout.log", os.O_WRONLY | os.O_CREAT) + cls.lightnion_stderr = os.open("logs/lightnion_stderrr.log", os.O_WRONLY | os.O_CREAT) + + # start external programs + # TODO + try: + cls.start_chutney() + time.sleep(30) + cls.start_lightnion() + cls.start_endpoint() + time.sleep(30) + except RuntimeError: + logging.error("could not set up test infrastructure") + cls.close() + sys.exit(1) + + # instanciate driver + options = Options() + options.headless = True + if profile is None: + cls.driver = webdriver.Firefox(options=options) + else: + cls.driver = webdriver.Firefox(options=options, firefox_profile=profile) + cls.driver.implicitly_wait(BROWSER_WAIT) + + @classmethod + def close(cls): + cls.stop_endpoint() + cls.stop_lightnion() + cls.stop_chutney() + try: + cls.driver.close() + except AttributeError: + pass + + @classmethod + def tearDownClass(cls): + cls.close() + + @classmethod + def start_chutney(cls): + """Start test Tor network.""" + logging.info("starting chutney") + p = subprocess.run([CHUTNEY, "configure", CHUTNEY_NET], stdout=cls.chutney_stdout, stderr=cls.chutney_stderr) + if p.returncode != 0: + logging.error("could not configure chutney test network") + raise RuntimeError + + p = subprocess.run([CHUTNEY, "start", CHUTNEY_NET], stdout=cls.chutney_stdout, stderr=cls.chutney_stderr) + if p.returncode != 0: + logging.error("could not start chutney test network") + raise RuntimeError + time.sleep(2) + + try: + output = subprocess.check_output([CHUTNEY, "status", CHUTNEY_NET]) + # find pids of tor test nodes from output of status command + pids_str = re.findall(r"PID\s+\d+", str(output)) + cls.tor_pids = [int(s[4:]) for s in pids_str] + + for line in str(output).split("\\n"): + logging.info(f"\t{line}") + except subprocess.CalledProcessError: + logging.error("could not status chutney test network") + raise RuntimeError + + @classmethod + def stop_chutney(cls): + """Stop test Tor network.""" + logging.info("stopping chutney") + p = subprocess.run([CHUTNEY, "stop", CHUTNEY_NET], stdout=cls.chutney_stdout, stderr=cls.chutney_stderr) + if p.returncode != 0: + logging.error("could not stop chutney test network") + + @classmethod + def start_lightnion(cls): + """Start lightnion proxy.""" + logging.info("starting lightnion") + cwd = Path.cwd() / Path(LIGHTNION_CWD) + cls.__lightnion_process = subprocess.Popen(LIGHTNION.split(' '), cwd=cwd, shell=False, stdout=cls.lightnion_stdout, stderr=cls.lightnion_stderr) + + @classmethod + def stop_lightnion(cls): + """Stop lightnion proxy.""" + logging.info("stopping lightnion") + try: + cls.__lightnion_process.kill() + except AttributeError: + # lightnion process was not initialized + pass + + @classmethod + def start_endpoint(cls): + """Start http/websocket endpoint.""" + logging.info("starting endpoint") + cls.endpoint_thread.start() + + @classmethod + def stop_endpoint(cls): + """Start http/websocket endpoint""" + logging.info("stopping endpoint") + # no need to kill thread since daemon + pass + + def driver_connections(self): + """Return the set of remote ports the driver is connected to.""" + browser_connections = psutil.Process( + self.driver.service.process.pid + ).connections() + browser_rports = [c.raddr.port for c in browser_connections if c.raddr] + return browser_rports + + def setUp(self): + pass + + def tearDown(self): + pass + + def wait_for_websocket(self): + wait = WebDriverWait(self.driver, WEBSOCKET_CONNECTING_WAIT) + state = wait.until(WebSocketStatus("window.ws")) + + if not state: + # could not connect, still in CONNECTING state + self.fail( + f"websocket could not connect, still in CONNECTING state after {WEBSOCKET_CONNECTING_WAIT} seconds" + ) + return state + diff --git a/js-client/integration-tests/lightnion-websocket/tests/test_missing_websocket_server.py b/js-client/integration-tests/lightnion-websocket/tests/test_missing_websocket_server.py new file mode 100644 index 0000000..7caf3ba --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/tests/test_missing_websocket_server.py @@ -0,0 +1,58 @@ +import threading +import unittest +import signal +import logging +import psutil + +from selenium import webdriver +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.firefox.options import Options +from selenium.webdriver.support.wait import WebDriverWait + +from common.endpoint import Endpoint +from .config import * +from .lightion_websocket_test import LightnionWebSocketTest +from .utils import ReceivedMessage, WebSocketStatus, received_messages, sent_messages + + +class NonExistingWebSocketServerTest(LightnionWebSocketTest): + """Test cases when the client connects to a non existing websocket server.""" + + @classmethod + def endpoint_cls(cls): + return Endpoint + + @classmethod + def setUpClass(cls): + super().setUpClass( + HTTP_PORT, WS_PORT + 1 + ) # setup ws server on a different port + cls.demo_url = f"http://{HOST}:{HTTP_PORT}/{DEMO_PATH}" + + def setUp(self): + super().setUp() + + def tearDown(self): + super().tearDown() + + def test_webpage_get(self): + """Test that the webpage is available and that the websocket connection does not establishes.""" + self.driver.get(self.demo_url) + self.assertIn("lightnion websocket redirect echo demo", self.driver.title) + + # wait for a state change + state = self.wait_for_websocket() + self.assertEqual(state, 3, "websocket expected to be closed") + + # TODO: verify no direct connection trial + + +def sigint_handler(signal, frame): + NonExistingWebSocketServerTest.close() + raise KeyboardInterrupt + + +if __name__ == "__main__": + logging.basicConfig(level=logging.INFO) + signal.signal(signal.SIGINT, sigint_handler) + unittest.main() diff --git a/js-client/integration-tests/lightnion-websocket/tests/test_normal_behavior.py b/js-client/integration-tests/lightnion-websocket/tests/test_normal_behavior.py new file mode 100755 index 0000000..7cf7868 --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/tests/test_normal_behavior.py @@ -0,0 +1,149 @@ +import threading +import unittest +import signal +import logging +import psutil +import time + +from selenium import webdriver +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.firefox.options import Options +from selenium.webdriver.support.wait import WebDriverWait + +from common.endpoint import Endpoint +from config import * +from .lightion_websocket_test import LightnionWebSocketTest +from .utils import ReceivedMessage, WebSocketStatus, received_messages, sent_messages + +class NormalBehaviorTest(LightnionWebSocketTest): + """Test cases for normal operations.""" + + @classmethod + def endpoint_cls(cls): + return Endpoint + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.demo_url = f"http://{HOST}:{HTTP_PORT}/{DEMO_PATH}" + cls.ws_url = f"ws://{HOST}:{WS_PORT}/ws" + + def setUp(self): + super().setUp() + + def tearDown(self): + super().tearDown() + + def wait_for_websocket(self): + wait = WebDriverWait(self.driver, WEBSOCKET_CONNECTING_WAIT) + state = wait.until(WebSocketStatus("window.ws")) + + if not state: + # could not connect, still in CONNECTING state + self.fail( + f"websocket could not connect, still in CONNECTING state after {WEBSOCKET_CONNECTING_WAIT} seconds" + ) + return state + + def expect_message(self, expected_message): + """Wait for a message to be received by the websocket, fail if not received.""" + wait = WebDriverWait(self.driver, WEBSOCKET_RESPONSE_WAIT) + received = wait.until(ReceivedMessage(expected_message)) + + self.assertTrue( + received, + f"did not receive expeceted message from server: {expected_message}", + ) + + def send(self, msg: str) -> None: + """Send a message via the user interface.""" + self.driver.find_element_by_id("echo-input").clear() + self.driver.find_element_by_id("echo-input").send_keys(msg) + self.driver.find_element_by_id("echo-button").click() + + @property + def sent_messages(self): + """Return the list of client messages.""" + return sent_messages(self.driver) + + @property + def received_messages(self): + return received_messages(self.driver) + + def test_webpage_get(self): + """Test that the webpage is available and that the websocket connection establishes to the correct endpoint.""" + self.driver.get(self.demo_url) + self.assertIn("lightnion websocket redirect echo demo", self.driver.title) + + # wait for a state change + state = self.wait_for_websocket() + self.assertEqual(state, 1, "could not connect to websocket") + + # get url of the websocket endpoint + ws_url = self.driver.execute_script("return window.ws.url;") + self.assertEqual( + ws_url, + self.ws_url, + f"websocket is not connected to the correct endpoint: expected {self.ws_url}, got: {ws_url}", + ) + + def test_echo_message(self): + """Test that a message sent is echoed back, + hence it is really sent and well received.""" + self.driver.get(self.demo_url) + + # wait for a state change + state = self.wait_for_websocket() + self.assertEqual(state, 1, "could not connect to websocket") + + # send message and expect response + time.sleep(5) + message = "test message" + self.send(message) + self.expect_message(message) + + def test_using_redirection(self): + """Test that the websocket connection is redirected. + + For that, list the ESTABLISHED TCP connections of the browser (webdriver) process, + and check that remote addresses do not match with the websocket server's. + """ + self.driver.get(self.demo_url) + + # wait for a state change + state = self.wait_for_websocket() + self.assertEqual(state, 1, "could not connect to websocket") + + # list remote ports connected to the browser + for c in self.driver_connections(): + self.assertTrue( + c != WS_PORT, + "browser is connected to the websocket directly, not redirected", + ) + + # check that all connections to the websocket are from Tor nodes + + tor_ports = set() # ports used by the tor processes + for pid in self.tor_pids: + p = psutil.Process(pid) + for c in p.connections(): + if c.laddr: + tor_ports.add(c.laddr.port) + + for peer in self.endpoint.ws_connected_peers: + port = peer[1] + self.assertTrue( + port in tor_ports, + "found a peer connected to the websocket that is not a tor process", + ) + + +def sigint_handler(signal, frame): + NonExistingWebSocketServerTest.close() + raise KeyboardInterrupt + + +if __name__ == "__main__": + logging.basicConfig(level=logging.INFO) + signal.signal(signal.SIGINT, sigint_handler) + unittest.main() diff --git a/js-client/integration-tests/lightnion-websocket/tests/utils.py b/js-client/integration-tests/lightnion-websocket/tests/utils.py new file mode 100755 index 0000000..8b7b203 --- /dev/null +++ b/js-client/integration-tests/lightnion-websocket/tests/utils.py @@ -0,0 +1,47 @@ +"""Some utilities for integration tests.""" + + +def messages_with_class_name(driver, cname): + messages = driver.find_element_by_id( + "messages").find_elements_by_class_name(cname) + return [m.text for m in messages] + + +def sent_messages(driver): + return messages_with_class_name(driver, "client") + + +def received_messages(driver): + return messages_with_class_name(driver, "server") + + +class WebSocketStatus: + """An expectation for checking that a websocket is in a OPEN, CLOSING or CLOSED state. + + Used to wait on a websocket to be connected (or failed). + + see https://selenium-python.OPENreadthedocs.io/waits.html + """ + + def __init__(self, websocket_name): + self.ws_name = websocket_name + + def __call__(self, driver): + try: + state = driver.execute_script( + f"return {self.ws_name}.readyState;") + if state >= 1: + return state + else: + return False + except: + return False + +class ReceivedMessage: + """An expectation for checking that a websocket received a specific message.""" + + def __init__(self, expected_message): + self.msg = expected_message + + def __call__(self, driver): + return self.msg in received_messages(driver) diff --git a/js-client/package-lock.json b/js-client/package-lock.json new file mode 100644 index 0000000..77f0a56 --- /dev/null +++ b/js-client/package-lock.json @@ -0,0 +1,2843 @@ +{ + "name": "lightnion-js", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@types/estree": { + "version": "0.0.42", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.42.tgz", + "integrity": "sha512-K1DPVvnBCPxzD+G51/cxVIoc2X8uUVl1zpJeE6iKcgHMj4+tbat5Xu4TjV7v2QSDbIeAfLi2hIk+u2+s0MlpUQ==", + "dev": true + }, + "@types/node": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.5.2.tgz", + "integrity": "sha512-Fr6a47c84PRLfd7M7u3/hEknyUdQrrBA6VoPmkze0tcflhU5UnpWEX2kn12ktA/lb+MNHSqFlSiPHIHsaErTPA==", + "dev": true + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "abab": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", + "dev": true + }, + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "dev": true + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", + "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", + "dev": true + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "dev": true + }, + "ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", + "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + } + } + }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true + }, + "blob-polyfill": { + "version": "4.0.20190430", + "resolved": "https://registry.npmjs.org/blob-polyfill/-/blob-polyfill-4.0.20190430.tgz", + "integrity": "sha512-REie9DM5XvHcqa9tuVT1QverzNpPbuRGffFGfwtHhZLHoToiAFP2YxHqVTQvET+UYnjRttGnlWag0+i3YgPKtw==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-or-node": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.2.1.tgz", + "integrity": "sha512-sVIA0cysIED0nbmNOm7sZzKfgN1rpFmrqvLZaFWspaBAftfQcezlC81G6j6U2RJf4Lh66zFxrCeOsvkUXIcPWg==" + }, + "browser-process-hrtime": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "dev": true + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "catharsis": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", + "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-blob": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cross-blob/-/cross-blob-1.2.0.tgz", + "integrity": "sha512-34Hn7h8NhHJnKh5yztq2Xk3hdbwuyok7T/3kNUgpg4nkABaD8vjMgln8RtxSUbFpReJFvTIKQubU41gai3cEdg==", + "requires": { + "blob-polyfill": "^4.0.20190430", + "fetch-blob": "^1.0.5" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz", + "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decimal.js": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", + "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", + "dev": true + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "requires": { + "webidl-conversions": "^5.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.13.0.tgz", + "integrity": "sha512-eYk2dCkxR07DsHA/X2hRBj0CFAZeri/LyDMc0C8JT1Hqi6JnVpMhJ7XFITbb0+yZS3lVkaPL2oCkZ3AVmeVbMw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + } + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true + }, + "espree": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", + "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "dev": true, + "requires": { + "acorn": "^7.1.0", + "acorn-jsx": "^5.1.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fetch-blob": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-1.0.5.tgz", + "integrity": "sha512-BIggzO037jmCrZmtgntzCD2ymEaWgw9OMJsfX7FOS1jXGqKW9FEhETJN8QK4KxzIJknRl3RQdyzz34of+NNTMQ==" + }, + "figures": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", + "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.0.tgz", + "integrity": "sha512-Y9prnPKkM7FXxQevZ5UH8Z6aVTY0ede1tHquck5UxGmKWDshxXh95gSa2xXYjS8AsGO5iOvrCI5+GttRKnLdNA==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inquirer": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", + "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-reference": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz", + "integrity": "sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==", + "dev": true, + "requires": { + "@types/estree": "0.0.39" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + } + } + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "js2xmlparser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.0.tgz", + "integrity": "sha512-WuNgdZOXVmBk5kUPMcTcVUpbGRzLfNkv7+7APq7WiDihpXVKrgxo6wwRpRl9OQeEBgKCVk9mR7RbzrnNWC8oBw==", + "dev": true, + "requires": { + "xmlcreate": "^2.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdoc": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.3.tgz", + "integrity": "sha512-Yf1ZKA3r9nvtMWHO1kEuMZTlHOF8uoQ0vyo5eH7SQy5YeIiHM+B0DgKnn+X6y6KDYZcF7G2SPkKF+JORCXWE/A==", + "dev": true, + "requires": { + "@babel/parser": "^7.4.4", + "bluebird": "^3.5.4", + "catharsis": "^0.8.11", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.0", + "klaw": "^3.0.0", + "markdown-it": "^8.4.2", + "markdown-it-anchor": "^5.0.2", + "marked": "^0.7.0", + "mkdirp": "^0.5.1", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.0.1", + "taffydb": "2.6.2", + "underscore": "~1.9.1" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "jsdom": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.0.1.tgz", + "integrity": "sha512-wKJe/APzq+ak9i+2ybWE20lDIhF9AkGKSZf8UsjPN39acatFB6oA7K397kQvHVikds0yQono2h6J7UjbPtPOWw==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "acorn": "^7.1.0", + "acorn-globals": "^4.3.2", + "cssom": "^0.4.4", + "cssstyle": "^2.0.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.12.1", + "html-encoding-sniffer": "^2.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.0", + "request-promise-native": "^1.0.8", + "saxes": "^4.0.2", + "symbol-tree": "^3.2.2", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^5.0.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.1", + "xml-name-validator": "^3.0.0" + } + }, + "jsdom-global": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz", + "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "magic-string": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.6.tgz", + "integrity": "sha512-3a5LOMSGoCTH5rbqobC2HuDNRtE2glHZ8J7pK+QZYppyWA36yuNpsX994rIY2nCuyP7CZYy7lQq/X2jygiZ89g==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "markdown-it": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", + "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "entities": "~1.1.1", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + }, + "markdown-it-anchor": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.5.tgz", + "integrity": "sha512-xLIjLQmtym3QpoY9llBgApknl7pxAcN3WDRc2d3rwpl+/YvDZHPmKscGs+L6E05xf2KrCXPBvosWt7MZukwSpQ==", + "dev": true + }, + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "dev": true + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "dev": true, + "requires": { + "mime-db": "1.43.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "mocha": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.0.1.tgz", + "integrity": "sha512-9eWmWTdHLXh72rGrdZjNbG3aa1/3NRPpul1z0D979QpEnFdCG0Q5tv834N+94QEN2cysfV72YocQ3fn87s70fg==", + "dev": true, + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.0", + "yargs-parser": "13.1.1", + "yargs-unparser": "1.6.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "node-forge": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.1.tgz", + "integrity": "sha512-G6RlQt5Sb4GMBzXvhfkeFmbqR6MzhtnT7VTHuLadjkii3rdYHNdw0m8zA4BTxVIh68FicCQ2NSUANpsqkr9jvQ==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "psl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + } + } + }, + "request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "request-promise-native": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", + "dev": true, + "requires": { + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "resolve": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", + "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.30.1.tgz", + "integrity": "sha512-Uus8mwQXwaO+ZVoNwBcXKhT0AvycFCBW/W8VZtkpVGsotRllWk9oldfCjqWmTnFRI0y7x6BnEqSqc65N+/YdBw==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + } + }, + "rollup-plugin-commonjs": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz", + "integrity": "sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-legacy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-legacy/-/rollup-plugin-legacy-1.0.0.tgz", + "integrity": "sha1-0IvfxEEL0Tgn9CeMUYcNPY29HqM=", + "dev": true, + "requires": { + "rollup-pluginutils": "^1.5.2" + }, + "dependencies": { + "estree-walker": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz", + "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=", + "dev": true + }, + "rollup-pluginutils": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz", + "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=", + "dev": true, + "requires": { + "estree-walker": "^0.2.1", + "minimatch": "^3.0.2" + } + } + } + }, + "rollup-plugin-node-resolve": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz", + "integrity": "sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==", + "dev": true, + "requires": { + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.11.1", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-terser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.2.0.tgz", + "integrity": "sha512-jQI+nYhtDBc9HFRBz8iGttQg7li9klmzR62RG2W2nN6hJ/FI2K2ItYQ7kJ7/zn+vs+BP1AEccmVRjRN989I+Nw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "jest-worker": "^24.9.0", + "rollup-pluginutils": "^2.8.2", + "serialize-javascript": "^2.1.2", + "terser": "^4.6.2" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "saxes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-4.0.2.tgz", + "integrity": "sha512-EZOTeQ4bgkOaGCDaTKux+LaRNcLNbdbvMH7R3/yjEEULPEmqvkFbFub6DJhJTub2iGMT93CfpZ5LTdKZmAbVeQ==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + } + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "terser": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.0.tgz", + "integrity": "sha512-LrErSqfhdUw73AC/eXV2fEmNkvgSYxfm5lvxnLvuVgoVDknvD28Pa5FeDGc8RuVouDxUD3GnHHFv7xnBp7As5w==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.2.tgz", + "integrity": "sha512-+8aPRjmXgf1VqvyxSlBUzKzeYqVS9Ai8vZ28g+mL7dNQl1jlUTCMDZnvNQdAS1xTywMkIXwJsfipsR/6s2+syw==" + }, + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "underscore": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz", + "integrity": "sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "^0.1.2" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.0.0.tgz", + "integrity": "sha512-41ou2Dugpij8/LPO5Pq64K5q++MnRCBpEHvQr26/mArEKTkCV5aoXIqyhuYtE0pkqScXwhf2JP57rkRTYM29lQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.0", + "webidl-conversions": "^5.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "ws": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz", + "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==", + "dev": true + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "xmlcreate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.1.tgz", + "integrity": "sha512-MjGsXhKG8YjTKrDCXseFo3ClbMGvUD4en29H2Cev1dv4P/chlpw6KdYmlCWDkhosBVKRDjM836+3e3pm1cBNJA==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + } + } + } +} diff --git a/js-client/package.json b/js-client/package.json new file mode 100644 index 0000000..f5ad92d --- /dev/null +++ b/js-client/package.json @@ -0,0 +1,34 @@ +{ + "name": "lightnion-js", + "version": "1.0.0", + "description": "The Lightnion Javascript client.", + "main": "src/lnn.js", + "dependencies": { + "big-integer": "^1.6.48", + "browser-or-node": "^1.2.1", + "cross-blob": "^1.2.0", + "node-forge": "^0.9.1", + "tweetnacl": "^1.0.2", + "tweetnacl-util": "^0.15.1" + }, + "devDependencies": { + "chai": "^4.2.0", + "eslint": "^6.8.0", + "esm": "^3.2.25", + "jsdoc": "^3.6.3", + "jsdom": "^16.0.1", + "jsdom-global": "^3.0.2", + "mocha": "^7.0.1", + "rollup": "^1.30.1", + "rollup-plugin-commonjs": "^10.1.0", + "rollup-plugin-legacy": "^1.0.0", + "rollup-plugin-node-resolve": "^5.2.0", + "rollup-plugin-terser": "^5.2.0" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "rollup -c" + }, + "author": "SPRING Lab, EPFL", + "license": "BSD-3-Clause" +} diff --git a/js-client/rollup.config.js b/js-client/rollup.config.js new file mode 100644 index 0000000..2088671 --- /dev/null +++ b/js-client/rollup.config.js @@ -0,0 +1,21 @@ +import resolve from 'rollup-plugin-node-resolve'; +import commonjs from 'rollup-plugin-commonjs'; + +export default [ + { + input: 'src/lnn.js', + output: { + name: "lightnion.bundle", + file: 'dist/lightnion.bundle.js', + format: 'iife', + sourcemap: true + }, + plugins: [ + resolve({ + browser: true, + preferBuiltins: false + }), + commonjs() + ], + } +]; \ No newline at end of file diff --git a/js-client/sjcl b/js-client/sjcl deleted file mode 160000 index cc887b5..0000000 --- a/js-client/sjcl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit cc887b518c026407e4ad11ecef37ad9e40d4bd40 diff --git a/js-client/sjcl.patch b/js-client/sjcl.patch deleted file mode 100644 index 21a38fd..0000000 --- a/js-client/sjcl.patch +++ /dev/null @@ -1,8 +0,0 @@ -diff --git a/config.mk b/config.mk -index 1a6a361..e3dbe84 100644 ---- a/config.mk -+++ b/config.mk -@@ -1,2 +1,2 @@ --SOURCES= core/sjcl.js core/aes.js core/bitArray.js core/codecString.js core/codecHex.js core/codecBase32.js core/codecBase64.js core/sha256.js core/ccm.js core/ocb2.js core/gcm.js core/hmac.js core/pbkdf2.js core/random.js core/convenience.js core/exports.js -+SOURCES= core/sjcl.js core/aes.js core/bitArray.js core/codecBytes.js core/codecString.js core/codecHex.js core/codecBase32.js core/codecBase64.js core/sha1.js core/sha256.js core/ccm.js core/ocb2.js core/gcm.js core/hmac.js core/pbkdf2.js core/random.js core/convenience.js core/exports.js - COMPRESS= core_closure.js diff --git a/js-client/src/BigInteger.min.js b/js-client/src/BigInteger.min.js deleted file mode 100644 index c7ca345..0000000 --- a/js-client/src/BigInteger.min.js +++ /dev/null @@ -1 +0,0 @@ -var bigInt=function(undefined){"use strict";var BASE=1e7,LOG_BASE=7,MAX_INT=9007199254740992,MAX_INT_ARR=smallToArray(MAX_INT),DEFAULT_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyz";var supportsNativeBigInt=typeof BigInt==="function";function Integer(v,radix,alphabet,caseSensitive){if(typeof v==="undefined")return Integer[0];if(typeof radix!=="undefined")return+radix===10&&!alphabet?parseValue(v):parseBase(v,radix,alphabet,caseSensitive);return parseValue(v)}function BigInteger(value,sign){this.value=value;this.sign=sign;this.isSmall=false}BigInteger.prototype=Object.create(Integer.prototype);function SmallInteger(value){this.value=value;this.sign=value<0;this.isSmall=true}SmallInteger.prototype=Object.create(Integer.prototype);function NativeBigInt(value){this.value=value}NativeBigInt.prototype=Object.create(Integer.prototype);function isPrecise(n){return-MAX_INT0)return Math.floor(n);return Math.ceil(n)}function add(a,b){var l_a=a.length,l_b=b.length,r=new Array(l_a),carry=0,base=BASE,sum,i;for(i=0;i=base?1:0;r[i]=sum-carry*base}while(i0)r.push(carry);return r}function addAny(a,b){if(a.length>=b.length)return add(a,b);return add(b,a)}function addSmall(a,carry){var l=a.length,r=new Array(l),base=BASE,sum,i;for(i=0;i0){r[i++]=carry%base;carry=Math.floor(carry/base)}return r}BigInteger.prototype.add=function(v){var n=parseValue(v);if(this.sign!==n.sign){return this.subtract(n.negate())}var a=this.value,b=n.value;if(n.isSmall){return new BigInteger(addSmall(a,Math.abs(b)),this.sign)}return new BigInteger(addAny(a,b),this.sign)};BigInteger.prototype.plus=BigInteger.prototype.add;SmallInteger.prototype.add=function(v){var n=parseValue(v);var a=this.value;if(a<0!==n.sign){return this.subtract(n.negate())}var b=n.value;if(n.isSmall){if(isPrecise(a+b))return new SmallInteger(a+b);b=smallToArray(Math.abs(b))}return new BigInteger(addSmall(b,Math.abs(a)),a<0)};SmallInteger.prototype.plus=SmallInteger.prototype.add;NativeBigInt.prototype.add=function(v){return new NativeBigInt(this.value+parseValue(v).value)};NativeBigInt.prototype.plus=NativeBigInt.prototype.add;function subtract(a,b){var a_l=a.length,b_l=b.length,r=new Array(a_l),borrow=0,base=BASE,i,difference;for(i=0;i=0){value=subtract(a,b)}else{value=subtract(b,a);sign=!sign}value=arrayToSmall(value);if(typeof value==="number"){if(sign)value=-value;return new SmallInteger(value)}return new BigInteger(value,sign)}function subtractSmall(a,b,sign){var l=a.length,r=new Array(l),carry=-b,base=BASE,i,difference;for(i=0;i=0)};SmallInteger.prototype.minus=SmallInteger.prototype.subtract;NativeBigInt.prototype.subtract=function(v){return new NativeBigInt(this.value-parseValue(v).value)};NativeBigInt.prototype.minus=NativeBigInt.prototype.subtract;BigInteger.prototype.negate=function(){return new BigInteger(this.value,!this.sign)};SmallInteger.prototype.negate=function(){var sign=this.sign;var small=new SmallInteger(-this.value);small.sign=!sign;return small};NativeBigInt.prototype.negate=function(){return new NativeBigInt(-this.value)};BigInteger.prototype.abs=function(){return new BigInteger(this.value,false)};SmallInteger.prototype.abs=function(){return new SmallInteger(Math.abs(this.value))};NativeBigInt.prototype.abs=function(){return new NativeBigInt(this.value>=0?this.value:-this.value)};function multiplyLong(a,b){var a_l=a.length,b_l=b.length,l=a_l+b_l,r=createArray(l),base=BASE,product,carry,i,a_i,b_j;for(i=0;i0){r[i++]=carry%base;carry=Math.floor(carry/base)}return r}function shiftLeft(x,n){var r=[];while(n-- >0)r.push(0);return r.concat(x)}function multiplyKaratsuba(x,y){var n=Math.max(x.length,y.length);if(n<=30)return multiplyLong(x,y);n=Math.ceil(n/2);var b=x.slice(n),a=x.slice(0,n),d=y.slice(n),c=y.slice(0,n);var ac=multiplyKaratsuba(a,c),bd=multiplyKaratsuba(b,d),abcd=multiplyKaratsuba(addAny(a,b),addAny(c,d));var product=addAny(addAny(ac,shiftLeft(subtract(subtract(abcd,ac),bd),n)),shiftLeft(bd,2*n));trim(product);return product}function useKaratsuba(l1,l2){return-.012*l1-.012*l2+15e-6*l1*l2>0}BigInteger.prototype.multiply=function(v){var n=parseValue(v),a=this.value,b=n.value,sign=this.sign!==n.sign,abs;if(n.isSmall){if(b===0)return Integer[0];if(b===1)return this;if(b===-1)return this.negate();abs=Math.abs(b);if(abs=0;shift--){quotientDigit=base-1;if(remainder[shift+b_l]!==divisorMostSignificantDigit){quotientDigit=Math.floor((remainder[shift+b_l]*base+remainder[shift+b_l-1])/divisorMostSignificantDigit)}carry=0;borrow=0;l=divisor.length;for(i=0;ib_l){highx=(highx+1)*base}guess=Math.ceil(highx/highy);do{check=multiplySmall(b,guess);if(compareAbs(check,part)<=0)break;guess--}while(guess);result.push(guess);part=subtract(part,check)}result.reverse();return[arrayToSmall(result),arrayToSmall(part)]}function divModSmall(value,lambda){var length=value.length,quotient=createArray(length),base=BASE,i,q,remainder,divisor;remainder=0;for(i=length-1;i>=0;--i){divisor=remainder*base+value[i];q=truncate(divisor/lambda);remainder=divisor-q*lambda;quotient[i]=q|0}return[quotient,remainder|0]}function divModAny(self,v){var value,n=parseValue(v);if(supportsNativeBigInt){return[new NativeBigInt(self.value/n.value),new NativeBigInt(self.value%n.value)]}var a=self.value,b=n.value;var quotient;if(b===0)throw new Error("Cannot divide by zero");if(self.isSmall){if(n.isSmall){return[new SmallInteger(truncate(a/b)),new SmallInteger(a%b)]}return[Integer[0],self]}if(n.isSmall){if(b===1)return[self,Integer[0]];if(b==-1)return[self.negate(),Integer[0]];var abs=Math.abs(b);if(absb.length?1:-1}for(var i=a.length-1;i>=0;i--){if(a[i]!==b[i])return a[i]>b[i]?1:-1}return 0}BigInteger.prototype.compareAbs=function(v){var n=parseValue(v),a=this.value,b=n.value;if(n.isSmall)return 1;return compareAbs(a,b)};SmallInteger.prototype.compareAbs=function(v){var n=parseValue(v),a=Math.abs(this.value),b=n.value;if(n.isSmall){b=Math.abs(b);return a===b?0:a>b?1:-1}return-1};NativeBigInt.prototype.compareAbs=function(v){var a=this.value;var b=parseValue(v).value;a=a>=0?a:-a;b=b>=0?b:-b;return a===b?0:a>b?1:-1};BigInteger.prototype.compare=function(v){if(v===Infinity){return-1}if(v===-Infinity){return 1}var n=parseValue(v),a=this.value,b=n.value;if(this.sign!==n.sign){return n.sign?1:-1}if(n.isSmall){return this.sign?-1:1}return compareAbs(a,b)*(this.sign?-1:1)};BigInteger.prototype.compareTo=BigInteger.prototype.compare;SmallInteger.prototype.compare=function(v){if(v===Infinity){return-1}if(v===-Infinity){return 1}var n=parseValue(v),a=this.value,b=n.value;if(n.isSmall){return a==b?0:a>b?1:-1}if(a<0!==n.sign){return a<0?-1:1}return a<0?1:-1};SmallInteger.prototype.compareTo=SmallInteger.prototype.compare;NativeBigInt.prototype.compare=function(v){if(v===Infinity){return-1}if(v===-Infinity){return 1}var a=this.value;var b=parseValue(v).value;return a===b?0:a>b?1:-1};NativeBigInt.prototype.compareTo=NativeBigInt.prototype.compare;BigInteger.prototype.equals=function(v){return this.compare(v)===0};NativeBigInt.prototype.eq=NativeBigInt.prototype.equals=SmallInteger.prototype.eq=SmallInteger.prototype.equals=BigInteger.prototype.eq=BigInteger.prototype.equals;BigInteger.prototype.notEquals=function(v){return this.compare(v)!==0};NativeBigInt.prototype.neq=NativeBigInt.prototype.notEquals=SmallInteger.prototype.neq=SmallInteger.prototype.notEquals=BigInteger.prototype.neq=BigInteger.prototype.notEquals;BigInteger.prototype.greater=function(v){return this.compare(v)>0};NativeBigInt.prototype.gt=NativeBigInt.prototype.greater=SmallInteger.prototype.gt=SmallInteger.prototype.greater=BigInteger.prototype.gt=BigInteger.prototype.greater;BigInteger.prototype.lesser=function(v){return this.compare(v)<0};NativeBigInt.prototype.lt=NativeBigInt.prototype.lesser=SmallInteger.prototype.lt=SmallInteger.prototype.lesser=BigInteger.prototype.lt=BigInteger.prototype.lesser;BigInteger.prototype.greaterOrEquals=function(v){return this.compare(v)>=0};NativeBigInt.prototype.geq=NativeBigInt.prototype.greaterOrEquals=SmallInteger.prototype.geq=SmallInteger.prototype.greaterOrEquals=BigInteger.prototype.geq=BigInteger.prototype.greaterOrEquals;BigInteger.prototype.lesserOrEquals=function(v){return this.compare(v)<=0};NativeBigInt.prototype.leq=NativeBigInt.prototype.lesserOrEquals=SmallInteger.prototype.leq=SmallInteger.prototype.lesserOrEquals=BigInteger.prototype.leq=BigInteger.prototype.lesserOrEquals;BigInteger.prototype.isEven=function(){return(this.value[0]&1)===0};SmallInteger.prototype.isEven=function(){return(this.value&1)===0};NativeBigInt.prototype.isEven=function(){return(this.value&BigInt(1))===BigInt(0)};BigInteger.prototype.isOdd=function(){return(this.value[0]&1)===1};SmallInteger.prototype.isOdd=function(){return(this.value&1)===1};NativeBigInt.prototype.isOdd=function(){return(this.value&BigInt(1))===BigInt(1)};BigInteger.prototype.isPositive=function(){return!this.sign};SmallInteger.prototype.isPositive=function(){return this.value>0};NativeBigInt.prototype.isPositive=SmallInteger.prototype.isPositive;BigInteger.prototype.isNegative=function(){return this.sign};SmallInteger.prototype.isNegative=function(){return this.value<0};NativeBigInt.prototype.isNegative=SmallInteger.prototype.isNegative;BigInteger.prototype.isUnit=function(){return false};SmallInteger.prototype.isUnit=function(){return Math.abs(this.value)===1};NativeBigInt.prototype.isUnit=function(){return this.abs().value===BigInt(1)};BigInteger.prototype.isZero=function(){return false};SmallInteger.prototype.isZero=function(){return this.value===0};NativeBigInt.prototype.isZero=function(){return this.value===BigInt(0)};BigInteger.prototype.isDivisibleBy=function(v){var n=parseValue(v);if(n.isZero())return false;if(n.isUnit())return true;if(n.compareAbs(2)===0)return this.isEven();return this.mod(n).isZero()};NativeBigInt.prototype.isDivisibleBy=SmallInteger.prototype.isDivisibleBy=BigInteger.prototype.isDivisibleBy;function isBasicPrime(v){var n=v.abs();if(n.isUnit())return false;if(n.equals(2)||n.equals(3)||n.equals(5))return true;if(n.isEven()||n.isDivisibleBy(3)||n.isDivisibleBy(5))return false;if(n.lesser(49))return true}function millerRabinTest(n,a){var nPrev=n.prev(),b=nPrev,r=0,d,t,i,x;while(b.isEven())b=b.divide(2),r++;next:for(i=0;i-MAX_INT)return new SmallInteger(value-1);return new BigInteger(MAX_INT_ARR,true)};NativeBigInt.prototype.prev=function(){return new NativeBigInt(this.value-BigInt(1))};var powersOfTwo=[1];while(2*powersOfTwo[powersOfTwo.length-1]<=BASE)powersOfTwo.push(2*powersOfTwo[powersOfTwo.length-1]);var powers2Length=powersOfTwo.length,highestPower2=powersOfTwo[powers2Length-1];function shift_isSmall(n){return Math.abs(n)<=BASE}BigInteger.prototype.shiftLeft=function(v){var n=parseValue(v).toJSNumber();if(!shift_isSmall(n)){throw new Error(String(n)+" is too large for shifting.")}if(n<0)return this.shiftRight(-n);var result=this;if(result.isZero())return result;while(n>=powers2Length){result=result.multiply(highestPower2);n-=powers2Length-1}return result.multiply(powersOfTwo[n])};NativeBigInt.prototype.shiftLeft=SmallInteger.prototype.shiftLeft=BigInteger.prototype.shiftLeft;BigInteger.prototype.shiftRight=function(v){var remQuo;var n=parseValue(v).toJSNumber();if(!shift_isSmall(n)){throw new Error(String(n)+" is too large for shifting.")}if(n<0)return this.shiftLeft(-n);var result=this;while(n>=powers2Length){if(result.isZero()||result.isNegative()&&result.isUnit())return result;remQuo=divModAny(result,highestPower2);result=remQuo[1].isNegative()?remQuo[0].prev():remQuo[0];n-=powers2Length-1}remQuo=divModAny(result,powersOfTwo[n]);return remQuo[1].isNegative()?remQuo[0].prev():remQuo[0]};NativeBigInt.prototype.shiftRight=SmallInteger.prototype.shiftRight=BigInteger.prototype.shiftRight;function bitwise(x,y,fn){y=parseValue(y);var xSign=x.isNegative(),ySign=y.isNegative();var xRem=xSign?x.not():x,yRem=ySign?y.not():y;var xDigit=0,yDigit=0;var xDivMod=null,yDivMod=null;var result=[];while(!xRem.isZero()||!yRem.isZero()){xDivMod=divModAny(xRem,highestPower2);xDigit=xDivMod[1].toJSNumber();if(xSign){xDigit=highestPower2-1-xDigit}yDivMod=divModAny(yRem,highestPower2);yDigit=yDivMod[1].toJSNumber();if(ySign){yDigit=highestPower2-1-yDigit}xRem=xDivMod[0];yRem=yDivMod[0];result.push(fn(xDigit,yDigit))}var sum=fn(xSign?1:0,ySign?1:0)!==0?bigInt(-1):bigInt(0);for(var i=result.length-1;i>=0;i-=1){sum=sum.multiply(highestPower2).add(bigInt(result[i]))}return sum}BigInteger.prototype.not=function(){return this.negate().prev()};NativeBigInt.prototype.not=SmallInteger.prototype.not=BigInteger.prototype.not;BigInteger.prototype.and=function(n){return bitwise(this,n,function(a,b){return a&b})};NativeBigInt.prototype.and=SmallInteger.prototype.and=BigInteger.prototype.and;BigInteger.prototype.or=function(n){return bitwise(this,n,function(a,b){return a|b})};NativeBigInt.prototype.or=SmallInteger.prototype.or=BigInteger.prototype.or;BigInteger.prototype.xor=function(n){return bitwise(this,n,function(a,b){return a^b})};NativeBigInt.prototype.xor=SmallInteger.prototype.xor=BigInteger.prototype.xor;var LOBMASK_I=1<<30,LOBMASK_BI=(BASE&-BASE)*(BASE&-BASE)|LOBMASK_I;function roughLOB(n){var v=n.value,x=typeof v==="number"?v|LOBMASK_I:typeof v==="bigint"?v|BigInt(LOBMASK_I):v[0]+v[1]*BASE|LOBMASK_BI;return x&-x}function integerLogarithm(value,base){if(base.compareTo(value)<=0){var tmp=integerLogarithm(value,base.square(base));var p=tmp.p;var e=tmp.e;var t=p.multiply(base);return t.compareTo(value)<=0?{p:t,e:e*2+1}:{p:p,e:e*2}}return{p:bigInt(1),e:0}}BigInteger.prototype.bitLength=function(){var n=this;if(n.compareTo(bigInt(0))<0){n=n.negate().subtract(bigInt(1))}if(n.compareTo(bigInt(0))===0){return bigInt(0)}return bigInt(integerLogarithm(n,bigInt(2)).e).add(bigInt(1))};NativeBigInt.prototype.bitLength=SmallInteger.prototype.bitLength=BigInteger.prototype.bitLength;function max(a,b){a=parseValue(a);b=parseValue(b);return a.greater(b)?a:b}function min(a,b){a=parseValue(a);b=parseValue(b);return a.lesser(b)?a:b}function gcd(a,b){a=parseValue(a).abs();b=parseValue(b).abs();if(a.equals(b))return a;if(a.isZero())return b;if(b.isZero())return a;var c=Integer[1],d,t;while(a.isEven()&&b.isEven()){d=min(roughLOB(a),roughLOB(b));a=a.divide(d);b=b.divide(d);c=c.multiply(d)}while(a.isEven()){a=a.divide(roughLOB(a))}do{while(b.isEven()){b=b.divide(roughLOB(b))}if(a.greater(b)){t=b;b=a;a=t}b=b.subtract(a)}while(!b.isZero());return c.isUnit()?a:a.multiply(c)}function lcm(a,b){a=parseValue(a).abs();b=parseValue(b).abs();return a.divide(gcd(a,b)).multiply(b)}function randBetween(a,b){a=parseValue(a);b=parseValue(b);var low=min(a,b),high=max(a,b);var range=high.subtract(low).add(1);if(range.isSmall)return low.add(Math.floor(Math.random()*range));var digits=toBase(range,BASE).value;var result=[],restricted=true;for(var i=0;i=absBase){if(c==="1"&&absBase===1)continue;throw new Error(c+" is not a valid digit in base "+base+".")}}}base=parseValue(base);var digits=[];var isNegative=text[0]==="-";for(i=isNegative?1:0;i"&&i=0;i--){val=val.add(digits[i].times(pow));pow=pow.times(base)}return isNegative?val.negate():val}function stringify(digit,alphabet){alphabet=alphabet||DEFAULT_ALPHABET;if(digit"}function toBase(n,base){base=bigInt(base);if(base.isZero()){if(n.isZero())return{value:[0],isNegative:false};throw new Error("Cannot convert nonzero numbers to base 0.")}if(base.equals(-1)){if(n.isZero())return{value:[0],isNegative:false};if(n.isNegative())return{value:[].concat.apply([],Array.apply(null,Array(-n.toJSNumber())).map(Array.prototype.valueOf,[1,0])),isNegative:false};var arr=Array.apply(null,Array(n.toJSNumber()-1)).map(Array.prototype.valueOf,[0,1]);arr.unshift([1]);return{value:[].concat.apply([],arr),isNegative:false}}var neg=false;if(n.isNegative()&&base.isPositive()){neg=true;n=n.abs()}if(base.isUnit()){if(n.isZero())return{value:[0],isNegative:false};return{value:Array.apply(null,Array(n.toJSNumber())).map(Number.prototype.valueOf,1),isNegative:neg}}var out=[];var left=n,divmod;while(left.isNegative()||left.compareAbs(base)>=0){divmod=left.divmod(base);left=divmod.quotient;var digit=divmod.remainder;if(digit.isNegative()){digit=base.minus(digit).abs();left=left.next()}out.push(digit.toJSNumber())}out.push(left.toJSNumber());return{value:out.reverse(),isNegative:neg}}function toBaseString(n,base,alphabet){var arr=toBase(n,base);return(arr.isNegative?"-":"")+arr.value.map(function(x){return stringify(x,alphabet)}).join("")}BigInteger.prototype.toArray=function(radix){return toBase(this,radix)};SmallInteger.prototype.toArray=function(radix){return toBase(this,radix)};NativeBigInt.prototype.toArray=function(radix){return toBase(this,radix)};BigInteger.prototype.toString=function(radix,alphabet){if(radix===undefined)radix=10;if(radix!==10)return toBaseString(this,radix,alphabet);var v=this.value,l=v.length,str=String(v[--l]),zeros="0000000",digit;while(--l>=0){digit=String(v[l]);str+=zeros.slice(digit.length)+digit}var sign=this.sign?"-":"";return sign+str};SmallInteger.prototype.toString=function(radix,alphabet){if(radix===undefined)radix=10;if(radix!=10)return toBaseString(this,radix,alphabet);return String(this.value)};NativeBigInt.prototype.toString=SmallInteger.prototype.toString;NativeBigInt.prototype.toJSON=BigInteger.prototype.toJSON=SmallInteger.prototype.toJSON=function(){return this.toString()};BigInteger.prototype.valueOf=function(){return parseInt(this.toString(),10)};BigInteger.prototype.toJSNumber=BigInteger.prototype.valueOf;SmallInteger.prototype.valueOf=function(){return this.value};SmallInteger.prototype.toJSNumber=SmallInteger.prototype.valueOf;NativeBigInt.prototype.valueOf=NativeBigInt.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function parseStringValue(v){if(isPrecise(+v)){var x=+v;if(x===truncate(x))return supportsNativeBigInt?new NativeBigInt(BigInt(x)):new SmallInteger(x);throw new Error("Invalid integer: "+v)}var sign=v[0]==="-";if(sign)v=v.slice(1);var split=v.split(/e/i);if(split.length>2)throw new Error("Invalid integer: "+split.join("e"));if(split.length===2){var exp=split[1];if(exp[0]==="+")exp=exp.slice(1);exp=+exp;if(exp!==truncate(exp)||!isPrecise(exp))throw new Error("Invalid integer: "+exp+" is not a valid exponent.");var text=split[0];var decimalPlace=text.indexOf(".");if(decimalPlace>=0){exp-=text.length-decimalPlace-1;text=text.slice(0,decimalPlace)+text.slice(decimalPlace+1)}if(exp<0)throw new Error("Cannot include negative exponent part for integers");text+=new Array(exp+1).join("0");v=text}var isValid=/^([0-9][0-9]*)$/.test(v);if(!isValid)throw new Error("Invalid integer: "+v);if(supportsNativeBigInt){return new NativeBigInt(BigInt(sign?"-"+v:v))}var r=[],max=v.length,l=LOG_BASE,min=max-l;while(max>0){r.push(+v.slice(min,max));min-=l;if(min<0)min=0;max-=l}trim(r);return new BigInteger(r,sign)}function parseNumberValue(v){if(supportsNativeBigInt){return new NativeBigInt(BigInt(v))}if(isPrecise(v)){if(v!==truncate(v))throw new Error(v+" is not an integer.");return new SmallInteger(v)}return parseStringValue(v.toString())}function parseValue(v){if(typeof v==="number"){return parseNumberValue(v)}if(typeof v==="string"){return parseStringValue(v)}if(typeof v==="bigint"){return new NativeBigInt(v)}return v}for(var i=0;i<1e3;i++){Integer[i]=parseValue(i);if(i>0)Integer[-i]=parseValue(-i)}Integer.one=Integer[1];Integer.zero=Integer[0];Integer.minusOne=Integer[-1];Integer.max=max;Integer.min=min;Integer.gcd=gcd;Integer.lcm=lcm;Integer.isInstance=function(x){return x instanceof BigInteger||x instanceof SmallInteger||x instanceof NativeBigInt};Integer.randBetween=randBetween;Integer.fromArray=function(digits,base,isNegative){return parseBaseFromArray(digits.map(parseValue),parseValue(base||10),isNegative)};return Integer}();if(typeof module!=="undefined"&&module.hasOwnProperty("exports")){module.exports=bigInt}if(typeof define==="function"&&define.amd){define("big-integer",[],function(){return bigInt})} \ No newline at end of file diff --git a/js-client/src/api.js b/js-client/src/api.js index 11fa146..396d48c 100644 --- a/js-client/src/api.js +++ b/js-client/src/api.js @@ -1,146 +1,150 @@ -lnn.fast = function(host, port, success, error, io, select_path) -{ - if(select_path === undefined) +/** + * @module api + */ + +import * as utils from "./util.js"; +import * as lnnEndpoint from "./endpoint.js"; +import * as lnnIO from "./io.js"; +import * as post from "./post.js"; +import * as get from "./get.js"; +import * as signature from "./signature.js"; +import { stream } from "./stream.js"; + +export function fast(host, port, success, error, io, select_path) { + if (select_path === undefined) select_path = true - return lnn.open(host, port, success, error, io, true, null, select_path) + return open(host, port, success, error, io, true, null, select_path) } -lnn.auth = function(host, port, suffix, success, error, io, select_path) -{ - if(select_path === undefined) +export function auth(host, port, suffix, success, error, io, select_path) { + if (select_path === undefined) select_path = true - if (typeof(suffix) == "string") - { + if (typeof (suffix) == "string") { suffix = suffix.replace(/-/g, "+").replace(/_/g, "/") - suffix = lnn.dec.base64(suffix) + suffix = utils.dec.base64(suffix) } - if (lnn.enc.utf8(suffix.slice(0, 5)) != "auth ") + if (utils.enc.utf8(suffix.slice(0, 5)) != "auth ") throw "Invalid prefix in auth. suffix!" suffix = suffix.slice(5) if (suffix.length != 20 + 32) throw "Invalid auth. suffix length!" - return lnn.open(host, port, success, error, io, true, { + return open(host, port, success, error, io, true, { identity: suffix.slice(0, 20), onionkey: suffix.slice(20), - ntor: nacl.box.keyPair()}, select_path) + ntor: nacl.box.keyPair() + }, select_path) } -lnn.open = function(host, port, success, error, io, fast, auth, select_path, tcp_ports, info) -{ - var endpoint = lnn.endpoint(host, port) +/** + * Create a circuit on the Tor network, return a handler to send request on + * this circuit, or close it. + * @param {String} host host of the Lightnion proxy + * @param {Number} port port where the Lightnion proxy is reachable + * @param {Function} success callback in case of success + * @param {Function} error callback in case of error + * @param {io.io_t} io io adapter in use + * @param {Boolean} fast deprecated, always set to false + * @param {half_t} auth {@link lnn.auth} material + * @param {Boolean} select_path Compute the circuit path in the client* + * @param {List} tcp_ports list of ports which need to be accepted by the exit node + * @returns connection handler + */ +export function open(host, port, success, error, io, fast, auth, select_path, tcp_ports) { + let endpoint = lnnEndpoint.endpoint(host, port) if (io === undefined) - io = lnn.io.socket + io = lnnIO.socket if (fast === undefined) fast = false if (error === undefined) - error = function() { } + error = function () { } if (success === undefined) - success = function() { } - if(select_path === undefined) + success = function () { } + if (select_path === undefined) select_path = true - if(tcp_ports === undefined ) - tcp_ports = [80,443] - if(info === undefined) - info = function() { } + if (tcp_ports === undefined) + tcp_ports = [80, 443] endpoint.fast = fast endpoint.auth = auth endpoint.select_path = select_path var cb = { - guard: function(endpoint) - { + guard: function (endpoint) { endpoint.state = lnn.state.guarded - - info("Guard chosen") - lnn.post.circuit_info(endpoint, cb.startWebSocket, error, select_path, tcp_ports, info) + + + post.circuit_info(endpoint, cb.startWebSocket, error, select_path, tcp_ports) }, - startWebSocket: function(endpoint, info) { - console.log('called startWebSocket cb') - endpoint.stream = lnn.stream.backend(error) - io(endpoint, lnn.stream.handler, function(endpoint) - { + startWebSocket: function (endpoint, info) { + console.log('called startWebSocket cb') + endpoint.stream = stream.backend(error) + io(endpoint, stream.handler, function (endpoint) { var state = endpoint.state endpoint.state = lnn.state.pending - + endpoint.state = state }, error) endpoint.io.start() - lnn.post.handshake(endpoint, info, cb.create, error) - }, - create: function(endpoint) - { - console.log('called create cb') + post.handshake(endpoint, info, cb.create, error) + }, + create: function (endpoint) { + console.log('called create cb') endpoint.state = lnn.state.created - - info("Extending to middle node") - lnn.post.extend(endpoint, endpoint.path[0], cb.extend, error) + + post.extend(endpoint, endpoint.path[0], cb.extend, error) }, - extend: function(endpoint) - { - console.log('called extend cb') + extend: function (endpoint) { + console.log('called extend cb') endpoint.state = lnn.state.extpath - - info("Extending to exit node") - lnn.post.extend(endpoint, endpoint.path[1], cb.success, error) + + post.extend(endpoint, endpoint.path[1], cb.success, error) }, - success: function(endpoint) - { - console.log('called success cb') + success: function (endpoint) { + console.log('called success cb') endpoint.state = lnn.state.success - info("circuit created") + console.log("circuit created") success(endpoint) - endpoint.io.success = function() { } + endpoint.io.success = function () { } } } endpoint.state = lnn.state.started - - - if(select_path) { - lnn.get.consensus_raw(endpoint,function() - { - lnn.get.signing_keys(endpoint,function() - { - if(!lnn.signature.verify(endpoint.consensus_raw,endpoint.signing_keys,0.5)) - { + + + if (select_path) { + get.consensus_raw(endpoint, function () { + get.signing_keys(endpoint, function () { + if (!signature.verify(endpoint.consensus_raw, endpoint.signing_keys, 0.5)) { throw "signature verification failed." } console.log("signature verification success") - info("Consensus downloaded and verified") - lnn.get.descriptors_raw(endpoint,function() - { - info("descriptors downloaded") + get.descriptors_raw(endpoint, function () { if (endpoint.fast) - lnn.post.circuit_info(endpoint, cb.startWebSocket, error, select_path, tcp_ports, info) + post.circuit_info(endpoint, cb.startWebSocket, error, select_path, tcp_ports) else - lnn.get.guard(endpoint, cb.guard, error) + get.guard(endpoint, cb.guard, error) - },function() - { + }, function () { throw "Failed to fetch raw descriptors" }) - },function() - { + }, function () { throw "Failed to fetch signing keys" - }) - },function() - { + }) + }, function () { throw "Failed to fetch raw consensus!" }) - } - else - { + } + else { // fast channel: one-request channel creation (no guard pinning) if (endpoint.fast) - lnn.post.circuit_info(endpoint, cb.startWebSocket, error, select_path, tcp_ports, info) + post.circuit_info(endpoint, cb.startWebSocket, error, select_path, tcp_ports) else - lnn.get.guard(endpoint, cb.guard, error) + get.guard(endpoint, cb.guard, error) } return endpoint @@ -149,7 +153,7 @@ lnn.open = function(host, port, success, error, io, fast, auth, select_path, tcp /***** high level apis ****/ -lnn.agents = [ +export let agents = [ "curl/7.61.0", "curl/7.60.0", "curl/7.59.0", @@ -188,16 +192,30 @@ lnn.agents = [ "curl/7.38.0" ] -lnn.send_req = function(endpoint,url, method, data, data_type, success,error) { - var agent = lnn.agents[Math.floor(Math.random() * lnn.agents.length)] +/** + * Send an HTTP request by using an handler. + * @param {lnn.endpoint} endpoint handler created by {@link lnn.open} + * @param {String} url URL where the request is send + * @param {String} method method of the HTTP request + * @param {String} data payload of the request + * @param {string} data_type data type of the payload of the request + * @param {Function} success callback in case of success + * @param {Function} error callback in case of error + */ +export function send_req(endpoint, url, method, data, data_type, success, error) { + if (success === undefined) + success = function () { } + if (error === undefined) + error = function () { } + + var agent = agents[Math.floor(Math.random() * agents.length)] var data_recv = '' var length = null var rawlen = 0 var headers = null - var handler = function(request) - { - if(request.state == lnn.state.success) { + var handler = function (request) { + if (request.state == lnn.state.success) { error('Connection closed') return } @@ -207,35 +225,34 @@ lnn.send_req = function(endpoint,url, method, data, data_type, success,error) { var payload = request.recv() rawlen += payload.length - data_recv += lnn.enc.utf8(payload) - - - if (length == null) - { - if (data_recv.match('\r\n\r\n')) - { + data_recv += utils.enc.utf8(payload) + + + if (length == null) { + if (data_recv.match('\r\n\r\n')) { headers = data_recv.split('\r\n\r\n')[0] var len = headers.match('Content-Length: ([^\r]*)') length = parseInt(len[1]) } } - + if (headers == null || length == null || rawlen < headers.length + length) return request.close() console.log("Stream closed") - success({headers: headers, - data: data_recv.slice(headers.length + 4)}) - success = function(request) { } + success({ + headers: headers, + data: data_recv.slice(headers.length + 4) + }) + success = function (request) { } } if (url.slice(0, 7) == "http://") url = url.slice(7) - else - { - error ('Urls must start with http://') + else { + error('Urls must start with http://') return } @@ -250,27 +267,27 @@ lnn.send_req = function(endpoint,url, method, data, data_type, success,error) { if (host.match(":") != null) port = host.split(":", 2)[1] - if(method != "GET" && method != "POST") { - error ('Unsupported method') + if (method != "GET" && method != "POST") { + error('Unsupported method') return } - if(data_type != "json" && data_type != "form") { + if (data_type != "json" && data_type != "form") { error('Unsupported content type') return } - if(data_type == "json") + if (data_type == "json") data_type = "application/json" else data_type = "application/x-www-form-urlencoded" - - if(method == "GET" && data.length > 0) { + + if (method == "GET" && data.length > 0) { data = "?" + data path += data path = encodeURI(path) } - else if(data_type == "application/x-www-form-urlencoded"){ + else if (data_type == "application/x-www-form-urlencoded") { data = encodeURI(data) } @@ -280,12 +297,12 @@ lnn.send_req = function(endpoint,url, method, data, data_type, success,error) { ["User-Agent:", agent].join(" "), ["Accept:", "*/*"].join(" ")] - if(method == "POST") { - payload.push(["Content-Length:",data.length].join(" ")) - payload.push(["Content-Type:",data_type].join(" ")) + if (method == "POST") { + payload.push(["Content-Length:", data.length].join(" ")) + payload.push(["Content-Type:", data_type].join(" ")) payload = payload.join("\r\n") + "\r\n\r\n" + data + "\r\n" - } - else{ + } + else { payload = payload.join("\r\n") + "\r\n\r\n" } @@ -293,48 +310,57 @@ lnn.send_req = function(endpoint,url, method, data, data_type, success,error) { console.log(payload) host = host.split(':')[0] - lnn.stream.tcp(endpoint, host, port, handler).send(payload) + stream.tcp(endpoint, host, port, handler).send(payload) } -lnn.http_request = function(url, method, data, data_type, success, error,tor_host,tor_port) -{ - if(tor_host === undefined) + +/** + * Build a circuit to do a single HTTP request over the Tor network. + * @param {String} url URL where the request is send + * @param {String} method method of the HTTP request + * @param {String} data payload of the request + * @param {string} data_type data type of the payload of the request + * @param {Function} success callback in case of success + * @param {Function} error callback in case of error + * @param {String} tor_host host of the Lightnion proxy + * @param {Number} tor_port port where the Lightnion proxy is reachable + */ +export function http_request(url, method, data, data_type, success, error, tor_host, tor_port) { + if (tor_host === undefined) tor_host = 'localhost' - if(tor_port === undefined) + if (tor_port === undefined) tor_port = 4990 if (error === undefined) - error = function() { } + error = function () { } if (success === undefined) - success = function() { } + success = function () { } var closed = false - var channel = lnn.open( - tor_host,tor_port,function(endpoint) - { + var channel = open( + tor_host, tor_port, function (endpoint) { if (endpoint.state != lnn.state.success) { return } - - lnn.send_req(endpoint,url, method, data, data_type,function(request) { + + send_req(endpoint, url, method, data, data_type, function (request) { //close circuit here. - if(!closed) { - endpoint.close(function(success_msg) {console.log(success_msg)}) + if (!closed) { + endpoint.close(function (success_msg) { console.log(success_msg) }) closed = true } success(request) - },function(message) { + }, function (message) { //close circuit here - if(!closed) { - endpoint.close(function(success_msg) {console.log(success_msg)}) + if (!closed) { + endpoint.close(function (success_msg) { console.log(success_msg) }) closed = true } error(message) }) } - ,function() - { + , function () { error("Connection establishment failed") } ) diff --git a/js-client/src/consensusParser.js b/js-client/src/consensusParser.js index a777c53..cdef807 100644 --- a/js-client/src/consensusParser.js +++ b/js-client/src/consensusParser.js @@ -1,24 +1,29 @@ -lnn.consensusParser = {} -lnn.consensusParser.parse = function(rawText,flavor = 'microdesc') { +/** + * @module consensusParser + */ + +let consensusParser = {}; + +consensusParser.parse = function (rawText, flavor = 'microdesc') { if (typeof rawText !== 'string') throw `Error: the consensus must be given as a string` - lnn.consensusParser.lines = rawText.split('\n') - lnn.consensusParser.words = lnn.consensusParser.lines[0].split(' ') - lnn.consensusParser.consensus = {} - lnn.consensusParser.validFlags = ['Authority', 'BadExit', 'Exit', 'Fast', 'Guard', 'HSDir', 'NoEdConsensus', 'Stable', 'StaleDesc', 'Running', 'Valid', 'V2Dir'] - lnn.consensusParser.index = 0 - lnn.consensusParser.totalLines = lnn.consensusParser.lines.length - - if(flavor != 'unflavored' && flavor != 'microdesc') { + consensusParser.lines = rawText.split('\n') + consensusParser.words = consensusParser.lines[0].split(' ') + consensusParser.consensus = {} + consensusParser.validFlags = ['Authority', 'BadExit', 'Exit', 'Fast', 'Guard', 'HSDir', 'NoEdConsensus', 'Stable', 'StaleDesc', 'Running', 'Valid', 'V2Dir'] + consensusParser.index = 0 + consensusParser.totalLines = consensusParser.lines.length + + if (flavor != 'unflavored' && flavor != 'microdesc') { throw 'Error: Unexpected flavor' } - lnn.consensusParser.consensus['flavor'] = flavor + consensusParser.consensus['flavor'] = flavor - lnn.consensusParser.consumeHeaders() - lnn.consensusParser.consumeAuthority() - lnn.consensusParser.consumeRouters() - lnn.consensusParser.consumeFooter() + consensusParser.consumeHeaders() + consensusParser.consumeAuthority() + consensusParser.consumeRouters() + consensusParser.consumeFooter() - return lnn.consensusParser.consensus + return consensusParser.consensus } //----------------------------------HEADERS PARSER-------------------------------- @@ -26,129 +31,129 @@ lnn.consensusParser.parse = function(rawText,flavor = 'microdesc') { /** * Function that parses the headers */ -lnn.consensusParser.consumeHeaders = function() { - lnn.consensusParser.consumeNetworkStatusVersion() - lnn.consensusParser.consumeVoteStatus() - lnn.consensusParser.consumeConsensusMethod() - lnn.consensusParser.consumeDate('valid-after') - lnn.consensusParser.consumeDate('fresh-until') - lnn.consensusParser.consumeDate('valid-until') - lnn.consensusParser.consumeVotingDelay() - lnn.consensusParser.tryConsumeVersions('client-versions') - lnn.consensusParser.tryConsumeVersions('server-versions') - - while (lnn.consensusParser.words[0] === 'package') { - lnn.consensusParser.consumePackage() +consensusParser.consumeHeaders = function () { + consensusParser.consumeNetworkStatusVersion() + consensusParser.consumeVoteStatus() + consensusParser.consumeConsensusMethod() + consensusParser.consumeDate('valid-after') + consensusParser.consumeDate('fresh-until') + consensusParser.consumeDate('valid-until') + consensusParser.consumeVotingDelay() + consensusParser.tryConsumeVersions('client-versions') + consensusParser.tryConsumeVersions('server-versions') + + while (consensusParser.words[0] === 'package') { + consensusParser.consumePackage() } - lnn.consensusParser.consumeKnownFlags() - lnn.consensusParser.tryConsumeProtocols('recommended-client-protocols') - lnn.consensusParser.tryConsumeProtocols('recommended-relay-protocols') - lnn.consensusParser.tryConsumeProtocols('required-client-protocols') - lnn.consensusParser.tryConsumeProtocols('required-relay-protocols') - lnn.consensusParser.tryConsumeParams() - lnn.consensusParser.tryConsumeShareRand('shared-rand-previous-value') - lnn.consensusParser.tryConsumeShareRand('shared-rand-current-value') + consensusParser.consumeKnownFlags() + consensusParser.tryConsumeProtocols('recommended-client-protocols') + consensusParser.tryConsumeProtocols('recommended-relay-protocols') + consensusParser.tryConsumeProtocols('required-client-protocols') + consensusParser.tryConsumeProtocols('required-relay-protocols') + consensusParser.tryConsumeParams() + consensusParser.tryConsumeShareRand('shared-rand-previous-value') + consensusParser.tryConsumeShareRand('shared-rand-current-value') } /** * Parse the field network-status-version */ -lnn.consensusParser.consumeNetworkStatusVersion = function() { +consensusParser.consumeNetworkStatusVersion = function () { let expectedLength = 2 - if(lnn.consensusParser.consensus.flavor == 'microdesc') { + if (consensusParser.consensus.flavor == 'microdesc') { expectedLength = 3 - if(lnn.consensusParser.words[2] != 'microdesc') + if (consensusParser.words[2] != 'microdesc') throw 'Error: Flavor mismatch in header.' } - let version = lnn.consensusParser.tryParseKeyValueInteger('network-status-version',expectedLength) - lnn.consensusParser.consensus['headers'] = { + let version = consensusParser.tryParseKeyValueInteger('network-status-version', expectedLength) + consensusParser.consensus['headers'] = { 'network-status-version': { 'version': version, - 'flavor': lnn.consensusParser.consensus.flavor + 'flavor': consensusParser.consensus.flavor } } - lnn.consensusParser.nextLine() + consensusParser.nextLine() } /** * Parse the field vote-status * @throws WrongParameterException if status is not consensus */ -lnn.consensusParser.consumeVoteStatus = function() { - let status = lnn.consensusParser.tryParseKeyValueString('vote-status') +consensusParser.consumeVoteStatus = function () { + let status = consensusParser.tryParseKeyValueString('vote-status') if (status !== 'consensus') throw `WrongParameterException: vote-status must be consensus` - lnn.consensusParser.consensus['headers']['vote-status'] = status - lnn.consensusParser.nextLine() + consensusParser.consensus['headers']['vote-status'] = status + consensusParser.nextLine() } /** * Parse the field consensus-method */ -lnn.consensusParser.consumeConsensusMethod = function() { - lnn.consensusParser.consensus['headers']['consensus-method'] = lnn.consensusParser.tryParseKeyValueInteger('consensus-method') - lnn.consensusParser.nextLine() +consensusParser.consumeConsensusMethod = function () { + consensusParser.consensus['headers']['consensus-method'] = consensusParser.tryParseKeyValueInteger('consensus-method') + consensusParser.nextLine() } /** * Parse the fields valid-after, fresh-until and valid-until * @param {strin} word */ -lnn.consensusParser.consumeDate = function(word) { - lnn.consensusParser.consensus['headers'][word] = lnn.consensusParser.tryParseDate(word) - lnn.consensusParser.nextLine() +consensusParser.consumeDate = function (word) { + consensusParser.consensus['headers'][word] = consensusParser.tryParseDate(word) + consensusParser.nextLine() } /** * Parse the field voting-delay - * @throws NotEqualException if lnn.consensusParser.words[0] != word - * @throws WrongParameterException if lnn.consensusParser.words[1] or lnn.consensusParser.words[2] is not a number - * @throws WrongFormatException if lnn.consensusParser.words.length is not 3 - */ -lnn.consensusParser.consumeVotingDelay = function() { - lnn.consensusParser.checkFormat(3, 'voting-delay') - if (isNaN(lnn.consensusParser.words[1])) throw `WrongParameterException: ${words[1]} is not a number` - if (isNaN(lnn.consensusParser.words[2])) throw `WrongParameterException: ${words[2]} is not a number` - - lnn.consensusParser.consensus['headers']['voting-delay'] = { - 'vote': Number(lnn.consensusParser.words[1]), - 'dist': Number(lnn.consensusParser.words[2]) + * @throws NotEqualException if consensusParser.words[0] != word + * @throws WrongParameterException if consensusParser.words[1] or consensusParser.words[2] is not a number + * @throws WrongFormatException if consensusParser.words.length is not 3 + */ +consensusParser.consumeVotingDelay = function () { + consensusParser.checkFormat(3, 'voting-delay') + if (isNaN(consensusParser.words[1])) throw `WrongParameterException: ${words[1]} is not a number` + if (isNaN(consensusParser.words[2])) throw `WrongParameterException: ${words[2]} is not a number` + + consensusParser.consensus['headers']['voting-delay'] = { + 'vote': Number(consensusParser.words[1]), + 'dist': Number(consensusParser.words[2]) } - lnn.consensusParser.nextLine() + consensusParser.nextLine() } /** * Try to parse the fields client-versions or server-versions if they are present * @param {string} word either client-versions or server-versions */ -lnn.consensusParser.tryConsumeVersions = function(word) { +consensusParser.tryConsumeVersions = function (word) { - if (lnn.consensusParser.consensus['headers'][word] !== undefined) throw `AlreadyPresentException: ${word} can only appear once` - if (lnn.consensusParser.words[0] === word) { - lnn.consensusParser.consensus['headers'][word] = lnn.consensusParser.tryParseCommaSeparatedList(word) - lnn.consensusParser.nextLine() + if (consensusParser.consensus['headers'][word] !== undefined) throw `AlreadyPresentException: ${word} can only appear once` + if (consensusParser.words[0] === word) { + consensusParser.consensus['headers'][word] = consensusParser.tryParseCommaSeparatedList(word) + consensusParser.nextLine() } } /** * Parses the field package - * @throws WrongFormatException if lnn.consensusParser.words.length is smaller than 5 + * @throws WrongFormatException if consensusParser.words.length is smaller than 5 */ -lnn.consensusParser.consumePackage = function() { +consensusParser.consumePackage = function () { - if (lnn.consensusParser.words.length < 5) throw `WrongFormatException: at least 5 fields are expected` - if (lnn.consensusParser.consensus['headers']['package'] === undefined) lnn.consensusParser.consensus['headers']['package'] = [] + if (consensusParser.words.length < 5) throw `WrongFormatException: at least 5 fields are expected` + if (consensusParser.consensus['headers']['package'] === undefined) consensusParser.consensus['headers']['package'] = [] let pack = { - 'name': lnn.consensusParser.words[1], - 'version': lnn.consensusParser.words[2], - 'url': lnn.consensusParser.words[3] + 'name': consensusParser.words[1], + 'version': consensusParser.words[2], + 'url': consensusParser.words[3] } - let remaining = lnn.consensusParser.words.splice(4, lnn.consensusParser.words.length) + let remaining = consensusParser.words.splice(4, consensusParser.words.length) let digests = {} for (let digest of remaining) { @@ -157,38 +162,38 @@ lnn.consensusParser.consumePackage = function() { } pack['digests'] = digests - lnn.consensusParser.consensus['headers']['package'].push(pack) - lnn.consensusParser.nextLine() + consensusParser.consensus['headers']['package'].push(pack) + consensusParser.nextLine() } /** * Parses the field package * @throws NotValidFlagException if one of the flags is not in the valid flag list */ -lnn.consensusParser.consumeKnownFlags = function() { - lnn.consensusParser.consensus['headers']['flags'] = lnn.consensusParser.tryParseFlags() - lnn.consensusParser.nextLine() +consensusParser.consumeKnownFlags = function () { + consensusParser.consensus['headers']['flags'] = consensusParser.tryParseFlags() + consensusParser.nextLine() } /** * Try to parse the fields recommended-client-protocols, recommended-relay-protocols, required-client-protocols and required-client-protocols if they are present * @param {string} word either client-versions or server-versions */ -lnn.consensusParser.tryConsumeProtocols = function(word) { - if (lnn.consensusParser.consensus['headers'][word] !== undefined) throw `AlreadyPresentException: ${word} can only appear once` - if (lnn.consensusParser.words[0] === word) { - lnn.consensusParser.consensus['headers'][word] = lnn.consensusParser.tryParseRanges(lnn.consensusParser.words.splice(1, lnn.consensusParser.words.length)) - lnn.consensusParser.nextLine() +consensusParser.tryConsumeProtocols = function (word) { + if (consensusParser.consensus['headers'][word] !== undefined) throw `AlreadyPresentException: ${word} can only appear once` + if (consensusParser.words[0] === word) { + consensusParser.consensus['headers'][word] = consensusParser.tryParseRanges(consensusParser.words.splice(1, consensusParser.words.length)) + consensusParser.nextLine() } } /** * Try to parse the field params if it is present */ -lnn.consensusParser.tryConsumeParams = function() { - if (lnn.consensusParser.words[0] === 'params') { - lnn.consensusParser.consensus['headers']['params'] = lnn.consensusParser.tryParseParams() - lnn.consensusParser.nextLine() +consensusParser.tryConsumeParams = function () { + if (consensusParser.words[0] === 'params') { + consensusParser.consensus['headers']['params'] = consensusParser.tryParseParams() + consensusParser.nextLine() } } @@ -196,20 +201,20 @@ lnn.consensusParser.tryConsumeParams = function() { * Try to parse the fields shared-rand-previous-value and shared-rand-current-value if they are present * @param {string} word specify the field */ -lnn.consensusParser.tryConsumeShareRand = function(word) { - if (lnn.consensusParser.consensus['headers'][word] !== undefined) throw `AlreadyPresentException: ${word} can only appear once` - if (lnn.consensusParser.words[0] === word) { - let reveals = Number(lnn.consensusParser.words[1]) - let value = lnn.consensusParser.words[2] +consensusParser.tryConsumeShareRand = function (word) { + if (consensusParser.consensus['headers'][word] !== undefined) throw `AlreadyPresentException: ${word} can only appear once` + if (consensusParser.words[0] === word) { + let reveals = Number(consensusParser.words[1]) + let value = consensusParser.words[2] - if (!lnn.consensusParser.isBase64(value)) throw `InvalidParameterException: value ${value} must be in hexadecimal` + if (!consensusParser.isBase64(value)) throw `InvalidParameterException: value ${value} must be in hexadecimal` - lnn.consensusParser.consensus['headers'][word] = { + consensusParser.consensus['headers'][word] = { 'NumReveals': reveals, 'Value': value } - lnn.consensusParser.nextLine() + consensusParser.nextLine() } } @@ -219,12 +224,12 @@ lnn.consensusParser.tryConsumeShareRand = function(word) { * @throws InvalidIPException if address or IP are not valid IP addresses * @throws InvalidPortException if dirport or orport are not valid ports */ -lnn.consensusParser.consumeAuthority = function() { - if (lnn.consensusParser.words[0] !== 'dir-source') throw `WrongFieldException: there must be at least one dir-source` - lnn.consensusParser.consensus['dir-sources'] = [] +consensusParser.consumeAuthority = function () { + if (consensusParser.words[0] !== 'dir-source') throw `WrongFieldException: there must be at least one dir-source` + consensusParser.consensus['dir-sources'] = [] - while (lnn.consensusParser.words[0] === 'dir-source') { - lnn.consensusParser.consumeDirSource() + while (consensusParser.words[0] === 'dir-source') { + consensusParser.consumeDirSource() } } @@ -234,36 +239,36 @@ lnn.consensusParser.consumeAuthority = function() { * @throws InvalidPortException if dirport or orport are not valid * @throws InvalidParameterException if the vote-digest is not in hexadecimal */ -lnn.consensusParser.consumeDirSource = function() { +consensusParser.consumeDirSource = function () { let dirSource = {} - lnn.consensusParser.checkFormat(7, 'dir-source') + consensusParser.checkFormat(7, 'dir-source') - dirSource['nickname'] = lnn.consensusParser.words[1] + dirSource['nickname'] = consensusParser.words[1] - if (!lnn.consensusParser.isHex(lnn.consensusParser.words[2])) throw `InvalidParameterException: vote-digest ${lnn.consensusParser.words[2]} must be in hexadecimal` - dirSource['identity'] = lnn.consensusParser.words[2].toUpperCase() + if (!consensusParser.isHex(consensusParser.words[2])) throw `InvalidParameterException: vote-digest ${consensusParser.words[2]} must be in hexadecimal` + dirSource['identity'] = consensusParser.words[2].toUpperCase() - dirSource['hostname'] = lnn.consensusParser.words[3] + dirSource['hostname'] = consensusParser.words[3] - if (!lnn.consensusParser.isValidIP(lnn.consensusParser.words[4])) throw `InvalidIPException: ${lnn.consensusParser.words[4]} is not a valid IP` + if (!consensusParser.isValidIP(consensusParser.words[4])) throw `InvalidIPException: ${consensusParser.words[4]} is not a valid IP` - dirSource['address'] = lnn.consensusParser.words[4] + dirSource['address'] = consensusParser.words[4] - if (!lnn.consensusParser.isValidPort(Number(lnn.consensusParser.words[5])) || !lnn.consensusParser.isValidPort(Number(lnn.consensusParser.words[6]))) throw `InvalidPortException` + if (!consensusParser.isValidPort(Number(consensusParser.words[5])) || !consensusParser.isValidPort(Number(consensusParser.words[6]))) throw `InvalidPortException` - dirSource['dirport'] = Number(lnn.consensusParser.words[5]) - dirSource['orport'] = Number(lnn.consensusParser.words[6]) + dirSource['dirport'] = Number(consensusParser.words[5]) + dirSource['orport'] = Number(consensusParser.words[6]) - lnn.consensusParser.nextLine() - dirSource['contact'] = lnn.consensusParser.words.splice(1, lnn.consensusParser.words.length).join(' ') - lnn.consensusParser.nextLine() - let digest = lnn.consensusParser.tryParseKeyValueString('vote-digest').toUpperCase() + consensusParser.nextLine() + dirSource['contact'] = consensusParser.words.splice(1, consensusParser.words.length).join(' ') + consensusParser.nextLine() + let digest = consensusParser.tryParseKeyValueString('vote-digest').toUpperCase() - if (!lnn.consensusParser.isHex(digest)) throw `InvalidParameterException: vote-digest ${digest} must be in hexadecimal` + if (!consensusParser.isHex(digest)) throw `InvalidParameterException: vote-digest ${digest} must be in hexadecimal` dirSource['vote-digest'] = digest - lnn.consensusParser.consensus['dir-sources'].push(dirSource) - lnn.consensusParser.nextLine() + consensusParser.consensus['dir-sources'].push(dirSource) + consensusParser.nextLine() } @@ -273,30 +278,30 @@ lnn.consensusParser.consumeDirSource = function() { * Consume each router status entry * @throws WrongFieldException if there is no router entry */ -lnn.consensusParser.consumeRouters = function() { - if (lnn.consensusParser.words[0] !== 'r') throw `WrongFieldException: there must be at least one router` - lnn.consensusParser.consensus['routers'] = [] +consensusParser.consumeRouters = function () { + if (consensusParser.words[0] !== 'r') throw `WrongFieldException: there must be at least one router` + consensusParser.consensus['routers'] = [] - while (lnn.consensusParser.words[0] === 'r') { + while (consensusParser.words[0] === 'r') { let router = {} - lnn.consensusParser.consumeRfield(router) + consensusParser.consumeRfield(router) - if (lnn.consensusParser.words[0] === 'a') router['a'] = [] - while (lnn.consensusParser.words[0] === 'a') { - lnn.consensusParser.consumeAfield(router) + if (consensusParser.words[0] === 'a') router['a'] = [] + while (consensusParser.words[0] === 'a') { + consensusParser.consumeAfield(router) } - if(lnn.consensusParser.consensus.flavor == 'microdesc') { - lnn.consensusParser.consumeMfield(router) + if (consensusParser.consensus.flavor == 'microdesc') { + consensusParser.consumeMfield(router) } - lnn.consensusParser.consumeSfield(router) - lnn.consensusParser.tryConsumeVfield(router) - lnn.consensusParser.tryConsumePrField(router) - lnn.consensusParser.tryConsumeWfield(router) - lnn.consensusParser.tryConsumePfield(router) + consensusParser.consumeSfield(router) + consensusParser.tryConsumeVfield(router) + consensusParser.tryConsumePrField(router) + consensusParser.tryConsumeWfield(router) + consensusParser.tryConsumePfield(router) - lnn.consensusParser.consensus['routers'].push(router) + consensusParser.consensus['routers'].push(router) } } @@ -306,39 +311,39 @@ lnn.consensusParser.consumeRouters = function() { * @param {} router * @throws InvalidParameterException if the fields are not valid */ -lnn.consensusParser.consumeRfield = function(router) { +consensusParser.consumeRfield = function (router) { let len = 9 - if(lnn.consensusParser.consensus.flavor == 'microdesc') len = 8 - lnn.consensusParser.checkFormat(len, 'r') + if (consensusParser.consensus.flavor == 'microdesc') len = 8 + consensusParser.checkFormat(len, 'r') - router['nickname'] = lnn.consensusParser.words[1] + router['nickname'] = consensusParser.words[1] + + if (!consensusParser.isBase64(consensusParser.words[2] + "=")) throw `InvalidParameterException: identity ${consensusParser.words[2]} must be in base64` + router['identity'] = consensusParser.words[2] - if (!lnn.consensusParser.isBase64(lnn.consensusParser.words[2] + "=")) throw `InvalidParameterException: identity ${lnn.consensusParser.words[2]} must be in base64` - router['identity'] = lnn.consensusParser.words[2] - let nxt = 3 - if(lnn.consensusParser.consensus.flavor == 'unflavored') { - if (!lnn.consensusParser.isBase64(lnn.consensusParser.words[3] + "=")) throw `InvalidParameterException: digest ${lnn.consensusParser.words[3]} must be in base64` - router['digest'] = lnn.consensusParser.words[3] + if (consensusParser.consensus.flavor == 'unflavored') { + if (!consensusParser.isBase64(consensusParser.words[3] + "=")) throw `InvalidParameterException: digest ${consensusParser.words[3]} must be in base64` + router['digest'] = consensusParser.words[3] nxt += 1 } - if (!lnn.consensusParser.isValidDate(lnn.consensusParser.words[nxt])) throw `InvalidParameterException: date ${lnn.consensusParser.words[nxt]} must have the format YYYY-MM-DD` - router['date'] = lnn.consensusParser.words[nxt] + if (!consensusParser.isValidDate(consensusParser.words[nxt])) throw `InvalidParameterException: date ${consensusParser.words[nxt]} must have the format YYYY-MM-DD` + router['date'] = consensusParser.words[nxt] - if (!lnn.consensusParser.isValidTime(lnn.consensusParser.words[nxt + 1])) throw `InvalidParameterException: time ${lnn.consensusParser.words[nxt + 1]} must have the format HH:MM:SS` - router['time'] = lnn.consensusParser.words[nxt + 1] + if (!consensusParser.isValidTime(consensusParser.words[nxt + 1])) throw `InvalidParameterException: time ${consensusParser.words[nxt + 1]} must have the format HH:MM:SS` + router['time'] = consensusParser.words[nxt + 1] - if (!lnn.consensusParser.isValidIP(lnn.consensusParser.words[nxt + 2])) throw `InvalidParameterException: IP ${lnn.consensusParser.words[nxt + 2]} must be a valid IP address` - router['address'] = lnn.consensusParser.words[nxt + 2] + if (!consensusParser.isValidIP(consensusParser.words[nxt + 2])) throw `InvalidParameterException: IP ${consensusParser.words[nxt + 2]} must be a valid IP address` + router['address'] = consensusParser.words[nxt + 2] - if (!lnn.consensusParser.isValidPort(Number(lnn.consensusParser.words[nxt + 3]))) throw `InvalidParameterException: ORPort ${lnn.consensusParser.words[nxt + 3]} must be a valid port` - router['orport'] = Number(lnn.consensusParser.words[nxt + 3]) + if (!consensusParser.isValidPort(Number(consensusParser.words[nxt + 3]))) throw `InvalidParameterException: ORPort ${consensusParser.words[nxt + 3]} must be a valid port` + router['orport'] = Number(consensusParser.words[nxt + 3]) - if (!lnn.consensusParser.isValidPort(Number(lnn.consensusParser.words[nxt + 4]))) throw `InvalidParameterException: DirPort ${lnn.consensusParser.words[nxt + 4]} must be a valid port` - router['dirport'] = Number(lnn.consensusParser.words[nxt + 4]) + if (!consensusParser.isValidPort(Number(consensusParser.words[nxt + 4]))) throw `InvalidParameterException: DirPort ${consensusParser.words[nxt + 4]} must be a valid port` + router['dirport'] = Number(consensusParser.words[nxt + 4]) - lnn.consensusParser.nextLine() + consensusParser.nextLine() } /** @@ -346,19 +351,19 @@ lnn.consensusParser.consumeRfield = function(router) { * @param {} router * @throws InvalidParameterException if the fields are not valid */ -lnn.consensusParser.consumeAfield = function(router) { - let i = lnn.consensusParser.words[1].indexOf("]") - let address = lnn.consensusParser.words[1].slice(1, i) - if (!lnn.consensusParser.isValidIP(address)) throw `InvalidParameterException: IP ${address} must be a valid IP address` +consensusParser.consumeAfield = function (router) { + let i = consensusParser.words[1].indexOf("]") + let address = consensusParser.words[1].slice(1, i) + if (!consensusParser.isValidIP(address)) throw `InvalidParameterException: IP ${address} must be a valid IP address` let guessedType = 'IPv6' - if (lnn.consensusParser.isIPv4(address)) { + if (consensusParser.isIPv4(address)) { guessedType = 'IPv4' } - let port = Number(lnn.consensusParser.words[1].slice(address.length + 3, lnn.consensusParser.words[1].length)) + let port = Number(consensusParser.words[1].slice(address.length + 3, consensusParser.words[1].length)) - if (!lnn.consensusParser.isValidPort(port)) throw `InvalidParameterException: port ${port} must be a valid port` + if (!consensusParser.isValidPort(port)) throw `InvalidParameterException: port ${port} must be a valid port` router['a'].push({ 'ip': address, @@ -366,7 +371,7 @@ lnn.consensusParser.consumeAfield = function(router) { 'type': guessedType }) - lnn.consensusParser.nextLine() + consensusParser.nextLine() } @@ -374,59 +379,59 @@ lnn.consensusParser.consumeAfield = function(router) { * Parses the field 's' of the router status entry * @param {} router */ -lnn.consensusParser.consumeSfield = function(router) { - router['flags'] = lnn.consensusParser.tryParseFlags() - lnn.consensusParser.nextLine() +consensusParser.consumeSfield = function (router) { + router['flags'] = consensusParser.tryParseFlags() + consensusParser.nextLine() } /** * Tries to parse the field 'v' of the router status entry * @param {} router */ -lnn.consensusParser.tryConsumeVfield = function(router) { - if (lnn.consensusParser.words[0] === 'v') { - lnn.consensusParser.checkFormat(3, 'v') - router['version'] = lnn.consensusParser.words.splice(1, lnn.consensusParser.words.length).join(' ') - lnn.consensusParser.nextLine() +consensusParser.tryConsumeVfield = function (router) { + if (consensusParser.words[0] === 'v') { + consensusParser.checkFormat(3, 'v') + router['version'] = consensusParser.words.splice(1, consensusParser.words.length).join(' ') + consensusParser.nextLine() } } /** * Tries to parse the field 'v' of the router status entry * @param {} router */ -lnn.consensusParser.tryConsumePrField = function(router) { - if (lnn.consensusParser.words[0] === 'pr') { - router['protocols'] = lnn.consensusParser.tryParseRanges(lnn.consensusParser.words.splice(1, lnn.consensusParser.words.length)) - lnn.consensusParser.nextLine() +consensusParser.tryConsumePrField = function (router) { + if (consensusParser.words[0] === 'pr') { + router['protocols'] = consensusParser.tryParseRanges(consensusParser.words.splice(1, consensusParser.words.length)) + consensusParser.nextLine() } } /** * Tries to parse the field 'w' of the router status entry * @param {} router */ -lnn.consensusParser.tryConsumeWfield = function(router) { - if (lnn.consensusParser.words[0] === 'w') { - router['w'] = lnn.consensusParser.tryParseParams() - lnn.consensusParser.nextLine() +consensusParser.tryConsumeWfield = function (router) { + if (consensusParser.words[0] === 'w') { + router['w'] = consensusParser.tryParseParams() + consensusParser.nextLine() } } /** * Tries to parse the field 'p' of the router status entry * @param {} router */ -lnn.consensusParser.tryConsumePfield = function(router) { - if (lnn.consensusParser.words[0] === 'p') { - lnn.consensusParser.checkFormat(3, 'p') - if (lnn.consensusParser.words[1] !== 'accept' && lnn.consensusParser.words[1] !== 'reject') throw `WrongParameterException: ${lnn.consensusParser.words[1]} must be either accept or reject` +consensusParser.tryConsumePfield = function (router) { + if (consensusParser.words[0] === 'p') { + consensusParser.checkFormat(3, 'p') + if (consensusParser.words[1] !== 'accept' && consensusParser.words[1] !== 'reject') throw `WrongParameterException: ${consensusParser.words[1]} must be either accept or reject` - let portList = lnn.consensusParser.parse_range_once(lnn.consensusParser.words[2]) + let portList = consensusParser.parse_range_once(consensusParser.words[2]) router['exit-policy'] = { - 'type': lnn.consensusParser.words[1], + 'type': consensusParser.words[1], 'PortList': portList } - lnn.consensusParser.nextLine() + consensusParser.nextLine() } } @@ -434,13 +439,13 @@ lnn.consensusParser.tryConsumePfield = function(router) { * Parses the field 'm' of the router status entry (for microdesc flavor) * @param {} router */ -lnn.consensusParser.consumeMfield = function(router) { - lnn.consensusParser.checkFormat(2, 'm') - - if (!lnn.consensusParser.isBase64(lnn.consensusParser.words[1] + "=")) throw `InvalidParameterException: digest ${lnn.consensusParser.words[1]} must be in base64` - router['micro-digest'] = lnn.consensusParser.words[1] - - lnn.consensusParser.nextLine() +consensusParser.consumeMfield = function (router) { + consensusParser.checkFormat(2, 'm') + + if (!consensusParser.isBase64(consensusParser.words[1] + "=")) throw `InvalidParameterException: digest ${consensusParser.words[1]} must be in base64` + router['micro-digest'] = consensusParser.words[1] + + consensusParser.nextLine() } @@ -450,17 +455,17 @@ lnn.consensusParser.consumeMfield = function(router) { * Consume the footer * @throws WrongFieldException if there is no footer or no signature */ -lnn.consensusParser.consumeFooter = function() { - if (lnn.consensusParser.words[0] !== 'directory-footer') throw `WrongFieldException: there must be a footer` - lnn.consensusParser.nextLine() - lnn.consensusParser.consensus['footer'] = {} - lnn.consensusParser.tryConsumeBandwidthWeights() +consensusParser.consumeFooter = function () { + if (consensusParser.words[0] !== 'directory-footer') throw `WrongFieldException: there must be a footer` + consensusParser.nextLine() + consensusParser.consensus['footer'] = {} + consensusParser.tryConsumeBandwidthWeights() - if (lnn.consensusParser.words[0] !== 'directory-signature') throw `WrongFieldException: there must be at least one signature` - lnn.consensusParser.consensus['footer']['directory-signatures'] = [] + if (consensusParser.words[0] !== 'directory-signature') throw `WrongFieldException: there must be at least one signature` + consensusParser.consensus['footer']['directory-signatures'] = [] - while (lnn.consensusParser.words[0] === 'directory-signature') { - lnn.consensusParser.consensus['footer']['directory-signatures'].push(lnn.consensusParser.consumeSignature()); + while (consensusParser.words[0] === 'directory-signature') { + consensusParser.consensus['footer']['directory-signatures'].push(consensusParser.consumeSignature()); } } @@ -468,10 +473,10 @@ lnn.consensusParser.consumeFooter = function() { /** * Tries to consume the bandwidth weights */ -lnn.consensusParser.tryConsumeBandwidthWeights = function() { - if (lnn.consensusParser.words[0] === 'bandwidth-weights') { - lnn.consensusParser.consensus['footer']['bandwidth-weights'] = lnn.consensusParser.tryParseParams() - lnn.consensusParser.nextLine() +consensusParser.tryConsumeBandwidthWeights = function () { + if (consensusParser.words[0] === 'bandwidth-weights') { + consensusParser.consensus['footer']['bandwidth-weights'] = consensusParser.tryParseParams() + consensusParser.nextLine() } } @@ -480,31 +485,31 @@ lnn.consensusParser.tryConsumeBandwidthWeights = function() { * @throws WrongFieldException if the first field is not directory-signature * @throws InvalidParameterException if either the identity or the signing-key-digest are not in hexadecimal */ -lnn.consensusParser.consumeSignature = function() { - if (lnn.consensusParser.words[0] !== 'directory-signature') throw `WrongFieldException: next field must be directory-signature` - let length = lnn.consensusParser.words.length +consensusParser.consumeSignature = function () { + if (consensusParser.words[0] !== 'directory-signature') throw `WrongFieldException: next field must be directory-signature` + let length = consensusParser.words.length let algo let remaining if (length === 4) { - algo = lnn.consensusParser.words[1] - remaining = lnn.consensusParser.words.splice(2, length) + algo = consensusParser.words[1] + remaining = consensusParser.words.splice(2, length) } else if (length === 3) { algo = 'sha1' - remaining = lnn.consensusParser.words.splice(1, length) + remaining = consensusParser.words.splice(1, length) } else throw `WrongParameterException: directory-signature has 3 or 4 arguments` let identity = remaining[0] - if (!lnn.consensusParser.isHex(identity)) throw `InvalidParameterException: the identity ${identity} must be in hexadecimal` + if (!consensusParser.isHex(identity)) throw `InvalidParameterException: the identity ${identity} must be in hexadecimal` let digest = remaining[1] - if (!lnn.consensusParser.isHex(digest)) throw `InvalidParameterException: the signing-key-digest ${digest} must be in hexadecimal` + if (!consensusParser.isHex(digest)) throw `InvalidParameterException: the signing-key-digest ${digest} must be in hexadecimal` - lnn.consensusParser.nextLine() + consensusParser.nextLine() - let signature = lnn.consensusParser.parseSignature() - if (lnn.consensusParser.index < lnn.consensusParser.totalLines - 1) lnn.consensusParser.nextLine() + let signature = consensusParser.parseSignature() + if (consensusParser.index < consensusParser.totalLines - 1) consensusParser.nextLine() return { 'Algorithm': algo, @@ -518,69 +523,69 @@ lnn.consensusParser.consumeSignature = function() { /** * Parses lines with the format "field value" where value is an integer and field must be equal to word and return value. * @param {string} word indicates to which field we are adding the newly parsed line -* @throws NotEqualException if lnn.consensusParser.words[0] != word -* @throws WrongParameterException if lnn.consensusParser.words[1] is not a number -* @throws WrongFormatException if lnn.consensusParser.words.length is not 2 +* @throws NotEqualException if consensusParser.words[0] != word +* @throws WrongParameterException if consensusParser.words[1] is not a number +* @throws WrongFormatException if consensusParser.words.length is not 2 */ -lnn.consensusParser.tryParseKeyValueInteger = function(word,expectedLength = 2) { - lnn.consensusParser.checkFormat(expectedLength, word) - if (isNaN(lnn.consensusParser.words[1])) throw `WrongParameterException: ${lnn.consensusParser.words[1]} is not a number` +consensusParser.tryParseKeyValueInteger = function (word, expectedLength = 2) { + consensusParser.checkFormat(expectedLength, word) + if (isNaN(consensusParser.words[1])) throw `WrongParameterException: ${consensusParser.words[1]} is not a number` - return Math.floor(lnn.consensusParser.words[1]) + return Math.floor(consensusParser.words[1]) } /** * Parses lines with the format "field value" where value is a string and field must be equal to word and return value. * @param {string} word indicates to which field we are adding the newly parsed line - * @throws NotEqualException if lnn.consensusParser.words[0] != word - * @throws WrongFormatException if lnn.consensusParser.words.length is not 2 + * @throws NotEqualException if consensusParser.words[0] != word + * @throws WrongFormatException if consensusParser.words.length is not 2 */ -lnn.consensusParser.tryParseKeyValueString = function(word) { - lnn.consensusParser.checkFormat(2, word) - return lnn.consensusParser.words[1] +consensusParser.tryParseKeyValueString = function (word) { + consensusParser.checkFormat(2, word) + return consensusParser.words[1] } /** * Parses lines with the format "field YYYY-MM-DD HH:MM:SS" where field must be equal to word and return a date object * @param {string} word indicates to which field we are adding the newly parsed line - * @throws NotEqualException if lnn.consensusParser.words[0] != word - * @throws WrongFormatException if lnn.consensusParser.words.length is not 2 + * @throws NotEqualException if consensusParser.words[0] != word + * @throws WrongFormatException if consensusParser.words.length is not 2 * @throws NonValidDateException if the date is not valid * @throws NonValidTimeException if the time is not valid */ -lnn.consensusParser.tryParseDate = function(word) { - lnn.consensusParser.checkFormat(3, word) - if (!lnn.consensusParser.isValidDate(lnn.consensusParser.words[1])) throw `NonValidDateException: ${lnn.consensusParser.words[1]} is not a valid date` - if (!lnn.consensusParser.isValidTime(lnn.consensusParser.words[2])) throw `NonValidTimeException: ${lnn.consensusParser.words[2]} is not a valid time` +consensusParser.tryParseDate = function (word) { + consensusParser.checkFormat(3, word) + if (!consensusParser.isValidDate(consensusParser.words[1])) throw `NonValidDateException: ${consensusParser.words[1]} is not a valid date` + if (!consensusParser.isValidTime(consensusParser.words[2])) throw `NonValidTimeException: ${consensusParser.words[2]} is not a valid time` return { - "date": lnn.consensusParser.words[1], - "time": lnn.consensusParser.words[2] + "date": consensusParser.words[1], + "time": consensusParser.words[2] } } /** * Parses lines with the format "field list" where list is a comma separated list, returns the list as an array * @param {string} word indicates to which field we are adding the newly parsed line - * @throws NotEqualException if lnn.consensusParser.words[0] != word - * @throws WrongFormatException if lnn.consensusParser.words.length is not 2 + * @throws NotEqualException if consensusParser.words[0] != word + * @throws WrongFormatException if consensusParser.words.length is not 2 */ -lnn.consensusParser.tryParseCommaSeparatedList = function(word) { - lnn.consensusParser.checkFormat(2, word) - return lnn.consensusParser.words[1].split(",") +consensusParser.tryParseCommaSeparatedList = function (word) { + consensusParser.checkFormat(2, word) + return consensusParser.words[1].split(",") } /** * Parse the ranges of the protocols * @param pairs Array of entries => Keyword=Values where values is the range */ -lnn.consensusParser.tryParseRanges = function(pairs) { +consensusParser.tryParseRanges = function (pairs) { let content = {} for (let pair of pairs) { if (pair.includes("=")) { let tmp = pair.split("=") - content[tmp[0]] = lnn.consensusParser.parse_range_once(tmp[1]) + content[tmp[0]] = consensusParser.parse_range_once(tmp[1]) } } @@ -591,7 +596,7 @@ lnn.consensusParser.tryParseRanges = function(pairs) { * Helper function to parse the ranges of the protocols * @param value the range we want to parse */ -lnn.consensusParser.parse_range_once = function(value) { +consensusParser.parse_range_once = function (value) { value = value.split(',') let subvalues = [] @@ -616,11 +621,11 @@ lnn.consensusParser.parse_range_once = function(value) { * Parse the flags * @throws NotValidFlagException if one of the flags is not valid */ -lnn.consensusParser.tryParseFlags = function() { - let flags = lnn.consensusParser.words.splice(1, lnn.consensusParser.words.length) - +consensusParser.tryParseFlags = function () { + let flags = consensusParser.words.splice(1, consensusParser.words.length) + for (let f of flags) { - if (!lnn.consensusParser.validFlags.includes(f)) throw `NotValidFlagException: ${f} is not a valid flag` + if (!consensusParser.validFlags.includes(f)) throw `NotValidFlagException: ${f} is not a valid flag` } return flags @@ -630,13 +635,13 @@ lnn.consensusParser.tryParseFlags = function() { * Parse signature * @throws WrongFormatException if the line does not start with ----BEGIN */ -lnn.consensusParser.parseSignature = function() { - if (lnn.consensusParser.words[0] !== '-----BEGIN') throw `WrongFormatException` - lnn.consensusParser.nextLine() +consensusParser.parseSignature = function () { + if (consensusParser.words[0] !== '-----BEGIN') throw `WrongFormatException` + consensusParser.nextLine() let signature = '' - while (lnn.consensusParser.lines[lnn.consensusParser.index] !== "-----END SIGNATURE-----") { - signature += lnn.consensusParser.lines[lnn.consensusParser.index] - lnn.consensusParser.nextLine() + while (consensusParser.lines[consensusParser.index] !== "-----END SIGNATURE-----") { + signature += consensusParser.lines[consensusParser.index] + consensusParser.nextLine() } return signature } @@ -645,9 +650,9 @@ lnn.consensusParser.parseSignature = function() { /** * parase parameters */ -lnn.consensusParser.tryParseParams = function() { +consensusParser.tryParseParams = function () { let content = {} - for (let param of lnn.consensusParser.words.splice(1, lnn.consensusParser.words.length)) { + for (let param of consensusParser.words.splice(1, consensusParser.words.length)) { let tmp = param.split('=') content[tmp[0]] = Number(tmp[1]) } @@ -658,7 +663,7 @@ lnn.consensusParser.tryParseParams = function() { * Check if the string in date has the format YYYY-MM-DD * @param {string} time String representing the date */ -lnn.consensusParser.isValidDate = function(date) { +consensusParser.isValidDate = function (date) { if (typeof date !== 'string') return false let regex = /^\d{4}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/ return regex.test(date) @@ -667,7 +672,7 @@ lnn.consensusParser.isValidDate = function(date) { /**Check if the string time has the format HH:MM:SS * @param {string} time String representing the time */ -lnn.consensusParser.isValidTime = function(time) { +consensusParser.isValidTime = function (time) { if (typeof time !== 'string') return false let regex = /^(0[0-9]|1[0-9]|2[0-3])[:][0-5][0-9][:][0-5][0-9]$/ return regex.test(time) @@ -677,7 +682,7 @@ lnn.consensusParser.isValidTime = function(time) { * Check if the IP address is valid (either IPv4 or IPv6) * @param {string} IP the address we want to check */ -lnn.consensusParser.isValidIP = function(IP) { +consensusParser.isValidIP = function (IP) { let regex = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/ return regex.test(IP) } @@ -686,7 +691,7 @@ lnn.consensusParser.isValidIP = function(IP) { * Check if the IP is an IPv4 address * @param {string} IP */ -lnn.consensusParser.isIPv4 = function(IP) { +consensusParser.isIPv4 = function (IP) { let regex = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ return regex.test(IP) } @@ -695,7 +700,7 @@ lnn.consensusParser.isIPv4 = function(IP) { * Check if the given port is valid * @param {number} port */ -lnn.consensusParser.isValidPort = function(port) { +consensusParser.isValidPort = function (port) { if (isNaN(port)) return false //TODO: < or <= ? return port >= 0 && port <= 65535 @@ -705,7 +710,7 @@ lnn.consensusParser.isValidPort = function(port) { * Check if the given string is in hexadecimal * @param {string} str */ -lnn.consensusParser.isHex = function(str) { +consensusParser.isHex = function (str) { let regex = /^[a-fA-F0-9]+$/ return regex.test(str) } @@ -714,18 +719,18 @@ lnn.consensusParser.isHex = function(str) { * Check if the given string is in base 64 * @param {string} str */ -lnn.consensusParser.isBase64 = function(str) { +consensusParser.isBase64 = function (str) { let regex = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/ return regex.test(str) } /** - * Updates lnn.consensusParser.index and lnn.consensusParser.words + * Updates consensusParser.index and consensusParser.words * @throws EndOfFileException if the end of the file has already been reached */ -lnn.consensusParser.nextLine = function() { - if (lnn.consensusParser.index >= lnn.consensusParser.totalLines) throw `EndOfFileException: there are no lines to parse` - lnn.consensusParser.words = lnn.consensusParser.lines[++lnn.consensusParser.index].split(" ") +consensusParser.nextLine = function () { + if (consensusParser.index >= consensusParser.totalLines) throw `EndOfFileException: there are no lines to parse` + consensusParser.words = consensusParser.lines[++consensusParser.index].split(" ") } /** @@ -733,8 +738,9 @@ lnn.consensusParser.nextLine = function() { * @param {number} expectedLength the expected length of words * @param {string} expectedWord the expected word[0] */ -lnn.consensusParser.checkFormat = function(expectedLength, expectedWord) { - if (lnn.consensusParser.words.length != expectedLength) throw `WrongFormatException: ${expectedLength} fields are expected` - if (lnn.consensusParser.words[0] != expectedWord) throw `NotEqualException:b ${expectedWord} is not equal to ${lnn.consensusParser.words[0]}` +consensusParser.checkFormat = function (expectedLength, expectedWord) { + if (consensusParser.words.length != expectedLength) throw `WrongFormatException: ${expectedLength} fields are expected` + if (consensusParser.words[0] != expectedWord) throw `NotEqualException:b ${expectedWord} is not equal to ${consensusParser.words[0]}` } +export { consensusParser }; \ No newline at end of file diff --git a/js-client/src/endpoint.js b/js-client/src/endpoint.js index 8b33316..982f434 100644 --- a/js-client/src/endpoint.js +++ b/js-client/src/endpoint.js @@ -1,3 +1,12 @@ +/** + * @module endpoint + */ + +import { lnn } from "./header.js"; +import * as api from "./api.js"; +import * as post from "./post.js"; + + /** * Create an empty endpoint object, consider using {@link lnn.open} first. * @@ -8,8 +17,7 @@ * @param {string} port (ex: 4990, 8080, 5000, 443…) * @return {endpoint_t} */ -lnn.endpoint = function(host, port) -{ +export function endpoint(host, port) { var http = "http://" + host + ":" + port.toString() http += lnn.api.url @@ -39,7 +47,7 @@ lnn.endpoint = function(host, port) ws: ws, http: http, guard: http + "/guard", - socket: ws + "/channels", + socket: ws + "/channel", channels: http + "/channels", consensus: http + "/consensus", descriptors: http + "/descriptors", @@ -153,7 +161,7 @@ lnn.endpoint = function(host, port) * @default null */ consensus: null, - + /** * Consensus obtained by {@link lnn.get.descriptors} upon request * @name endpoint_t#descriptors @@ -167,22 +175,22 @@ lnn.endpoint = function(host, port) select_path: false, - /*perform http get/post request*/ - - http_request: function(url, method, data, data_type, success, error) - { - if (error === undefined) - error = function() { } - if (success === undefined) - success = function() { } - - lnn.send_req(endpoint,url, method, data, data_type, success,error) + /** + * Perform the HTTP request. + * @param {String} url URL where the request is send + * @param {String} method method of the HTTP request + * @param {String} data payload of the request + * @param {String} data_type data type of the payload of the request + * @param {Function} success callback in case of success + * @param {Function} error callback in case of error + */ + http_request: function (url, method, data, data_type, success, error) { + api.send_req(endpoint, url, method, data, data_type, success, error) }, /*destroy the circuit*/ - close: function(success,error) - { - lnn.post.close(endpoint,success,error) + close: function (success, error) { + post.close(endpoint, success, error) } } diff --git a/js-client/src/get.js b/js-client/src/get.js index 7b2b84f..cf6a3bf 100644 --- a/js-client/src/get.js +++ b/js-client/src/get.js @@ -1,39 +1,35 @@ /** * GET operations. + * @module get * @namespace * @see lnn.get.guard */ -lnn.get = {} /** - * Perform GET /guard and update endpoint accordingly, - * see {@link endpoint_t#guard}. - * - * @param {endpoint_t} endpoint endpoint in use, stores answer - * @param {callback} success optional, called on success - * @param {callback} error optional, called on error - * @example - * // Note: lnn.open perform these steps for you whenever needed. - * endpoint = lnn.endpoint('localhost', 4990) - * lnn.get.guard(endpoint, function (endpoint) - * { - * console.log('Guard identity:', endpoint.guard.router.identity) - * }) - * // (can also have error callback: function (endpoint, xhttp_status) { }) - */ -lnn.get.guard = function(endpoint, success, error) -{ +* Perform GET /guard and update endpoint accordingly, +* see {@link endpoint_t#guard}. +* +* @param {endpoint_t} endpoint endpoint in use, stores answer +* @param {callback} success optional, called on success +* @param {callback} error optional, called on error +* @example +* // Note: lnn.open perform these steps for you whenever needed. +* endpoint = lnn.endpoint('localhost', 4990) +* lnn.get.guard(endpoint, function (endpoint) +* { +* console.log('Guard identity:', endpoint.guard.router.identity) +* }) +* // (can also have error callback: function (endpoint, xhttp_status) { }) +*/ +export function guard(endpoint, success, error) { var rq = new XMLHttpRequest() - rq.onreadystatechange = function() - { - if (rq.readyState == 4 && rq.status == 200) - { + rq.onreadystatechange = function () { + if (rq.readyState == 4 && rq.status == 200) { endpoint.guard = JSON.parse(rq.responseText) if (success !== undefined) success(endpoint) } - else if (rq.readyState == 4 && error !== undefined) - { + else if (rq.readyState == 4 && error !== undefined) { error(endpoint, rq.status) } } @@ -58,19 +54,15 @@ lnn.get.guard = function(endpoint, success, error) * * @see lnn.get.guard */ -lnn.get.consensus = function(endpoint, success, error) -{ +export function consensus(endpoint, success, error) { var rq = new XMLHttpRequest() - rq.onreadystatechange = function() - { - if (rq.readyState == 4 && rq.status == 200) - { + rq.onreadystatechange = function () { + if (rq.readyState == 4 && rq.status == 200) { endpoint.consensus = JSON.parse(rq.responseText) if (success !== undefined) success(endpoint) } - else if (rq.readyState == 4 && error !== undefined) - { + else if (rq.readyState == 4 && error !== undefined) { error(endpoint, rq.status) } } @@ -81,15 +73,15 @@ lnn.get.consensus = function(endpoint, success, error) /** * Perform GET /descriptors */ -lnn.get.descriptors = function(endpoint, success, error){ +export function descriptors(endpoint, success, error) { var rq = new XMLHttpRequest() - rq.onreadystatechange = function(){ - if(rq.readyState == 4 && rq.status == 200){ + rq.onreadystatechange = function () { + if (rq.readyState == 4 && rq.status == 200) { endpoint.descriptors = JSON.parse(rq.responseText) - - if(success !== undefined) success(endpoint) + + if (success !== undefined) success(endpoint) } - else if (rq.readyState == 4 && error !== undefined){ + else if (rq.readyState == 4 && error !== undefined) { error(endpoint, rq.status) } } @@ -98,55 +90,51 @@ lnn.get.descriptors = function(endpoint, success, error){ rq.send() } -lnn.get.consensus_raw = function(endpoint, success, error,flavor = 'microdesc') -{ +export function consensus_raw(endpoint, success, error, flavor = 'microdesc') { var rq = new XMLHttpRequest() - rq.onreadystatechange = function() - { - if (rq.readyState == 4 && rq.status == 200) - { - endpoint.consensus_raw = rq.responseText + rq.onreadystatechange = function () { + if (rq.readyState == 4 && rq.status == 200) { + endpoint.consensus_raw = rq.responseText if (success !== undefined) success(endpoint) } - else if (rq.readyState == 4 && error !== undefined) - { + else if (rq.readyState == 4 && error !== undefined) { error(endpoint, rq.status) } } - rq.open("GET", endpoint.urls.consensus+ "-raw/" + flavor, true) + rq.open("GET", endpoint.urls.consensus + "-raw/" + flavor, true) rq.send() } /** * Perform GET /descriptors */ -lnn.get.descriptors_raw = function(endpoint, success, error,flavor = 'microdesc'){ +export function descriptors_raw(endpoint, success, error, flavor = 'microdesc') { var rq = new XMLHttpRequest() - rq.onreadystatechange = function(){ - if(rq.readyState == 4 && rq.status == 200){ + rq.onreadystatechange = function () { + if (rq.readyState == 4 && rq.status == 200) { endpoint.descriptors_raw = rq.responseText - - if(success !== undefined) success(endpoint) + + if (success !== undefined) success(endpoint) } - else if (rq.readyState == 4 && error !== undefined){ + else if (rq.readyState == 4 && error !== undefined) { error(endpoint, rq.status) } } - rq.open("GET", endpoint.urls.descriptors+ "-raw/" + flavor, true) + rq.open("GET", endpoint.urls.descriptors + "-raw/" + flavor, true) rq.send() } -//fetch raw signing keys(tor/keys/all) -lnn.get.signing_keys = function(endpoint, success, error){ + +export function signing_keys(endpoint, success, error) { var rq = new XMLHttpRequest() - rq.onreadystatechange = function(){ - if(rq.readyState == 4 && rq.status == 200){ - endpoint.signing_keys = rq.responseText - - if(success !== undefined) success(endpoint) + rq.onreadystatechange = function () { + if (rq.readyState == 4 && rq.status == 200) { + endpoint.signing_keys = JSON.parse(rq.responseText) + + if (success !== undefined) success(endpoint) } - else if (rq.readyState == 4 && error !== undefined){ + else if (rq.readyState == 4 && error !== undefined) { error(endpoint, rq.status) } } diff --git a/js-client/src/header.js b/js-client/src/header.js index 91568d7..5f44342 100644 --- a/js-client/src/header.js +++ b/js-client/src/header.js @@ -1,8 +1,5 @@ -"use strict" - /** - * The Lightnion Javascript client, top-level namespace. - * + * @module header * @namespace * @see lnn.open * @see lnn.stream.tcp @@ -31,7 +28,9 @@ * } * */ -var lnn = {} +"use strict" + +let lnn = {} /** * Common API constants. @@ -64,56 +63,35 @@ lnn.api.ws_port = "8765" * @readonly **/ lnn.state = { - /** - * operation started - * @type channel - */ - started: 1, - /** - * /guard get success (channel only) - * @type channel - */ - guarded: 2, - /** - * circuit created - * @type channel - */ - created: 3, - /** - * circuit negotiation - * @type channel - */ - pending: 4, - /** circuit extended (channel only) - * @type channel - */ - extpath: 5, - /** - * ready to use - * @type channel - */ - success: 6, - /** - * operation started - * @type stream - */ - started: 1, - /** - * ready to use - * @type stream - */ - created: 3, - /** - * incoming data - * @type stream - */ - pending: 4, - /** - * completed or closed - * @type stream - */ - success: 6 - } - -lnn.root_keys = {"E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEAu/DOrbv/4IAYvyxsy/6ivC3q5yCQBWLKHZGYKQa5G/3rem8wen0f\nqF7y4ye6U6faWc5kcNMHEKMIeBzMErxwF345qoGHITxbbOWnizgwPgrdCwlK3p0H\n1XZGU/TTjoaM25P+ZNCBvGmDQRAtgs2odnv+i8hpu6vrcAUZYXmmw/Ag1Ou2AlLC\nmPpbjV1O5SMylgC4IuCBPr3iA+M1kKkvj4LmwU6pJxjAae76GLzzQ/Ffvi7rRpvU\n2BHetjehk+7/t8izgbhT4VABtzKgrv9ATnhfEgPeT/WBq0E75iciBBAXRPF5kEA4\nk++NPy21XpL7jkQ4wnMs2HyiFhHbUwbLcoyQ/JVq/WBboSwStYbkdizRpkhJ1eNg\nLiD8CPWcZnhWZi9VWrwT0xl+Mu4v6kwo9kVnXhOfcK8Wni9FqiBu2tmNDoGPG1Ac\nwptYQSIoujuLgn4MARREwo9cWrKp2w+D7Dt4U7U5OrXL7TXjonEKuEHwRhzz1JA8\n7LXm/wENwn1/AgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "4265082610590984650298571269851909784779960667093194478000368646621004716662609233655442598499022851056496330118730849830273823756865364111572550521969913453954424666717555681412431895903064834663640131108202898453505978869775781266956063261382865850932960187373535478388167462267680245855376796488196992528976310773368546437995698795839667486367614400033032836612916811668692051687979908125424738073520014030043101507177694904048387466293640094065474395811849169992950402843348979217937357028918814501907018626654851618026088306336696217391315785835862813191898991169119517967069188574049126746403817193428970985938941637549384677333497662447925500548997588820571328351525518431702260319152920454713512853218715844374562481975142231266241872441105222520530578950833934557963697832301158731263482742217757451498851395466239393977441018737842250454402485059411256882019283972680700690025326869682172936316160649359303517568383", "exponent": "65537"}, "ED03BB616EB2F60BEC80151114BB25CEF515B226": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEA1d6uTRiqdMp4BHBYIHKR6NB599Z1Bqw4TbOVkM2N1aSA4V/L/hKI\nnl6m/2LL/UAS+E3NCFX0dhw2+D7r7BTJyfGwz0H2MR6Py5/rCMAnPl20wCjXk2qY\nACQa0rJvIqXobwGnDlvxn4ezsj0IEY/FEb61zHnnPHf6d3uyFR1QT06qEOQyYzML\n76f/Lud8MUt+8KzsdnadAPL8okNvcS/nqa2bWbbGhC8S8rtDpPg5BhX2ikXa88RM\nQdrrackdppB2ttHlq9+iH3c8Wyp7bvdH8uhv410W7RnIE4P+KIxt3L0gqkxCjjyh\nmn9ONcdgNOKe31q2cdW5LOPSIK+I5/VTjYjICza7Euyg03drpoBMGLuuJZY6FXEV\nauIBncWe+So8FMxqU/fwo5xm6x085U1MwXUmi4XDYpr/kau6ytPnzzw9J++4W9iC\nem5Jp0vaxrDnPdphqT0FWsBAwsZFL7nZRnmUlTgGsXUa0oSM9/MErDwzELh/NwG4\nDNyyzRG8iP61AgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "4853513851890304483632189984116912887552714435807558863351254605821673341176973920997133914540707556512159162072536810570055915316951424555752144501196058576401111284324371851818692464294235495298179826629250861876469206679094587923441060638554945096076981656966491000848432098982827813923565298241454944954117203348700054117385280083672557899354861612517523076411333517431043956284856778463310981993221096032703736009540146476129053806202336217604684017643317879800709610658580283384176539842967103841148874925409343186767194116152830042715033086525526511115764497456077195426493534059531423633457036546537778289505707077160773855486254291539860487568453337501371360833292963549166702677419394560465070498819177641401546076422636818929491649818938138321601424049994011037655009240719434304268370220842811734472024563385118409167414741575135434277870510016746841980108405312556507596222397577354244847477373568017687216979637", "exponent": "65537"}, "EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEAwBmqdD+G0q3smN5OBFHCcK5pQH5G1GIpFJ1JxCVEp92tTK4ZHnot\n9RzMfag6zQFqwLaJ+yEb1DOjTdTMfcUTsj5f3GUqPB+U7shSMAvvAAM+Bx/4m1AU\nu6sk4XmPB1bCBfcRl4zhnY6XFIbj0ktuBDblcxHz3lDgHFpBoci9sF59mM14MZ09\nEdwgeckcU5oeq6ApuSlUVaOT8xsKV/yeK4SKaFfDclwPAJuitQ5CpqctP7ExmlrY\nsboTDtz7/Xa6OccaGDEUf7TRlipvUX6rvlmvHm3qjdixVfExpa8E5QG79GZTL82p\n1zBd3iqc6QEnRDTiW9cMUeQt4EvrwOUVVYPWo3hp1C/iiNzWraDays2xuhaSB0gj\nfPatu2CFW5XB2vd9IvIiWeklSFqnF8DL38jDL7DbFiETJreGsDMR03yHWVd0MbPz\nOrvAxG4tJn+JtnwhzlbRjnfk53jOTbiM0vMV8h/ztapCiJeT/6i7nVQ1xL2boeYw\n5RDUlwZaQiaXAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "4359479710096798494885908153462390416534051850733863382363542599120892347291572965711310694293113767263898203064487008541689356773946670197862022894787350949413325910401087478447870277489908818650834976558051482702640179681370195561660843509130288710473433976452408396815083632617630392846029489243026822335232571536232142820287356781877167468799173520568646261983561661740154113560869647583250045229784224909125959441344108937078905652333127397551918722769774326299327935540568703883447714739839831564269425529710606110314882755506481918480015098476003213791822567596644070479527696300998068444836524984686738239861833845101067231739241496047506047479511188893529948849586801073398368000394284659871989946435620278923514428208621852305653079709442615379286424994476915590660492986309110863384503404942705913278946665692301883626087626069228730534015600652113417214095405158359776927547834313360923253952243153841424957580951", "exponent": "65537"}, "49015F787433103580E3B66A1707A00E60F2D15B": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEAxVbS0noZKz1Ei6858RGyyuQgwQUKG4Urrp2BiAzkYxwX+6fURlut\nAjeLb4XysqCdNdUipuLRQ2QIy1C220QiCHV6jZAsM4tmEq6TpK6q1lxi5YPKqbGS\nCfUQFT1nO4s4DCYSLCwiRNy6bMe8tNHc0MpXP3loCbPkYCoXrEL6vYIROw3oeGWE\nKbFPQrzYJAPHgUubBibsY5lkUY9N/5QZw2y1bn+dq9mFOoCIHLd6DkQmySmftnMe\nQrpYA2WvE4M5yN2HB8QGT7TdzXPPL6889rFw/mjqYExQPX7cqmILkchsB7I5whjA\nu0oodF8Y9ooK9QT0GeK4h3xQhzNG17anuUxbZ7sxzmBwBNmkNyLWEeIntazyjRFr\nP2mDY/9YK2JOQKkh3tKl1whcCG9ZtAhKmm/ijG7OrhqtusdGKBXIgALf4f111AK1\ngNcacDx2fJzRHuNK8zkIORAzStxKdLbAbBNeLENk1zBjSkrxCOJH4mBpr8TXULq1\nThLI/8OzZq4LAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "4478370056530514075881577287172593939090105850231251067120605051790151351591447362278306383677531683627284249937699216460916960537336627052324230303818273630721549226000094683033918974248151434841741790058697411570191152068717686134304056262375380091499749989032420587534709414424038930858394642308181616505095810566731820295621870057817767744368901344592677180564499161808869141370339452133625460856156709998501384514095548550701948006168037371433621135031942839390014426220411787952473976302783360597030612220283536944045138724388204357691204315486151523668925505763969782151058783140266779674432221025068505361239018376658417105365085149323982457545956126320437097391568554717566209476150371611756522374004225647171232628873024788218132842469377668317128471012003873825404582669041737786996870969730264343165489366196019094241735351178842210162047042747293703282562345989415082110551966357544312774340617416260465310739979", "exponent": "65537"}, "14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEA7cZXvDRxfjDYtr9/9UsQ852+6cmHMr8VVh8GkLwbq3RzqjkULwQ2\nR9mFvG4FnqMcMKXi62rYYA3fZL1afhT804cpvyp/D3dPM8QxW88fafFAgIFP4LiD\n0JYjnF8cva5qZ0nzlWnMXLb32IXSvsGSE2FRyAV0YN9a6k967LSgCfUnZ+IKMezW\n1vhL9YK4QIfsDowgtVsavg63GzGmA7JvZmn77+/J5wKz11vGr7Wttf8XABbH2taX\nO9j/KGBOX2OKhoF3mXfZSmUO2dV9NMwtkJ7zD///Ny6sfApWV6kVP4O9TdG3bAsl\n+fHCoCKgF/jAAWzh6VckQTOPzQZaH5aMWfXrDlzFWg17MjonI+bBTD2Ex2pHczzJ\nbN7coDMRH2SuOXv8wFf27KdUxZ/GcrXSRGzlRLygxqlripUanjVGN2JvrVQVr0kz\npjNjiZl2z8ZyZ5d4zQuBi074JPGgx62xAstP37v1mPw14sIWfLgY16ewYuS5bCxV\nlyS28jsPht9VAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "5396006896672923919170376321015414033025305978691801380286282419060650629337994711648426313865441605278865957887179149064926973239589747252548544123423425532964432677525911417844939047266674870143373299373808533271549179531100624255995919582282986070709957145141311737921744737684644364997026711137039862516790016585467278801390323999190698276569987150882942425819084188086112387917643258553576243586463809821489886321496914147213991313664874476125413360935595564037009007201037298330610333651523799160676164549018583860848205617148585461747608642110929404366346139453320911530017064049107480223964101957067420864462686036119258833071571168582626315940483315212623942521081156180571255691750092339045100575343817326674236492127679508435510665824369985747296031265139841539446941726719222289955841798281014832874187249306595782547530654796428419376096671610447408925307586446548524278380965459331567603812002337678123275312981", "exponent": "65537"}, "0232AF901C31A04EE9848595AF9BB7620D4C5B2E": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEAu9O0Pueesn0+29BlxZs60mBqehjdQtgSnKOm9QZxbQ0xrMQgbFnR\nhWbKD8erenyeFk2SF6AJkbyzgYC89hyPW+8GBDmg5bE8fRKjgV/nI3tY2m4rkY3u\nzSmYIdwqHUUc98Xzt9PaQ8IJAlDBY4XLKrWmJMxSyhBlVEept7+9Tj23qowW44Mz\nxPJZ1aFkB1FpkD6qmoCzVZbhXy3cGt1nDwdJK7KqlaXziz9pFiw8PzTVU2xFgJNy\n+nEcT72DBtk3G5K2Riu/aXY/D541Cioj9KMV4Nv4g8aBKx58Xq2tq1pFkc1Bqj1y\n2MomVR3iskFzlqC8yKWGVe4OP2IaOhtcQJYp5GR9q+dWnr53WWNVxNu3sA9iMal3\nPJUk5pIYrsmArGew5gmlCe+Al46nPINxc7ouztmStAV+2F6SpZlKOcstnT+KJ52O\n1xnOSaj/WnzG2o4KZ9UrFQoUNOLQJcelPcC+vrinMk9BQPcB072l9NjpUBC9brsW\nqTCMStn1jfDDAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "4262502678389628073327098698101933713204258866298991107143915315775788017735243503842300672151903939515636413048535890529140983315612394233492127493671968754253858077806107572425335922512806461268470316069010516292757479847855155191162471441048915789843403315380362962713759533031871481103633426703457886370076244678172071287648837650954346153254574260139266737836256814706006179550063237511024508177938470212714069855212930234691309091705185265617381610109942837703850610919048280836374875876631081565773771267067607619379142899853074124030342064790986870019649862752291135453219411848593334099581272116327787197973531220856202380360757944483717187029211542194209929973479177496209923435171406359476535762848780319721779350224506345883132283057703651845001875670052646473726056953509354571369863200729213851559082894038196307709028548805046108064971316065491207456901237541246297298205464261530049546199928143080164621676739", "exponent": "65537"}, "D586D18309DED4CD6D57C18FDB97EFA96D330566": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEAvi5+A+XPw4jxMYhmEI4+MpnaX3dUEbsMGHA+xAMnmVhuxbm3Dn5c\nTyhQNY2LOlsieE84UYG+J4dABfaFH4w0l6zUJkuytX4+6WRQontw9puR/IcXkRwM\n8Tv/tY675OYRCm9DgDAWfqZM0IgTzSrYRDl8eFPSFCOP0NhMrQZeUrdKgwAXVZWP\nxt9nTCwT4K9BMp47LEmZKdEokeVsr0l29Z9v5+r24k9x8EQjDexsoHwlVrxWfarG\n1klWssfSFpkMN+FkTQnBC6ByiBh5ZKM5AC/HkVFvuHjehUpfrtNk6XNFcKbDvEIg\nqPdg1QWuuSWpZVA+/EwSBtwMNcq9pv60L8Cm9WCJoSC691WByiGwFCy1/XcBI4J/\nBkoMEvP3kAxzm92jqGbpFSJawFRPZKy89FDKpha/So3CERQPV0ar+DTpVqDlryWV\nN4x1IzpPeSHFj7T74q8qdrxx0wcAjWJ9WYoGQif6FK3hHcmbSGSgyvAFeoYxyUCL\nJHkjBCD4WTWVAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "4315938373589390871324039715940721794141806812740113685946842472684777816469302243088945372127785445758957642729464414061774690318800654936835533632741448518308146748342432812035748070469911853087878390373505376615821437779447214423220576507065978408319185999963658994471854767322047139741144450969195589314364866836210509451469530335321761744431983154117953167550032649084496711538529671278634518941977655203137353325560108452370436738874088915342970544541812005446505999212875379890390667973712500922318144508120527864958829891121737709084142319962499252192150962375112680251542009910365019275182326294310971393455525006094009234619824850360763746203969112048888716776956687768406083947853423358579412663013031744465348867896645616879816428879460375026419591424152976306778847041328525749726239539607397610652528344669097072761396557525617598936304349030571480500605016364600874170887389360334368925859287210487321560954261", "exponent": "65537"}, "27102BC123E7AF1D4741AE047E160C91ADC76B21": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEAuxgnMVH4vwBjMeGvrEODOYcjbCS4N+Wt0SZ6XA5I08HyMf5AbaaF\nMDscJBRIUOp7DyLmUwK+jp+QI8pUjjKsB8S0ctb/J3Im2T6CXnP2KgEfVmpNVQmV\nXdMm8cRZl1uIZDDBAXizSQ51f9A17TJh7pF/5khYp/SAzl6aO5ETn7ry0ITiJnNa\n6cY+400F7ZBA8NuXnCHVGfmpFFsiJKFrS1Kve629eeaNEd3mynRviBXJy5a4NEGf\ny42Ev8on6SxEnF9OG0NMJ081/+mP+j8Dsl3+Uehzr9B42MQQfDo4RdYGrt9XolBm\nL4eay1ieZEsFeDy0TMfiGGbr90wo1fgGLHIRSfTNLhhPJ/f9cTZPe98rhSgGWiAd\nRvK5SljoIOR4qdS9/aiZkj1P+etvh1rIQUcG4/xCOBnouEBK+DDHZFqyMtpMPtV0\nBxi20DVaMJcyhdfjVqcRSyuR8tlOnTid6QwBj6kgIIfMaC+4Ht6yO/SYquCWlaZl\ny7Pu7li8WyW9AgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "4245876742302216250539402935121958102877229033900812405994439134565505889772274910662724203048170349193660190230989120787281062838889272331462662391335096700910511577581535648353189646248844695280822713974231966250959597803605563601774058942522273744764001723905996854726338289098678766008272948759327489756748312748831202407397673400485862024058750328710003192336622038565036452019920806501698804926553848402942319711046473956666483376088159250085506157691910932199085936956499057959580484245927999770736557712790717445442338944812329909917741207200996094386694904452558252235524081161890952426247992100179017410206320113815311521173940618852967612138259025766521534664395905476061108366154343253140774519015442868592855605963652444595799062516490659213567549653987909346896521509739969925711926847326484663672780829753625264744932139342770169490563655970276232419754005967626597248864642803557048931911344156408850396423613", "exponent": "65537"}, "23D15D965BC35114467363C165C4F724B64B4F66": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEAlv6XS+VppPaQzOgor0YFlcXLWeXiMn5N3VBneXuw8maLOu9oPJ9z\n2/oMQN8a+VOWTf+/jebGzOBK6MamXpgsIZPQWiT18gZMsYdR8mcqBYqVP3khwUWh\n9QYkV+m+Auxa0TLzTrsi6dLDJ384XdpDweU+YJghMJNZ1NqiT8ogj84hxs5Tf+Qf\nbn7EBIcU7SAKr5Lw25KrMb5e3AZSC5MilBS/KLgVTq/GiWb7pKd5pxGwlGolNX8a\nPccZ2ZT2DrSQsct4wVxhSbUqANI3PfMpXvmUDxWWBgbQwLF02/4gi+13snlHtqwl\ny1WjE55HVfx1CTX13SStwmF/N3SFtFf1qil3j5qrHdHtKlAYOaTfqab1eLVH1l83\nLI5QWD7ri9GpPqIjlh6PuaHjaO2FW20SouZtS9jJKwi1l1G3ef1tSlha1cxkRxIp\nU/ngvQBsoa9X26VfQA4MieZgVVdMVwjCNh2YC9aEXc/KxfcBueZkM1194qP88cVu\ndOFYaftOkuGPAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "3426634882092651796566912594719185066699982172609428736749423789534815367932500326015777199302561400322006726461199168406688099510228406381704808309065149567455881148670841777385848416081047357899019796914105261072575798650645509932007669078370871492548117824145883515053703834844681924055776603605626642026681688734831773665401100454338337192742706070833842073946692569701981821003421244139769699786431127459870754523468474285701238905285768761065132389492673489498134430847565050710738968807470604061298634103129466083596932418775324672116209568512914294481107341180706129813652366420422040855079441364124768692340287404605701068659246463845800306602197546343138303877201912961506126034473562619335347295115765078638331846371996014410441013099602682018915598566249551011301619846662479119074912263970129881120219706294772612842516369809162454452865187887465416022697702197028888405831844208234185439348715292587993762816399", "exponent": "65537"}, "585769C78764D58426B8B52B6651A5A71137189A": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEA3WQNtrUSQyVdjYjl2LT11rYDDZ7gEDqiObSakbRKQjLtKsHqDn1E\nvv9QbujUQfsq4rwLPCor9qAOsIuNlOcVSHKPD1BZ2F4G0B0NlTWsKyR0Tk8sikcq\nwpQMtRO/w/S6zmVRpcAugEKfeolLDgIt35H1vwLUsf8FV+yot3RaD4/Mfz7Cmo+C\nSXQfF1L0dJvgYWqDRe9oJEI041ElvMet5O17lejDWPxtLH3AHOqy33c/AQhFaCsb\n12OKr9pkn0DrOGjkYBxGH1irN11xX9SmuxDePt28+GQx3+qvTG2phhdlmOHgSTYL\nvJ9Ga/ALpciaSWcLpleopkM9eHFiGqGFbEnpBfA9/6G2kaYpwCxKCOsCtPoN/+aL\nRarpFyLycXxSVuhm6kvMpQH7rDzOmwvghC5etJXBTsTFYssE7ethRlcUE7J8UGx2\nUKRrafTFWk5sSK3ZBclSfBJjxakHgh1wveYX4QWtqlJevw1TEtt4YJA1YD7wuu5P\n4Vzmj+0RYoWRAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "5024193429705780460757551232545242320114880261951080963700682814316959657730966082673633719148309504398482565139056441790777654559331349666758095794489935953884109456792907255586552973642763957160948158710801403335707970287090270643738079376425000976625664851311160936679131488923396944433338127040607459604395682264143547677695884907621027017464579696059431180520171550628587349350410773988503427903568224286173694608856824602188789677993762665117346913254665020526197504623347798593486085410548773636835094146327544623071281269346214973505551646623656602064436776693439983627088817807366469474042624512416952933772473835967176858487596484726198632408310231554355830163147450362646976766652888181089607639369583105647565519709149513240551135516626119066550847332752664395632387773837926981361919790472651155257219203497569352010299911469984772039394844661941371459953590957921960500037176230884070266875800092368049080010129", "exponent": "65537"}, "80550987E1D626E3EBA5E5E75A458DE0626D088C": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEAtKpuLgVK25sfScjsxfVU1ljofrDygt9GP7bNJl/rghX42KUT975W\nrGp/fbhF7p+FcKCzNOhJFINQbRf/5E3lN8mzoamIU43QqQ9RRVf94688UsazVsAN\nNVT0v9J0cr387WePjenRuIE1MmiP0nmw/XdvbPTayqax7VYlcUMXGHl8DnWix1EN\nRwmeig+JBte0JS12oo2HG9zcSfjLJVjY6ZmvRrVycXiRxGc/JgNlSrV4cxUNykaB\nJ6pO6J499OZfQu7m1vAPTENrVJ4yEfRGRwFIY+d/s8BkKcaiWtXAfTe31uBI6GEH\nmS3HNu1JVSuoaUiQIvVYDLMfBvMcNyAx97UT1l6E0Tn6a7pgChrquGwXai1xGzk8\n58aXwdSFoFBSTCkyemopq5H20p/nkPAO0pHL1kTvcaKz9CEj4XcKm+kOmzejYmIa\nkbWNcRpXPiUZ+xmwGtsq30xrzqiONmERkxqlmf7bVQPFvh3Kz6hGcmTBhTbHSe9h\nzDgmdaTNn3EHAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "4099987452401073631574516938827205953600139442439856584861375032463870835824537930582735942549723960612196205538715684075689207128495764497594819176928222598577862645947347981728946881582745010775833320276191593160843079260668240570434085852633533331834426773693863878436764379535791362079625534415499536755318926214899337457940624901198327266335173020429872639784754209854366717147542192720530085033398604921390100225953461482853496395805464891611772125156232555474903713520119671891051130501996006012468741200209994405731292373181890212638684907498556829275354475074398064846458218589931993144874406601607855880227588523122443892058272538145240805824203840736138755909681037917410011595930609709513941280871269324563229022683535454285253165057482604430601275095647835085803049606296491295859570187381485896341469621653727259787603681195902988790351544739376225819090181063321243252551285112984371023070219611224174854369543", "exponent": "65537"}, "27B6B5996C426270A5C95488AA5BCEB6BCC86956": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEA6uSmsoxj2MiJ3qyZq0qYXlRoG8o82SNqg+22m+t1c7MlQOZWPJYn\nXeMcBCt8xrTeIt2ZI+Q/Kt2QJSeD9WZRevTKk/kn5Tg2+xXPogalUU47y5tUohGz\n+Q8+CxtRSXpDxBHL2P8rLHvGrI69wbNHGoQkce/7gJy9vw5Ie2qzbyXk1NG6V8Fb\npr6A885vHo6TbhUnolz2Wqt/kN+UorjLkN2H3fV+iGcQFv42SyHYGDLa0WwL3PJJ\nr/veu36S3VaHBrfhutfioi+d3d4Ya0bKwiWi5Lm2CHuuRTgMpHLU9vlci8Hunuxq\nHsULe2oMsr4VEic7sW5SPC5Obpx6hStHdNv1GxoSEm3/vIuPM8pINpU5ZYAyH9yO\nEf22ZHeiVMMKmpV9TtFyiFqvlI6GpQn3mNbsQqF1y3XCA3Q4vlRAkpgJVUSvTxFP\n2bNDobOyVCpCM/rwxU1+RCNY5MFJ/+oktUY+0ydvTen3gFdZdgNqCYjKPLfBNm9m\nRGL7jZunMUNvAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "5330612346006049500670137524316288975373891498353337665154652700126741483780010110521107245316400069309154963777649013643751510188294430612448283457870577199177164478307249904219199348031586681607168083966684977715052784341807854993543314958665419239277102230662348883647775192314836089954939979413399035220510577078190962798657293651665260731051209908413988545813417897423948583407292693189878872650984371789187863512178540940936808449814354142825912572859991621468113004479195311839661896476377174088842915033313792963099525554223040776898781840360599791779558346905378934624025464433138778962177042560439177653203867964953822499448502100372891666723205908530300300425330100636643375431628406635306288802379603419272762647275039475313663492831571982934826282103214993992070450300502758397428089233965608700717176716639648669977775686746619628745374733779043244226627394455281223841408737755396965983342566230380789065925487", "exponent": "65537"}, "E2A2AF570166665D738736D0DD58169CC61D8A8B": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEAzKCVVdz+P3skRyiRjPHLYiCFzWxgAKzGkI6AQPOjqsfDrdwsPUn3\ns4BAj/BJjIhVrCxyrcfW8pQYHLMqXWtmJ0ZcP9TjqtpxLkPdLjqqWkUxAfRygX51\nLYb2Kez7XG2Wcm/dkTxlFD1DREtq5nivUExuy3FCxvd1xrEWspDJ8+nQl851Oyns\n4wMGUA/QFkmvmCW6ndgIlgGjhFBs3vswW8YvTBTnYK6fl2FiqbZfsd0m1l4MbBrO\nvQlTjvnLPBZK5kePNuMQ2O2o20PjlIKKvLZwBO68KEh79qilXyQ5mD4EyHdrvfIY\ntG+otDn5kuzCJ1hkxWBXRzr6mY7stKRK9tSK4MxCvAU7FI6aTYk470ZkKi4S4n5h\nmS9PgozhXHbkeVlCppodA3xq6oIHOd7DRgs0REKoRGYOjXEesqx3EzX/2BuKL2Pm\nhMUPDZoMqRhBey/UCbcNWhPYDsdxV0WuC9evvfzmnt6uDoA/r9HqKkRuOlbpwouw\nOlen2GGTq+bpAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "4643765097736613944633777151279579334026337284345577577836200056866666445841536801329720675282720787476310802140704955866702906541290428537920288151173927633874548918652185138025166478234693266841538143528710200907500117731684694962714919193915783589978118457418637933650443974208820169656089463401075938569051901246044867023556340694979833742866861045191832971169175711694835565653446213689554261014860432045925745609690514664359110232337809653470104212901012347977458289294644555311967458284439342515129202283139459927069250975822713174777433027713108427742085980863857302639658852424503001182875342661994747844654320015285421049474387687679157475432405921352454365074691433648355132011385295746708550438184537075032547721193342677221371041966500160018937451736550797994854465046294866653420449932522682191263083644520777107149441268838469326887433786156593317422421447621718286485183201317975051687582888451842017606756073", "exponent": "65537"}, "81349FC1F2DBA2C2C11B45CB9706637D480AB913": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBigKCAYEA0TuNVBVxd/eXb+7550cNjredjedQfnPdEpHslXWJywLkWSrVcWx5\nim9jKzdjzE7GIdh51NO7P+1TS4TdFfXjoxZfLErTsmnoNGNOyobPLPXFSHUK1f/9\nwr8OyuzMc7a33fRfpB7EisEyyVvbtMkjlnc10wv6hLpglHLMdv5hHi0sBqRLevmu\nH/caGhKR2cDq3YG5dgwO2FK/MnARIpTnyzsmcthygabyBve2bEo3CRWB3D+1dH0i\n/YzRl8JOOUGOsvJTjASHNJjJSn3M5O8VuFsacCGiJhPCxr5vgDpCJqqZ7brBNZOo\nRg6safxj10CT7eyUDEtjm2EsBClNDT+YdFe0/dKmOMn6r8W7kZMdV4unzGwV4y8/\nCWLcsrapIdtSthOsHYY9SLfg9lA5Lpcnxsc3dCHUot2LBLKJHvKLe0+TlJYvF22J\nxeWIl0qMyz+PjWITPKc3VVZKUPGQ9gycPcpAOgG9fMil2/3d7nn3TjRiEx/WwC7a\nexZ+UFy5zpJtAgMBAAE=\n-----END RSA PUBLIC KEY-----", "modulus": "4748277789396254847407352105385229829038833316775059520599937737857817413485761909334433810279625213017617143538178164311823741166643712234523489206253433988613864412929657160327277382250342674062055391172475951099611004774272624056284382028349751722674154221426091192546108055582092643227303326364335617809569445080913318078671049695950472417215779785236393431454902671680580014486937845949387053181953173293521979116786311177769477702519452563652410826760908690759462552429391642336718573686118345784583054494517306774766448083008473090018129686892831413819584284740440932265101662305675726294447151664949148912428205757718377970987648909392453659413570732997914610558911786705382273241738967916565697489432717879839813367708104627675740816390362186221706572621766288936296059767003611216560114360605620027085645232263773812273891051794500754161314414646632324282870016718847386865619284830029826008362715665340481512837741", "exponent": "65537"}} + /** + * operation started + * @type channel + */ + started: 1, + /** + * /guard get success (channel only) + * @type channel + */ + guarded: 2, + /** + * circuit created + * @type channel + */ + created: 3, + /** + * circuit negotiation + * @type channel + */ + pending: 4, + /** circuit extended (channel only) + * @type channel + */ + extpath: 5, + /** + * ready to use + * @type channel + */ + success: 6 +} +export { lnn } diff --git a/js-client/src/io.js b/js-client/src/io.js index 861fb43..da82ade 100644 --- a/js-client/src/io.js +++ b/js-client/src/io.js @@ -1,50 +1,56 @@ -lnn.io = {} -lnn.io.polling = function(endpoint, handler, success, error) -{ - var io = { - incoming: [], - outcoming: [], - pending: 0, - handler: handler, - success: success, - error: error, - cell: null, - poll: function() - { - setTimeout(function() - { - lnn.post.channel(endpoint, io.poll) - }, 100) - }, - send: function(cell) - { - io.outcoming.push(lnn.enc.base64(cell)) - }, - recv: function() - { - if (io.incoming.length < 1) - return undefined +/** + * @module io + */ - io.cell = io.incoming.shift() - return lnn.dec.base64(io.cell) - }, - start: function() - { - lnn.post.channel(endpoint, io.poll) - } +import * as post from "./post.js"; +import { enc, dec } from "./util.js"; + +export const polling = (endpoint, handler, success, error) => new Polling(endpoint, handler, success, error); + +class Polling { + constructor(endpoint, handler, success, error) { + this.incoming = []; + this.outcoming = []; + this.pending = 0; + this.handler = handler; + this.success = success; + this.error = error; + this.cell = null; + + this.endpoint = endpoint; + + endpoint.io = this; + } + + poll() { + setTimeout(function () { + post.channel(this.endpoint, this.poll); + }, 100); + } + + send(cell) { + this.outcoming.push(enc.base64(cell)); + } + + recv() { + if (this.incoming.length < 1) { return undefined; } + + this.cell = this.incoming.shift(); + return dec.base64(this.cell); + } + + start() { + post.channel(this.endpoint, this.poll); } - endpoint.io = io - return io } -lnn.io.socket = function(endpoint, handler, success, error) -{ +export function socket(endpoint, handler, success, error) { if (handler === undefined) - handler = function(endpoint) { } + handler = function (endpoint) { } if (success === undefined) - success = function(endpoint) { } + success = function (endpoint) { } if (error === undefined) - error = function(endpoint) { } + error = function (endpoint) { } var io = { event: null, @@ -56,44 +62,40 @@ lnn.io.socket = function(endpoint, handler, success, error) success: success, error: error, cell: null, - cell_recv: 0, - //cell_sent: 0, - send: function(cell) - { + cell_recv: 0, + //cell_sent: 0, + send: function (cell) { io.outcoming.push(cell) //io.cell_sent += 1 //var cell_repr = Array.from(cell.slice(0,20)).map(function(x) {return x.toString(16).padStart(2, '0')}).join('') //console.log("cell ", io.cell_sent.toString(), " sent to wbskt ", cell_repr) }, - recv: function() - { + recv: function () { if (io.incoming.length < 1) return undefined io.cell = io.incoming.shift() io.cell_recv += 1 - var cell_repr = Array.from(io.cell.slice(0,20)).map(function(x) {return x.toString(16).padStart(2, '0')}).join('') + var cell_repr = Array.from(io.cell.slice(0, 20)).map(function (x) { return x.toString(16).padStart(2, '0') }).join('') console.log("cell recv by wbskt ", cell_repr) return io.cell }, - start: function() { } + start: function () { } } var socket = new WebSocket(endpoint.urls.socket + "/" + endpoint.id) socket.binaryType = "arraybuffer" - socket.onopen = function(event) - { + socket.onopen = function (event) { io.event = event io.success(endpoint) while (io.outcoming.length > 0) io.socket.send(io.outcoming.shift()) - io.send = function(cell) - { + io.send = function (cell) { if (io.closed) throw "Unable to send, connection closed." io.socket.send(cell.buffer) @@ -103,26 +105,23 @@ lnn.io.socket = function(endpoint, handler, success, error) //console.log("cell ", io.cell_sent.toString(), " sent to wbskt ", cell_repr) } } - socket.onerror = function(event) - { + socket.onerror = function (event) { io.event = event io.error(endpoint) } - socket.onmessage = function(event) - { + socket.onmessage = function (event) { io.event = event - var data = new Uint8Array(event.data) + var data = new Uint8Array(event.data) - var cell_repr = Array.from(data.slice(0,20)).map(function(x) {return x.toString(16).padStart(2, '0')}).join('') - console.log("cell recv by wbskt ", cell_repr) + var cell_repr = Array.from(data.slice(0, 20)).map(function (x) { return x.toString(16).padStart(2, '0') }).join('') + console.log("cell recv by wbskt ", cell_repr) // io.incoming.push(data) - io.cell = data + io.cell = data io.handler(endpoint, data) } - socket.onclose = function(event) - { + socket.onclose = function (event) { io.event = event io.closed = true io.error(endpoint) diff --git a/js-client/src/lightnion-websocket/README.md b/js-client/src/lightnion-websocket/README.md new file mode 100644 index 0000000..162cdfd --- /dev/null +++ b/js-client/src/lightnion-websocket/README.md @@ -0,0 +1,81 @@ +# Lightnion WebSocket + +In this folder can be found an abstract implementation of a WebSocket client in JavaScript (`websocket-client`), + +The `WebSocketClient` abstract class could be used on top of other TCP sockets, for this, the implementing class should follow similar code as to the LightnionWebSocket (`lightnion-websocket-client/lightnion-websocket.js`). + +The `LightnionWebSocket` is a concrete implementation that uses a TCP socket that is routed through Tor thanks to Lightnion. + +This library aims to provide a WebSocket close to the usual [WebSocket client](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) available in browsers. + +## Usage + +The `LightnionWebSocket` is added to the `lnn` namespace, you can use it thanks to the bundle built for the Lightnion `js-client`. + +```html + + +``` + +## Example + +For an example of use, consult `js-client/demo/websocket.html`, which shows how to use the lightnion websocket. + +## Development + +### Package structure + +The library is split in different folders under `src/lightnion-websocket/`: + +- `websocket-client` + + Exports the (abstract) `WebSocketClient` class, which represents a general websocket client that may be used in both browser and node environment. It relies on an underlying socket, given to it when calling `_start_opening_handshake`. + +- `websocket-client-lightnion` + + Concrete implementation of a `WebSocketClient`, using lightnion redirection and lightnion constructed tcp socket. + + +### Missing features, important notes + +#### `WebSocketClient` + +- no correct bufferedAmount support (always replies 0), this would depend on the underlying socket. +- no WebSocket subprotocols support +- no WebSocket extensions support +- [WebSocket cookies](https://www.w3.org/TR/websockets/#feedback-from-the-protocol) ? +- [RFC6455 4.1](https://tools.ietf.org/html/rfc6455#page-15) requires that there should be no more than one connection in a connecting state to the same IP address. This is currently not enforced. + +### Integration Tests + +See [here](../../integration-tests/lightnion-websocket/README.md) + +### WebSocketClient socket interface + +The `WebSocketClient` class implemented requires an underlying TCP socket, currently with a specific interface: + +- a `send(data)` method to send raw data +- a `close()` method to close the socket +- a `closed` boolean property indicating if the socket is closed +- a `onmessage(data)` callback firing when offering available raw data to the upper layer + +### Node support + +Node support is not ready yet. However it should be possible to extend the `WebSocketClient` class to implement it over Node's TCP socket. + + +### Moving to Secure WebSockets + +Secure WebSockets (WSS) are WebSocket that work over a TLS connection, similarly to HTTPS. + +To enable this, look at the `lightnion-websocket-client/lightnion-helpers.js` file and rewrite commented `ltlsOpen` function. +Use this function in `LightnionWebSocket`'s constructor in place of `ltcpOpen` in `lightnion-websocket-client/lightnion-webscoket.js`. +One also need to implement it in `__do_opening_handhake` method in `websocket-client/websocket-client.js`. + +Due to errors like `cannot connect to a non-secure websocket from a secure origin`, we could not implement it. +To avoid the error, use a remote Lightnion Proxy or implement secure websockets in the Lightnion Proxy. + + diff --git a/js-client/src/lightnion-websocket/http/http.js b/js-client/src/lightnion-websocket/http/http.js new file mode 100644 index 0000000..ad247bf --- /dev/null +++ b/js-client/src/lightnion-websocket/http/http.js @@ -0,0 +1,12 @@ +// HTTP constants and functions. + +export let methods = { + OPTIONS: "OPTIONS", + GET: "GET", + HEAD: "HEAD", + POST: "POST", + PUT: "PUT", + DELETE: "DELETE", + TRACE: "TRACE", + CONNECT: "CONNECT", +}; diff --git a/js-client/src/lightnion-websocket/http/parsing.js b/js-client/src/lightnion-websocket/http/parsing.js new file mode 100644 index 0000000..1173150 --- /dev/null +++ b/js-client/src/lightnion-websocket/http/parsing.js @@ -0,0 +1,108 @@ +/** + * HTTP packet parsing utilities. + */ + +// Parsing function helpers +import * as http from "./http.js"; + +/** + * Parse the request line of a HTTP request. + * No validation is made on the request-uri and version. + * + * @param {string} line the request line + * @throws error when `line` could not be parsed + * @return {Array{ [method, request-uri, version] the parsed header line fields + * @private + */ +export function parseRequestLine(line) { + // Request-Line = Method SP Request-URI SP HTTP-Version CRLF + if (!line) { + throw `could not parse request line from ${line}`; + } + + const elements = line.trim().split(" "); + + if (elements.length < 3) { + throw `could not parse request line from ${line}: should be of the form 'Method Request-URI HTTP-Version CRLF'`; + } + + const method = elements[0]; + if (!Object.values(http.methods).includes(method)) { + throw `could not parse request line from ${line}: method is not recognized'`; + } + + const requestURI = elements[1]; + const version = elements[2]; + + return [method, requestURI, version]; +} + +/** + * Parse the status line of a HTTP response. + * No validation is made on the fields. + * + * @param {string} line the status-line + * @return {Array} [version, statusCode {int}, reason] the parsed status line fields + * @private + */ +export function parseStatusLine(line) { + // Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF + if (!line) { + throw `could not parse status line from ${line}`; + } + const elements = line.trim().split(" "); + + if (elements.length < 3) { + throw `could not parse status line from ${line}: should be of the form 'HTTP-Version Status-Code Reason CRLF'`; + } + + const version = elements[0]; + const statusCode = parseInt(elements[1]); + const reason = elements.slice(2).join(" "); + + if (isNaN(statusCode)) { + throw `could not parse status line from ${line}: status-code is not an integer`; + } + + return [version, statusCode, reason]; +} + +/** + * Parse the headers of a HTTP packet. + * No validation is performed on fields and keys. + * + * @param {string} headers HTTP headers + * @returns a dictionnary of key-values in the header, + * if multiple header key is present, values will be comma separated + * the header field names and values are set to lower-case, except for case-sensitive values + * @private + */ +export function parseHeaders(headers) { + let parsed = {}; + + if (!headers) { return parsed; } + + headers.split('\r\n') + .forEach(line => { + // split header line in key - value + let i = line.indexOf(':'); + let key = line.substr(0, i).trim().toLowerCase(); + let val; + // Header fields names should be case-insensitive (RFC2616 4.2) + // So we only use lower case versions, except for 'sec-websocket' headers. + // For some reason WebSocket servers do not understand lower case 'sec-websocket' headers. + if (key != "sec-websocket-accept" && key != "sec-websocket-key") { + val = line.substr(i + 1).trim().toLowerCase(); + } else { + val = line.substr(i + 1).trim(); + } + + if (key) { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; +} + + diff --git a/js-client/src/lightnion-websocket/http/test/parsing.test.js b/js-client/src/lightnion-websocket/http/test/parsing.test.js new file mode 100644 index 0000000..371a773 --- /dev/null +++ b/js-client/src/lightnion-websocket/http/test/parsing.test.js @@ -0,0 +1,89 @@ +// Tests for HTTP parsing functions. + +import { assert } from "chai"; +import { parseHeaders, parseStatusLine, parseRequestLine } from "../parsing.js"; + +describe("parseRequestLine", function () { + it("should throw error on incorrect request lines", function () { + let wrongStatus = [ + "MethodNotExisting / HTTP/1.1", + "NoVersion /", + ]; + + wrongStatus.forEach(s => { + assert.throws(() => parseStatusLine(s), ``, + `incorrect request line '${s}' should have raised an error while parsing`); + }); + + }); + + it("should parse correct request lines correctly", function () { + let tt = new Map([ + ["GET / HTTP/1.1", ["GET", "/", "HTTP/1.1"]], + ["POST /post.html HTTP/1.1", ["POST", "/post.html", "HTTP/1.1"]], + ["GET / HTTP/1.1", ["GET", "/", "HTTP/1.1"]], + ["PUT / HTTP/1.1", ["PUT", "/", "HTTP/1.1"]], + ["DELETE / HTTP/1.1", ["DELETE", "/", "HTTP/1.1"]], + ]); + + for (const [requestLine, expected] of tt.entries()) { + let got = parseRequestLine(requestLine); + assert.deepEqual(got, expected, "wrong parsed status line"); + } + }); +}); + +describe("parseStatusLine", function () { + it("sould throw error on incorrect status line", function () { + let wrongHeaders = [ + "HTTP/1.1 NOT-AN-INT REASOn", + "", + "HTTP/1.1", + "HTTP/1.1 404", + "404 NOT-FOUND", + ]; + + wrongHeaders.forEach(h => { + assert.throws(() => parseStatusLine(h), ``, + `incorrect status line '${h}' should have raised an error while parsing`); + }); + }); + + it("should parse correct status lines correctly", function () { + let tt = new Map([ + ["HTTP/1.1 100 MESSAGE", ["HTTP/1.1", 100, "MESSAGE"]], + ["HTTP/2 404 NOT-FOUND", ["HTTP/2", 404, "NOT-FOUND"]], + ["HTTP/1 404 NOT-FOUND something-more", ["HTTP/1", 404, "NOT-FOUND something-more"]], + ]); + + for (const [statusLine, expected] of tt.entries()) { + let got = parseStatusLine(statusLine); + assert.deepEqual(got, expected, "wrong parsed status line"); + } + }); + + + +}); + +describe("parseHeaders", function () { + it("should parse no headers", function () { + let httpHeaders = ""; + let parsed = parseHeaders(httpHeaders); + assert.isEmpty(parsed, "parsing no headers should output an empty object"); + }); + + it("should parse host", function () { + let httpHeaders = "Host: localhost:1234"; + let parsed = parseHeaders(httpHeaders); + assert.equal(parsed["host"], "localhost:1234"); + }); + + it("should parse multiple headers", function () { + let httpHeaders = `Host: localhost:1234\r\n + Content-Language: en\r\n + Content-Length: 3495`; + let parsed = parseHeaders(httpHeaders); + assert.deepEqual(parsed, { "host": "localhost:1234", "content-language": "en", "content-length": "3495" }); + }); +}); diff --git a/js-client/src/lightnion-websocket/lightnion-websocket-client/lightnion-helpers.js b/js-client/src/lightnion-websocket/lightnion-websocket-client/lightnion-helpers.js new file mode 100644 index 0000000..3661bf7 --- /dev/null +++ b/js-client/src/lightnion-websocket/lightnion-websocket-client/lightnion-helpers.js @@ -0,0 +1,138 @@ +/** + * Helpers for the lightnion js-client code. + */ + +import { lnn } from "../../lnn.js"; + +/** + * A Lightnion tunelled TCP socket. + * @private + */ +export class LTCP { + // TODO: onclose + constructor(host) { + this.connected = false; + // TODO: document + // onmessage takes a UInt8Array argument + this.onmessage = (msg) => { console.error(`LTCP received non-handled message: ${msg}`); }; + this.host = host; + } + + send() { + throw "LTPC: undefined send method"; + } +} + +/** + * Connect to a Lightnion Proxy. + * @param {string} lnnHost host of the lightnion proxy + * @param {Number} lnnPort port of the lightnion proxy + * @returns a promise that resolves on connection success, and rejects in case of a failure; + * in case of success, return the lightnion endpoint, in case of failure, an error message + * @private + */ +export function lnnOpen(lnnHost, lnnPort) { + return new Promise((resolve, reject) => { + lnn.open(lnnHost, lnnPort, function (endpoint) { + if (endpoint.state != lnn.state.success) { + console.error("lightnion proxy connection failed"); + reject(`could not connect to lightnion proxy at ${lnnHost}:${lnnPort}`); + } + console.debug("lightnion proxy connection established"); + resolve(endpoint); + }); + }); +} + +// Connect to TCP endpoint +// return a promise that resolves on connection success, and rejects in case of failure +// in case of succes, return a TCP object, in case of failure, an error message +/** + * Connect to a TCP endpoint through a Lightnion proxy. + * + * @param lnnEndpoint the lightnion proxy endpoint object, returned by {@link lnnOpen} + * @param host host of the TCP endpoint + * @param port port of the TCP endpoint + * @private + */ +export function ltcpOpen(lnnEndpoint, host, port) { + + return new Promise((resolve, reject) => { + + let ltcp = new LTCP(host); + + function handler(socket) { + + let pkt; + + switch (socket.state) { + case lnn.state.created: + ltcp.connected = true; + ltcp.send = socket.send; + resolve(ltcp); + break; + case lnn.state.pending: + pkt = socket.recv(); + if (pkt !== undefined) { + ltcp.onmessage(pkt); + } + break; + case lnn.state.success: + ltcp.connected = false; + reject(`could not connect to TCP host at ${host}:${port}`); + break; + default: + break; + } + } + lnn.stream.tcp(lnnEndpoint, host, port, handler); + }); +} + +// TLS support. +// Uses forge.tls module. +// TODO: tests. +// export function ltlsOpen(lnnEndpoint, host, port) { + +// return ltcpOpen(lnnEndpoint, host, port).then(ltcp => { +// console.debug("tcp socket connected") +// return new Promise((resolve, reject) => { +// let tlsSocket = new LTCP(host); + +// // create tls client working on tcp +// let tlsClient = forge.tls.createConnection({ +// // see: https://github.com/digitalbazaar/forge#tls +// server: false, +// verify: function (connection, verified, depth, certs) { +// // FIXME +// return true; // skip cert. verif. (testing) +// }, +// connected: function (connection) { +// // (tls handshake finished, now ready to send) +// tlsSocket.onmessage = (req) => { tlsClient.process(lnn.enc.bin(req.recv())); }; +// tlsSocket.send = tlsClient.send; +// resolve(tlsSocket); +// }, +// tlsDataReady: function (connection) { +// // TLS -> TCP +// // (decode binary data into array before processing) +// ltcp.send(lnn.dec.bin(connection.tlsData.getBytes())); +// }, +// dataReady: function (connection) { +// // TLS -> Application +// // (receive decrypted data from the tls transport) +// var data = connection.data.getBytes(); +// onReceive(data); +// }, +// closed: function (connection) { +// console.info("tls connection closed"); +// }, +// error: function (connection, err) { +// console.error(`tls connection error: ${err}`); +// } +// }); +// console.debug("initiating tls handshake"); +// tlsClient.handshake(); +// }); +// }); +// } diff --git a/js-client/src/lightnion-websocket/lightnion-websocket-client/lightnion-websocket.js b/js-client/src/lightnion-websocket/lightnion-websocket-client/lightnion-websocket.js new file mode 100644 index 0000000..2d367a9 --- /dev/null +++ b/js-client/src/lightnion-websocket/lightnion-websocket-client/lightnion-websocket.js @@ -0,0 +1,66 @@ +/** + * @module lightnion-websocket + */ + +import { WebSocketClient } from "../websocket-client/websocket-client.js"; +import { lnnOpen, ltcpOpen } from "./lightnion-helpers.js"; +// import { ltlsOpen } from "./lightnion-helpers.js"; // TODO: TLS support + +/** + * LightnionWebSocket is a WebSocket client tunnelled through Lightnion. + */ +export default class LightnionWebSocket extends WebSocketClient { + + /** + * Create a LightnionWebSocket, a WebSocket tunelled through Tor via a Lightnion proxy. + * + * @param {string} url the WebSocket server URL + * @param {array} protocols a list of subprotocols to use, currently not-supported + * @param {string} lightnionHost the lightnion proxy host + * @param {Number} lightnionPort the lightnion proxy port + */ + constructor(url, protocols = [], lightnionHost = "localhost", lightnionPort = 4990) { + let urlP = new URL(url); + + let port = urlP.port; + if (!port) { + port = urlP.protocol == "ws:" ? "80" : "443"; + } + + super(urlP, protocols); + + // user defined event handlers + this.onmessage = () => { }; + this.onopen = () => { }; + this.onclose = () => { }; + this.onerror = () => { }; + + // schedule the tcp handshake to start when the underlying socket is ready + lnnOpen(lightnionHost, lightnionPort).then(lnnEndpoint => { + // open tcp socket to host, through lightnion + return ltcpOpen(lnnEndpoint, urlP.hostname, port); + // or open a tls socket + // return ltlsOpen(lnnEndpoint, urlP.hostname, port); + }).then(ltcp => { + console.debug("[LTCP]: connected"); + + // start websocket handshake protocol + this._start_opening_handshake(ltcp); + + // install handlers + this.__onmessage = (event) => { + this.onmessage(event); + }; + this.__onopen = (event) => { + this.onopen(event); + }; + this.__onclose = (event) => { + this.onclose(event); + }; + this.__onerror = (event) => { + this.onerror(event); + }; + + }); + } +} diff --git a/js-client/src/lightnion-websocket/lightnion-websocket-client/test/lws.test.js b/js-client/src/lightnion-websocket/lightnion-websocket-client/test/lws.test.js new file mode 100644 index 0000000..0bdefa9 --- /dev/null +++ b/js-client/src/lightnion-websocket/lightnion-websocket-client/test/lws.test.js @@ -0,0 +1,10 @@ +// Tests for LWS + +import { assert } from "chai"; +import LWS from "../lightnion-websocket.js"; + +describe("LightnionWebSocket", function () { + it("can be imported", function () { + assert.ok(LWS); + }); +}); diff --git a/js-client/src/lightnion-websocket/lightnion-websocket.js b/js-client/src/lightnion-websocket/lightnion-websocket.js new file mode 100644 index 0000000..097bb7b --- /dev/null +++ b/js-client/src/lightnion-websocket/lightnion-websocket.js @@ -0,0 +1,7 @@ +/* + * Exprots for Lightnion WebSocket Client. + * To use as a library. + */ + +import LightnionWebSocket from "./lightnion-websocket-client/lightnion-websocket.js"; +export default LightnionWebSocket; \ No newline at end of file diff --git a/js-client/src/lightnion-websocket/utils/utils.js b/js-client/src/lightnion-websocket/utils/utils.js new file mode 100644 index 0000000..2870203 --- /dev/null +++ b/js-client/src/lightnion-websocket/utils/utils.js @@ -0,0 +1,106 @@ +// Utilities + +/** + * A MessageEvent implementation for Node. + * + * @private + */ +export class MessageEvent { + constructor(type, init = undefined) { + this.type = type; + if (init) { + this.data = init.data; + this.origin = init.origin; + this.lastEventId = init.lastEventId; + this.channel = init.channel; + this.source = init.source; + this.port = init.port; + } + } +} + +/** + * A CloseEvent implementation for Node. + * + * @private + */ +export class CloseEvent extends MessageEvent { + constructor(type, init = undefined) { + super(type, init); + if (init) { + this.wasClean = init.wasClean; + this.code = init.code; + this.reason = init.reason; + } + } +} + +/** + * Simple implementation of EventTarget. + * See {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget}. + * + * Used for mocking browsers' DOM EventTarget. + * + * @private + */ +export class EventTarget { + constructor() { + this.listeners = {}; + } + + addEventListener(type, callback) { + if (!(type in this.listeners)) { + this.listeners[type] = []; + } + this.listeners[type].push(callback); + } + + removeEventListener(type, callback) { + if (!(type in this.listeners)) { + return; + } + const stack = this.listeners[type]; + for (let i = 0, l = stack.length; i < l; i++) { + if (stack[i] === callback) { + stack.splice(i, 1); + return; + } + } + } + + dispatchEvent(event) { + if (!(event.type in this.listeners)) { + return true; + } + const stack = this.listeners[event.type].slice(); + + for (let i = 0, l = stack.length; i < l; i++) { + stack[i].call(this, event); + } + return !event.defaultPrevented; + + } + +} + +/** + * Check for inclusion of an array in an array. + * + * @param haystack {Array} the array of arrays + * @param needle {Array} the array that may be included in the haystack + * @private + */ +export function containsArray(haystack, needle) { + return haystack.filter(arr => { + if (arr.length !== needle.length) { + return false; + } + + for (let i = 0; i < needle.length; i++) { + if (arr[i] !== needle[i]) { + return false; + } + } + return true; + }).length > 0; +} \ No newline at end of file diff --git a/js-client/src/lightnion-websocket/websocket-client.js b/js-client/src/lightnion-websocket/websocket-client.js new file mode 100644 index 0000000..fe59db6 --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client.js @@ -0,0 +1,7 @@ +/* + * Exports for WebSocketClient. + * To use as a library. + */ + +import { WebSocketClient } from "./websocket-client/websocket-client.js"; +export default WebSocketClient; diff --git a/js-client/src/lightnion-websocket/websocket-client/defragmenter.js b/js-client/src/lightnion-websocket/websocket-client/defragmenter.js new file mode 100644 index 0000000..1ffee6f --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/defragmenter.js @@ -0,0 +1,186 @@ +import { isControlFrame, Frame, opcodes } from "./packets.js"; +import { concatenate } from "./utils.js"; + +/** + * Defragments WebSocket frames + * Used when receiving websocket frames that may have been fragmented. + * + * @private + */ +export class FrameDefragmenter { + + constructor() { + this._outputQueue = []; + this._parsed = undefined; + } + + + /** + * Add a received frame, that may be fragmented. + * + * @param {frame} Uint8Array packet received, unmasked + * @throws error when fed out of order frames + * @return {undefined} control frame if given packet is a control frame, undefined otherwise + */ + add(frame) { + let parsed = FrameDefragmenter._fields(frame); + + if (parsed === undefined) { + console.warn("received websocket frame could not be parsed"); + return undefined; + } + + if (isControlFrame(parsed['opcode'])) { + this._outputQueue.push(new Frame( + parsed["rsv1"] === 1, + parsed["rsv2"] === 1, + parsed["rsv3"] === 1, + parsed["opcode"], + parsed["payload data"], + )); + return; + } + + const fin = parsed["fin"]; + const opcode = parsed["opcode"]; + + if (this._parsed === undefined) { + if (fin && opcode !== opcodes.continuation) { + // unfragmented + this._outputQueue.push(new Frame( + parsed["rsv1"] === 1, + parsed["rsv2"] === 1, + parsed["rsv3"] === 1, + parsed["opcode"], + parsed["payload data"], + )); + this._parsed = undefined; + return; + } else if (!fin && opcode !== opcodes.continuation) { + // first fragmented frame + this._parsed = parsed; + return; + } else { + throw `Error: FrameBuilder was given an out of order frame`; + } + } else { + if (!fin && opcode === opcodes.continuation) { + // continuation frame + // append the payload to the current fragments' payload + this._parsed["payload data"] = concatenate(this._parsed["payload data"], parsed["payload data"]); + return; + } else if (fin && opcode === opcodes.continuation) { + // last fragmented frame + // append the payload to the current fragments' payload + this._parsed["payload data"] = concatenate(this._parsed["payload data"], parsed["payload data"]); + + this._outputQueue.push(new Frame( + this._parsed["rsv1"] === 1, + this._parsed["rsv2"] === 1, + this._parsed["rsv3"] === 1, + this._parsed["opcode"], + this._parsed["payload data"], + )); + this._parsed = undefined; + return; + } else { + throw `Error: FrameBuilder was given an out of order frame`; + } + } + } + + /** + * Return the next websocket frame. + * @returns {Uint8Array | undefined} an unfragmented websocket frame + * or undefined if no frame is ready. + */ + get() { + return this._outputQueue.shift(); + } + + /** + * Parse a websocket frame into key-value fields. + * Do not decode payload if masked. + * + * @private + * @param {Uint8Array} frame an encapsulated websocket frame, or undefined if error + * @returns dictionnary of fields and fields values of the encapsulated packet, or undefined if packet is invalid + * keys are a subset of ['fin', 'rsv1', 'rsv2', 'rsv3', 'opcode', 'mask', 'Payload Len', 'masking-key', 'payload data'] + * or undefined if the frame is bogus + */ + static _fields(frame) { + let parsed = {}; + let restLen = frame.byteLength; + if (restLen < 2) { + // bogus frame + return undefined; + } + + let byteIterator = frame.entries(); + + // first byte + const bits0 = (byteIterator.next().value[1]).toString(2).padStart(8, '0').split('').map(c => c === "1" ? 1 : 0); + parsed["fin"] = bits0[0]; + parsed["rsv1"] = bits0[1]; + parsed["rsv2"] = bits0[2]; + parsed["rsv3"] = bits0[3]; + parsed["opcode"] = parseInt(bits0.slice(4, 8).join(''), 2); + restLen--; + + // second byte + const bits1 = (byteIterator.next().value[1]).toString(2).padStart(8, '0').split('').map(c => c === "1" ? 1 : 0); + parsed["mask"] = bits1[0]; + parsed["payload len"] = parseInt(bits1.slice(1, 8).join(''), 2); + restLen--; + + // rest + + if (parsed["payload len"] == 126) { + // if 126, the following 2 bytes interpreted as a 16-bit unsigned integer are the payload length + if (restLen < 2) { + console.warn("error: received websocket frame with incorrect 'payload len'"); + return undefined; + } + let pLen = (byteIterator.next().value[1]).toString(2).padStart(8, '0').split(''); + pLen = pLen.concat((byteIterator.next().value[1]).toString(2).padStart(8, '0').split('')); + parsed["payload len"] = parseInt(pLen.join(""), 2); + restLen -= 2; + } else if (parsed["payload len"] == 127) { + // if 127, the following 8 bytes interpreted as a 64-bit unsigned integer (the most significant bit MUST be 0) are the payload length + if (restLen < 8) { + console.warn("error: received websocket frame with incorrect 'payload len'"); + return undefined; + } + let pLenBits = []; + for (let i = 0; i < 8; i++) { + pLenBits = pLenBits.concat((byteIterator.next().value[1]).toString(2).padStart(8, '0').split('')); + } + parsed["payload len"] = parseInt(pLenBits.join(""), 2); + restLen -= 8; + } + + if (parsed["mask"]) { + // next 4 bytes is the masking key + if (restLen < 4) { + console.warn("error: received websocket frame with masking"); + return undefined; + } + let maskingKeyBits = ""; + for (let i = 0; i < 4; i++) { + maskingKeyBits += (byteIterator.next().value[1]).toString(2).padStart(8, '0'); + } + parsed["masking-key"] = parseInt(maskingKeyBits, 2); + restLen -= 4; + } + + if (restLen <= 0) { + parsed["payload data"] = new Uint8Array(0); + } else { + // parsed["payload data"] = frame.slice(-restLen); + parsed["payload data"] = frame.slice(-parsed["payload len"]); + } + + return parsed; + } + +} diff --git a/js-client/src/lightnion-websocket/websocket-client/handlers.js b/js-client/src/lightnion-websocket/websocket-client/handlers.js new file mode 100644 index 0000000..cf68dfb --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/handlers.js @@ -0,0 +1,187 @@ +/** + * Packet handling for WebSockets. + */ + +import * as wspackets from "./packets.js"; +import { binaryTypes } from "./websocket-client.js"; +import { MessageEventClass } from "./mocks.js"; +import naclutil from "tweetnacl-util"; + +/** + * Return a handler for received websocket packets when in connecting state, for given WebSocket. + * @param {WebSocket} ws websocket handling the packets. + * @private + */ +export function onConnectingMessage() { + return (request) => { + console.warn(`received message while in connecting state: ${request}`); + }; +} + +/** + * Return a handler for recevied bwesocket packets when in closing state, for given WebSocket. + * @param {WebSocket} ws websocket handling the packets. + * @private + */ +export function onClosingMessage() { + return (request) => { + console.warn(`received message while in closing state: ${request}`); + }; +} + +/** + * Return a handler for recevied bwesocket packets when in closed state, for given WebSocket. + * @param {WebSocket} ws websocket handling the packets. + * @private + */ +export function onClosedMessage() { + return (request) => { + console.warn(`received message while in closed state: ${request}`); + }; +} + +/** + * Return a handler for received websocket packets when in open state, for given WebSocket. + * @param {WebSocket} ws websocket handling the packets. + * @param {Boolean} noMasking disable masking of frames sent, for testing purposes only + * @private + */ +export function onOpenMessage(ws, noMasking = false) { + return (pkt) => { + + // add the packet to the stream handler + ws._streamHandler.add(pkt); + + let frame; + // process all frames that are ready + while ((frame = ws._streamHandler.get()) !== undefined) { + ws._frameDefragmenter.add(frame); + } + + while ((frame = ws._frameDefragmenter.get()) !== undefined) { + if (wspackets.isControlFrame(frame.opcode)) { + handleControlFrame(ws, frame, noMasking); + } else { + handleDataFrame(ws, frame); + } + } + + }; +} + +/** + * Handle a data frame. + * + * @param {WebSocket} ws websocket handling the frame + * @param {Frame} dataFrame frame to handle + * @private + */ +function handleDataFrame(ws, dataFrame) { + if (dataFrame.payload === undefined) { + return; + } + + // wrap to event + let eventData; + try { + if (dataFrame.opcode === wspackets.opcodes.text) { + eventData = naclutil.encodeUTF8(dataFrame.payload); + } else if (dataFrame.opcode === wspackets.opcodes.binary) { + if (ws.binaryType === binaryTypes.blob) { + eventData = new Blob([dataFrame.payload]); + } else if (ws.binaryType === binaryTypes.arraybuffer) { + eventData = dataFrame.payload.buffer; + } + } else { + console.warn(`unknown opcode: ${dataFrame.opcode}, dropping frame`); + return; + } + } catch (err) { + console.warn(`error: tried to decode websocket data packet: ${err}`); + return; + } + let event = new MessageEventClass( + "message", + { + data: eventData, + origin: ws._url.href, + lastEventId: "", // TODO ? + source: null, // TODO ? + ports: [], // TODO ? + } + ); + + ws._received(event); + ws.__onmessage(event); // user defined handler +} + +/** + * Handle a control frame. + * + * @param {WebSocket} ws websocket handling the frame + * @param {Frame} controlFrame frame to handle + * @param {Boolean} noMasking disable masking of frames sent, for testing purposes only + * @private + */ +function handleControlFrame(ws, controlFrame, noMasking) { + const payload = controlFrame.payload; + switch (controlFrame.opcode) { + case wspackets.opcodes.close: { + // status and reason are parsed but not needed for now + // the whole payload is echoed back + let status = 1005; + let reason = ""; + if (payload.length >= 2) { + status = payload[0] << 8 + payload[1]; + let reasonBytes = payload.slice(2); + if (reasonBytes.length > 0) { + // read reason + reason = naclutil.encodeUTF8(reasonBytes); + } + } + + if (!ws._the_websocket_closing_handshake_is_started) { + // send back a close frame + ws._closing(); + + // if present, echo back status and reason + // otherwise use defaults + if (payload.length >= 2) { + // 2-byte unsigned integer + status = (payload[0] << 8) + payload[1]; + if (payload.length > 2) { + reason = naclutil.encodeUTF8(payload.slice(2)); + } + } + + if (noMasking) { + ws._socket.send(wspackets.closeFrame(status, reason, new Uint8Array(4))); + } else { + ws._socket.send(wspackets.closeFrame(status, reason)); + } + // end of the closing handshake + ws._close_the_websocket_connection(); + } else { + // end of the closing handshake + ws._close_the_websocket_connection(); + } + break; + } + case wspackets.opcodes.ping: { + // send back a pong frame, with received (decoded) payload if any + if (noMasking) { + ws._socket.send(wspackets.pongFrame(payload, new Uint8Array(4))); + } else { + ws._socket.send(wspackets.pongFrame(payload)); + } + break; + } + case wspackets.opcodes.pong: + break; + default: + // not implemented or invalid + break; + } + return; +} + diff --git a/js-client/src/lightnion-websocket/websocket-client/mocks.js b/js-client/src/lightnion-websocket/websocket-client/mocks.js new file mode 100644 index 0000000..2f36f9a --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/mocks.js @@ -0,0 +1,24 @@ +/* + * Mocks for use in node/broswer. + */ + +import * as utils from "../utils/utils.js"; +import { isNode } from 'browser-or-node'; + +export let EventTargetClass; +export let MessageEventClass; +export let BlobClass; +export let CloseEventClass; + +if (isNode) { + // running in node + EventTargetClass = utils.EventTarget; + MessageEventClass = utils.MessageEvent; + BlobClass = require("cross-blob"); + CloseEventClass = utils.CloseEvent; +} else { + EventTargetClass = EventTarget; + MessageEventClass = MessageEvent; + BlobClass = Blob; + CloseEventClass = CloseEvent; +} diff --git a/js-client/src/lightnion-websocket/websocket-client/packets-utils.js b/js-client/src/lightnion-websocket/websocket-client/packets-utils.js new file mode 100644 index 0000000..6a07d56 --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/packets-utils.js @@ -0,0 +1,23 @@ + +import forge from "node-forge"; +import naclutil from "tweetnacl-util"; +import { GUID } from "./packets.js"; + +/** + * Verify the Sec-WebSocket-Accept header field by computing its expected value. + * @param {Uint8Array} key 4-bytes sec-websocket-key used for client handshake + * @param {string} resp received header field value string + * @returns boolean true if the received value is the expected + * @private + */ +export function verifySecWebSocketAccept(key, resp) { + const fromHexString = hexString => + new Uint8Array(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16))); + + const keyb64 = naclutil.encodeBase64(key); + let hashed = forge.md.sha1.create(); + hashed.update(keyb64 + GUID); + const hashedBytes = fromHexString(hashed.digest().toHex()); + const expected = naclutil.encodeBase64(hashedBytes); + return resp === expected; +} \ No newline at end of file diff --git a/js-client/src/lightnion-websocket/websocket-client/packets.js b/js-client/src/lightnion-websocket/websocket-client/packets.js new file mode 100644 index 0000000..fd025ec --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/packets.js @@ -0,0 +1,259 @@ +/** + * Packet crafting for the WebSocket protocol. + * + * WebSocket frame (RFC 6455): + * + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-------+-+-------------+-------------------------------+ + * |F|R|R|R| opcode|M| Payload len | Extended payload length | + * |I|S|S|S| (4) |A| (7) | (16/64) | + * |N|V|V|V| |S| | (if payload len==126/127) | + * | |1|2|3| |K| | | + * +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - + + * | Extended payload length continued, if payload len == 127 | + * + - - - - - - - - - - - - - - - +-------------------------------+ + * | |Masking-key, if MASK set to 1 | + * +-------------------------------+-------------------------------+ + * | Masking-key (continued) | Payload Data... | + * +---------------------------------------------------------------| + * + */ + +import nacl from "tweetnacl"; +import naclutil from "tweetnacl-util"; +import { maskWithKey, concatenate } from "./utils.js"; + +/** + * Construct the HTTP packet send by the client during the WebSocket handshake. + * @returns {Array} [pkt, nonce] the HTTP client handshake packet as a string, with the Uint8Array SecWebSocketKey nonce used in it + * @private + */ +export function clientHandshake(host, port, resourceName, protocols = []) { + // TODO: + // - Sec-WebSocket-Protocol + // - Sec-WebSocket-Extensions + + // create the nonce: base64 encoded 16 random bytes + const nonce = nacl.randomBytes(16); + const nonceB64 = naclutil.encodeBase64(nonce); + + // create the http packet + let fields = [ + ["GET", `${resourceName}`, "HTTP/1.1"], + ["Host:", `${host}:${port}`], + ["Connection:", "Upgrade"], + ["Upgrade:", "websocket"], + ["Sec-WebSocket-Key:", `${nonceB64}`], + ["Origin:", `${host}`], + ["Sec-WebSocket-Version:", "13"], + ]; + + if (Array.isArray(protocols) && protocols.length > 0) { + fields.push(["Sec-WebSocket-Protocol:", protocols.join(", ")]); + } + + const pkt = fields.map(s => s.join(" ")).join("\r\n") + "\r\n\r\n"; + + return [pkt, nonce]; +} + +/** + * The GUID used for the Sec-WebSocket verification. + * @private + */ +export const GUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; + +/** + * Construct a pong frame. + * @param {Uint8Array} payload the pong payload, usually the application data of the received ping + * @param {Uint8Array} maskingKey 4-bytes key for masking the frame, for testing purposes + * @private + */ +export function pongFrame(payload, maskingKey = undefined) { + return Frame._encapsulate(payload, "1000", opcodes.pong, maskingKey); +} + +/** + * Construct a ping frame. + * @param {Uint8Array} payload the ping application data + * @param {Uint8Array} maskingKey 4-bytes key for masking the frame, for testing purposes + * @private + */ +export function pingFrame(payload, maskingKey = undefined) { + return Frame._encapsulate(payload, "1000", opcodes.ping, maskingKey); +} + +/** + * Construct a close frame + * @param {Number} code status code for closing the connection (2bytes) + * @param {reason} string reason for closing the connection + * @param {Uint8Array} maskingKey 4-bytes key for masking the frame, for testing purposes + * @private + */ +export function closeFrame(code, reason = undefined, maskingKey = undefined) { + if (code < 0 || code >= 65536) { + throw `cannot encode int ${code} to 2 bytes`; + } + let payload = new Uint8Array([ + code >> 8, + code & 255 + ]); + if (reason) { + payload = concatenate(concatenate, naclutil.decodeUTF8(reason)); + } + + return Frame._encapsulate(payload, "1000", opcodes.close, maskingKey); +} + +/** + * Construct a text frame. + * @param {string} text the text to send + * @param {Uint8Array} maskingKey 4-bytes key for masking the frame, for testing purposes + * @private + */ +export function textFrame(text, maskingKey = undefined) { + const payload = naclutil.decodeUTF8(text); + return Frame._encapsulate(payload, "1000", opcodes.text, maskingKey); +} + +export let opcodes = { + continuation: 0, + text: 1, + binary: 2, + // x3-7 reserved for further non-control frames + close: 8, + ping: 9, + pong: 10, + // xB-F reserved for further control frames +}; + +export let isControlFrame = (opcode) => (opcode & 8) === 8; + +/** + * Represent a WebSocket frame, not fragmented. + * + * See websocket framing protocol: + * {@link https://tools.ietf.org/html/rfc6455#section-5.2}. + * @private + */ +export class Frame { + + /** + * Construct a WebSocket Frame. + * + * @param {Boolean} rsv1 + * @param {Boolean} rsv2 + * @param {Boolean} rsv3 + * @param {Integer} opcode + * @param {Uint8Array} payload + */ + constructor(rsv1, rsv2, rsv3, opcode, payload) { + this.rsv1 = rsv1 ? "1" : "0"; + this.rsv2 = rsv2 ? "1" : "0"; + this.rsv3 = rsv3 ? "1" : "0"; + this.opcode = opcode; + this.payload = payload; + } + + // Return true if the frame represents a control frame + isControl() { + return isControlFrame(this.opcode); + } + + /** + * Encapsulate Frame into a WebSocket packet in byte array format. + * + * @param {Uint8Array} maskingKey 4-bytes key for masking the frame, for testing purposes + * @returns {Uint8Array} packet + */ + encapsulate(maskingKey = undefined) { + const flags = "1".concat(this.rsv1, this.rsv2, this.rsv3); + return Frame._encapsulate(this.payload, flags, this.opcode, maskingKey); + } + + /** + * Fragment frame into several websocket packets. + * To be used in place of the `encapsulate` method when fragmentation is needed. + * + * @param {int} chunkSize the maximum length of a (websocket) payload, in bytes + * @param {Uint8Array} maskingKey 4-bytes key for masking the frame, for testing purposes + * @returns {Array} an array of Uint8Array, that contains in-order websocket-encapsulated packets + */ + fragment(chunkSize, maskingKey = undefined) { + // chunk payload into smaller payloads + let payloads = []; + for (let i = 0; i < this.payload.length; i += chunkSize) { + payloads.push(this.payload.slice(i, i + chunkSize)); + } + + // create packets + let packets = []; + for (let i = 0; i < payloads.length; i++) { + // only the last fragment has the FIN flag set + const finFlag = (i !== (payloads.length - 1)) ? "0" : "1"; + const flags = finFlag.concat(this.rsv1, this.rsv2, this.rsv3); + // only the first fragment has the opcode set + const code = (i === 0) ? this.opcode : opcodes.continuation; + + packets.push(Frame._encapsulate(payloads[i], flags, code, maskingKey)); + } + + return packets; + } + + /** + * Encapsulate given data into a WebSocket packet in byte array format. + * + * @param {Uint8Array} payload the packet payload + * @param {string} flags the first 4 bits of the packet, FIN/RSV1/RSV2/RSV3 in bitstring format + * @param {int} opcode the integer opcode + * @param {Uint8Array} maskingKey 4-bytes key for masking the frame, for testing purposes + * @returns {Uint8Array} packet + */ + static _encapsulate(payload, flags = "1000", opcode = 1, maskingKey = undefined) { + const opcodeBits = opcode.toString(2).padStart(4, '0'); + + let payloadLen; + if (payload.length >= 126) { + if (payload.length < 65536) { + // use next two bytes to encode the payload length + let code = 126; + payloadLen = code.toString(2).padStart(7, '0'); + payloadLen += payload.length.toString(2).padStart(16, '0'); + + } else { + if (payload.length > 2 ^ (8 * 8)) { + throw `Error: payload too large for the websocket protocol`; + } + // use next eight bytes to encode the payload length + let code = 127; + payloadLen = code.toString(2).padStart(7, '0'); + payloadLen += payload.length.toString(2).padStart(64, '0'); + } + } else { + payloadLen = payload.length.toString(2).padStart(7, '0'); + } + + let mask = '1'; + if (maskingKey === undefined) { + // create a nonce + maskingKey = new Uint8Array(nacl.randomBytes(4)); + } + const maskedPayload = maskWithKey(payload, maskingKey); + + function bitstringToUint8Array(bitstring) { + const len = Math.ceil(bitstring.length / 8); + let out = new Uint8Array(len); + for (let i = 0; i < len; i++) { + out[i] = parseInt(bitstring.slice(8 * i, 8 * i + 8), 2); + } + return out; + } + + let headerStart = bitstringToUint8Array(flags + opcodeBits + mask + payloadLen); + + return Uint8Array.from([...headerStart, ...maskingKey, ...maskedPayload]); + } +} + diff --git a/js-client/src/lightnion-websocket/websocket-client/stream-handler.js b/js-client/src/lightnion-websocket/websocket-client/stream-handler.js new file mode 100644 index 0000000..da91b34 --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/stream-handler.js @@ -0,0 +1,165 @@ +import { maskWithKey } from "./utils.js"; + +/** + * The interface between a stream-oriented socket to a WebSocket. + * Reconstruct websocket frames from stream messages. + * + * To be used when receiving data from the TCP stream, + * feed this data into the add() method, + * and use get() method to poll for ready frames. + * + * @private + */ +export class StreamHandler { + constructor() { + // the queue containing ready websocket frames + this._outputQueue = []; + // the buffer containing remaining bytes to be consumed + // invariant: the start of the buffer corresponds to the start of a websocket frame + this._buffer = []; + } + + /** + * Add a received packet. + * After this call, zero, one or more frames may be used by calling get() multiple times. + * @param {Uint8Array} data raw data taken from the streaming socket + */ + add(data) { + this._buffer.push(...data); + + // consume buffer to add new ready frames to the output queue + let frame; + while ((frame = this._consume()) !== undefined) { + this._outputQueue.push(frame); + } + } + + /** + * Return the next websocket frame. + * @returns {Uint8Array | undefined} a raw websocket frame + * or undefined if no frame is ready. + */ + get() { + return this._outputQueue.shift(); + } + + + /** + * Try to consume buffer into a websocket frame. + * @returns {Uint8Array} the websocket frame constructed, or undefined if not successful + */ + _consume() { + // check if we have a full frame header in the buffer + const headerLen = nextHeaderLength(this._buffer); + if (headerLen === 0) { + return undefined; + } + + // we have a full frame header available + // parse it to get the payload length + const payloadLen = headerPayloadLength(this._buffer.slice(0, headerLen)); + + // check if we have the payload ready in the buffer + if (this._buffer.length < (headerLen + payloadLen)) { + return undefined; + } + + // we can extract a frame from the buffer + let rawFrame = this._buffer.splice(0, headerLen + payloadLen); + + // unmask if needed + let frame = unmaskFrame(rawFrame, headerLen); + + return new Uint8Array(frame); + } +} + +/** + * Unmask websocket frame if needed. + * + * @param {Array} frame byte array + * @param {number} headerLen the length of the header in the frame + * @returns {Array} the unmasked frame + * @private + */ +function unmaskFrame(frame, headerLen) { + const pLen = frame[1] & 127; + + let maskIndex; + if (pLen < 126) { + maskIndex = 2; + } else if (pLen === 127) { + maskIndex = 4; + } else { + maskIndex = 10; + } + let maskingKey = frame.slice(maskIndex, maskIndex + 4); + + const payload = maskWithKey(frame.slice(headerLen), maskingKey); + + frame.slice(0, headerLen).push(...payload); + + return frame; +} + +/** + * Returns the payload length from a frame header. + * @param {Array} header the input header, assumed valid and no extra bytes, only contains bytes + * @returns {number} the length of the payload associated with the header + * @private + */ +function headerPayloadLength(header) { + const pLen = header[1] & 127; // 7 last bits of 2nd byte + + if (pLen < 126) { + return pLen; + } else if (pLen === 126) { + // if 126, the following 2 bytes interpreted as a 16-bit unsigned integer are the payload length + return (header[2] << 8) + header[3]; + } else if (pLen === 127) { + // if 127, the following 8 bytes interpreted as a 64-bit unsigned integer (the most significant bit MUST be 0) are the payload length + let len = 0; + + for (let i = 0; i < 8; i++) { + len += (header[2 + i] << (8 * (7 - i))); + } + return len; + } +} + +/** + * Try to read a header from the start of the input buffer. + * @param {Array} data input buffer, contaning only bytes + * @returns {boolean} the byte length of the header contained in the start of the input buffer if any, 0 otherwise + * @private + */ +function nextHeaderLength(data) { + // a frame header is between 2 and 12 bytes long + if (data.length < 2) { return 0; } + + const mask = (data[1] & 128) === 128; // mask is true if mask is set in header + const payloadLen = data[1] & 127; // 7 last bits of 2nd byte + + // now check all the cases... + + if (!mask && payloadLen < 126) { + // header length is 2B + return 2; + } else if (!mask && payloadLen === 126) { + // header length is (2 + 2) = 4B + if (data.length < 4) { return 0; } else { return 4; } + } else if (!mask && payloadLen === 127) { + // header length is (2 + 8) = 10B + if (data.length < 10) { return 0; } else { return 10; } + } else if (mask && payloadLen < 126) { + // header length is (2 + 4) = 6B + if (data.length < 6) { return 0; } else { return 6; } + } else if (mask && payloadLen === 126) { + // header length is (2 + 2 + 4) = 8B + if (data.length < 8) { return 0; } else { return 8; } + } else if (mask && payloadLen === 127) { + // header length is (2 + 8 + 4) = 14B + if (data.length < 14) { return 0; } else { return 14; } + } +} + diff --git a/js-client/src/lightnion-websocket/websocket-client/test/handlers.test.js b/js-client/src/lightnion-websocket/websocket-client/test/handlers.test.js new file mode 100644 index 0000000..fe7d27c --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/test/handlers.test.js @@ -0,0 +1,179 @@ +// Tests for websocket packet handlers + +import { assert } from "chai"; +import { MockWebSocket } from "./mock-websocket"; +import * as wspackets from "../packets.js"; +import { FrameDefragmenter } from "../defragmenter.js"; +import { onOpenMessage } from "../handlers.js"; +import naclutil from "tweetnacl-util"; + +describe("open message handler", function () { + + let socket; + let ws; + let url; + let nullKey = new Uint8Array(4); + + this.beforeEach(function () { + url = "ws://example.com/"; + ws = new MockWebSocket(url); + socket = ws._socket; + socket.onmessage = onOpenMessage(ws, true); + }); + + it('should send back a pong when a ping is received, with the same empty payload', function () { + let defrag = new FrameDefragmenter(); + + const payload = new Uint8Array(0); + socket.receive(wspackets.pingFrame(payload)); + + defrag.add(wspackets.pongFrame(payload)); + + const expectedResponse = defrag.get(); + assert.exists(expectedResponse); + + assert.equal(socket.sentMessages.length, 1); + + defrag.add(socket.sentMessages[0]); + const actualResponse = defrag.get(); + assert.exists(actualResponse); + + assert.equal(actualResponse.opcode, expectedResponse.opcode, `websocket should have sent a pong frame upon reception of a ping frame`); + assert.deepEqual(actualResponse.payload, expectedResponse.payload, `websocket should have sent a pong frame of same payload upon reception of a ping frame`); + }); + + it('should send back a pong when a ping is received, with the same non-empty payload', function () { + let defrag = new FrameDefragmenter(); + + const payload = Uint8Array.from([1, 2, 3, 4]); + socket.receive(wspackets.pingFrame(payload, nullKey)); + + defrag.add(wspackets.pongFrame(payload, nullKey)); + + const expectedResponse = defrag.get(); + assert.exists(expectedResponse); + assert.equal(socket.sentMessages.length, 1); + defrag.add(socket.sentMessages[0]); + const actualResponse = defrag.get(); + assert.exists(actualResponse); + + assert.equal(actualResponse.opcode, expectedResponse.opcode, `websocket should have sent a pong frame upon reception of a ping frame`); + assert.deepEqual(actualResponse.payload, expectedResponse.payload, `websocket should have sent a pong frame of same payload upon reception of a ping frame`); + }); + + it('should close the connection correctly when a close frame is received with no payload, while the closing handshake has not been started ', function () { + ws._the_websocket_closing_handshake_is_started = false; + let defrag = new FrameDefragmenter(); + const status = 1000; + + socket.receive(wspackets.closeFrame(status, undefined, nullKey)); + + assert.isTrue(socket.closed, "expected websocket to close underlying socket"); + assert.equal(ws.readyState, MockWebSocket.CLOSED, "expected websocket to enter CLOSING state"); + defrag.add(wspackets.closeFrame(status, undefined, nullKey)); + const expectedResponse = defrag.get(); + + assert.equal(socket.sentMessages.length, 1); + defrag.add(socket.sentMessages[0]); + const actualResponse = defrag.get(); + + assert.exists(actualResponse); + + assert.equal(actualResponse.opcode, expectedResponse.opcode, 'websocket should have sent the same close frame upong reception of a close frame'); + assert.deepEqual(actualResponse.payload, expectedResponse.payload, 'websocket should have sent the same close frame upong reception of a close frame'); + }); + + + it('should close the connection correctly when a close frame is received with no payload, while the closing handshake has been started', function () { + ws._the_websocket_closing_handshake_is_started = true; + + const status = 1000; + + socket.receive( + wspackets.closeFrame(status) + ); + + assert.isTrue(socket.closed, "expected websocket to close underlying socket"); + assert.equal(ws.readyState, MockWebSocket.CLOSED, "expected websocket to enter CLOSING state"); + + assert.isEmpty(socket.sentMessages, + `websocket should not send packets once the closing handshake has been started `); + }); + + + it('should handle non-fragmented data frames correctly', function () { + const text = "this is a text frame's payload"; + + let received = []; + ws.onmessage = (event) => { + received.push(event.data); + }; + + socket.onmessage = onOpenMessage(ws); + + socket.receive(wspackets.textFrame(text, nullKey)); + + assert.deepInclude(received, text); + assert.equal(received.length, 1, "websocket should not have received more messages than sent"); + }); + + it('should handle fragmented data frames correctly', function () { + const text = "this is a text frame's payload"; + const payload = naclutil.decodeUTF8(text); + const chunkSize = 4; + + let received = []; + ws.onmessage = (event) => { + received.push(event.data); + }; + + socket.onmessage = onOpenMessage(ws); + + // construct and send fragments in order + let frame = new wspackets.Frame(false, false, false, wspackets.opcodes.text, payload); + frame.fragment(chunkSize, nullKey).forEach((pkt) => { + socket.receive(pkt); + }); + + // expect to have received one packet containing the whole text + assert.deepInclude(received, text); + assert.equal(received.length, 1, "websocket should not have received more messages than sent"); + }); + + it('should handle fragmented data frames correctly with control frame received inbetween fragments', function () { + const text = "this is a text frame's payload"; + const payload = naclutil.decodeUTF8(text); + const chunkSize = 4; + const chunks = Math.ceil(text.length / chunkSize); + + assert(chunks == 8); + + let received = []; + ws.onmessage = (event) => { + received.push(event.data); + }; + + socket.onmessage = onOpenMessage(ws, true); + + // construct and send fragments in order + let frame = new wspackets.Frame(false, false, false, wspackets.opcodes.text, payload); + let fragments = frame.fragment(chunkSize, nullKey); + + for (let i = 0; i < fragments.length; i++) { + if (i == 4) { + // send a ping frame in-between data frames + socket.receive(wspackets.pingFrame([], nullKey)); + } + socket.receive(fragments[i]); + } + + // expect to have received one packet containing the whole text, and one ping packet + // and expect to have sent a pong packet in response to the ping + const expectedPong = wspackets.pongFrame([], nullKey); + assert.deepInclude(received, text); + assert.equal(received.length, 1, "websocket should have received exaclty one defragmented packets"); + assert.equal(socket.sentMessages.length, 1, "websocket should have sent only one frame"); + let sent = socket.sentMessages[0]; + assert.deepEqual(sent, expectedPong, "websocket should have sent a pong frame upong reception of a ping frame, inbetween data fragments"); + }); +}); \ No newline at end of file diff --git a/js-client/src/lightnion-websocket/websocket-client/test/mock-websocket.js b/js-client/src/lightnion-websocket/websocket-client/test/mock-websocket.js new file mode 100644 index 0000000..09c2fe9 --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/test/mock-websocket.js @@ -0,0 +1,64 @@ +/** + * A mock of a client WebSocket + */ + +import { WebSocketClient } from "../websocket-client.js"; +import { StreamHandler } from "../stream-handler.js"; + +export class MockWebSocket extends WebSocketClient { + + constructor(url, protocols = []) { + super(url, protocols); + + this._socket = new MockSocket(); + + this._socket.onmessage = (event) => { + this.onmessage(event); + }; + } +} + + +/** + * A Mock of a underlying socket for a WebSocket. + */ +class MockSocket { + + constructor() { + this.closed = false; + this.sentMessages = []; + this.receivedMessages = []; + this._streamHandler = new StreamHandler(); + } + + // Required Interface Methods + + send(data) { + this.sentMessages.push(data); + + // execute attached callback if present, + // this is used to ease unit testing + if (data.callback) { + data.callback(); + } + } + + close() { + if (this.closed) { + throw Error("cannot close socket: already closed"); + } + this.closed = true; + } + + // set by the websocket + onmessage() { + } + + // for testing + // fake reception of a message + receive(data) { + this.receivedMessages.push(data); + this.onmessage(data); + } + +} \ No newline at end of file diff --git a/js-client/src/lightnion-websocket/websocket-client/test/packets-utils.test.js b/js-client/src/lightnion-websocket/websocket-client/test/packets-utils.test.js new file mode 100644 index 0000000..5c340fa --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/test/packets-utils.test.js @@ -0,0 +1,22 @@ +// Tests for websocket packets utilities + +import { assert } from "chai"; +import naclutil from "tweetnacl-util"; +import { verifySecWebSocketAccept } from "../packets-utils.js"; + +describe("verifySecWebSocketAccept", function () { + + it("should work on rfc example", function () { + const key = naclutil.decodeBase64("dGhlIHNhbXBsZSBub25jZQ=="); + const resp = "s3pPLMBiTxaQ9kYGzzhZRbK+xOo="; + assert.isTrue(verifySecWebSocketAccept(key, resp)); + }); + + it("should not work on bad inputs", function () { + const key = naclutil.decodeBase64("dGhlIHNhsXBsZSBub25jZQ=="); + const resp = "s3pPLMBiTxaQ9kYGzzhZRbK+xOo="; + assert.isFalse(verifySecWebSocketAccept(key, resp)); + }); +}); + + diff --git a/js-client/src/lightnion-websocket/websocket-client/test/packets.test.js b/js-client/src/lightnion-websocket/websocket-client/test/packets.test.js new file mode 100644 index 0000000..dcf2c7e --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/test/packets.test.js @@ -0,0 +1,231 @@ +// Tests for websocket packets + +import { assert } from "chai"; +import { parseURL } from "../utils.js"; +import { parseHeaders, parseRequestLine } from "../../http/parsing.js"; +import * as wspackets from "../packets.js"; +import { FrameDefragmenter } from "../defragmenter.js"; +import * as http from "../../http/http.js"; +import naclutil from "tweetnacl-util"; + +describe("clientHandshake", function () { + /** + * See RFC 6455 4. + */ + + it("should be a HTTP GET request of version at least 1.1", function () { + let url = new URL("ws://example.com/chat"); + let [host, port, resourceName] = parseURL(url); + let [hs] = wspackets.clientHandshake(host, port, resourceName); + let [method, , version] = parseRequestLine(hs.split("\r\n")[0]); + + // check status-code + assert.equal(method, http.methods.GET); + + // check version + let versionFloat = parseFloat(version.replace("HTTP/", "")); + if (isNaN(versionFloat)) { + throw `could not parse request line from ${hs}: version is not of the form 'HTTP/...'`; + } + + assert.isAtLeast(versionFloat, 1.1); + }); + + it("should have the request-uri match the ressource name", function () { + let url = new URL("ws://example.com/chat"); + let [host, port, resourceName] = parseURL(url); + let [hs] = wspackets.clientHandshake(host, port, resourceName); + let [, requestURI] = parseRequestLine(hs.split("\r\n")[0]); + + assert.equal(requestURI, "/chat"); + }); + + it("should contain a 'host' header", function () { + let url = new URL("ws://example.com:1234/chat"); + let [host, port, resourceName] = parseURL(url); + let [hs] = wspackets.clientHandshake(host, port, resourceName); + + let headers = hs.split("\r\n").slice(1).join("\r\n"); + let parsed = parseHeaders(headers); + + assert.equal(parsed["host"], "example.com:1234"); + }); + + it("should contain contain an 'upgrade' header field with value containing 'websocket'", function () { + let url = new URL("ws://example.com:1234/chat"); + let [host, port, resourceName] = parseURL(url); + let [hs] = wspackets.clientHandshake(host, port, resourceName); + + let headers = hs.split("\r\n").slice(1).join("\r\n"); + let parsed = parseHeaders(headers); + + assert.include(parsed["upgrade"], "websocket"); + }); + + it("shoud contain a 'connection' header field with value containing 'upgrade'", function () { + let url = new URL("ws://example.com:1234/chat"); + let [host, port, resourceName] = parseURL(url); + let [hs] = wspackets.clientHandshake(host, port, resourceName); + + let headers = hs.split("\r\n").slice(1).join("\r\n"); + let parsed = parseHeaders(headers); + + assert.include(parsed["upgrade"], "websocket"); + }); + + it("shoud contain a 'sec-websocket-key' header field", function () { + let url = new URL("ws://example.com:1234/chat"); + let [host, port, resourceName] = parseURL(url); + let [hs, nonce] = wspackets.clientHandshake(host, port, resourceName); + let nonceB64 = naclutil.encodeBase64(nonce); + + let headers = hs.split("\r\n").slice(1).join("\r\n"); + let parsed = parseHeaders(headers); + + assert.equal(parsed["sec-websocket-key"], nonceB64); + }); + + it("should contain a 'origin' header field (browser client)", function () { + let url = new URL("ws://example.com:1234/chat"); + let [host, port, resourceName] = parseURL(url); + let [hs] = wspackets.clientHandshake(host, port, resourceName); + + let headers = hs.split("\r\n").slice(1).join("\r\n"); + let parsed = parseHeaders(headers); + + assert.equal(parsed["origin"], "example.com"); + }); + + it("should contain a 'sec-websocket-version' header field with value '13'", function () { + let url = new URL("ws://example.com:1234/chat"); + let [host, port, resourceName] = parseURL(url); + let [hs] = wspackets.clientHandshake(host, port, resourceName); + + let headers = hs.split("\r\n").slice(1).join("\r\n"); + let parsed = parseHeaders(headers); + + assert.equal(parsed["sec-websocket-version"], "13"); + }); + + it("should contain a 'sec-websocket-protocol' field with comma separated values", function () { + let url = new URL("ws://example.com:1234/chat"); + let [host, port, resourceName] = parseURL(url); + let protocols = ["rfb", "sip"]; + let [hs] = wspackets.clientHandshake(host, port, resourceName, protocols); + + let headers = hs.split("\r\n").slice(1).join("\r\n"); + let parsed = parseHeaders(headers); + + assert.equal(parsed["sec-websocket-protocol"], "rfb, sip"); + }); + +}); + +describe("ws packet encapsulation", function () { + it("import", function () { + assert.ok(wspackets.Frame._encapsulate); + }); + + it("encapsulates small packets", function () { + const payloads = [ + ``, + `small`, + new Array(1 + 1).join('#'), + new Array(10 + 1).join('#'), + new Array(100 + 1).join('#'), + ]; + + payloads.forEach(payload => { + const payloadEncoded = naclutil.decodeUTF8(payload); + const pkt = wspackets.Frame._encapsulate(payloadEncoded, "1000", 1, new Uint8Array(4)); + assert.ok(pkt); + + const defrag = new FrameDefragmenter(); + defrag.add(pkt); + + const parsed = defrag.get(); + + assert.ok(parsed); + assert.deepEqual(parsed.payload, payloadEncoded); + }); + }); + + it("encapsulates medium packets", function () { + const payloads = [ + `this should be a payload of at least 126 bytes and less than 65536 bytes. + ----------------------------------------------------------------------------------------`, + new Array(200 + 1).join('#'), + new Array(500 + 1).join('#'), + new Array(1000 + 1).join('#'), + new Array(5000 + 1).join('#'), + new Array(10000 + 1).join('#'), + new Array(50000 + 1).join('#'), + ]; + + payloads.forEach(payload => { + const payloadEncoded = naclutil.decodeUTF8(payload); + const pkt = wspackets.Frame._encapsulate(payloadEncoded, "1000", 1, new Uint8Array(4)); + assert.ok(pkt); + const defrag = new FrameDefragmenter(); + defrag.add(pkt); + const parsed = defrag.get(); + assert.ok(parsed); + assert.deepEqual(parsed.payload, payloadEncoded); + }); + }); + + it("encapsulates large packets", function () { + const fragmentSize = 1000; + const payloads = [ + new Array(65536 + 1).join('#'), + new Array(65537 + 1).join('#'), + new Array(100000 + 1).join('#'), + ]; + + payloads.forEach(payload => { + // create packets + const payloadEncoded = naclutil.decodeUTF8(payload); + const frame = new wspackets.Frame(false, false, false, wspackets.opcodes.text, payloadEncoded); + const fragments = frame.fragment(1000, new Uint8Array(4)); + assert.equal(fragments.length, Math.ceil(payload.length / fragmentSize)); + + let defrag = new FrameDefragmenter(); + // parse packets + fragments.forEach(pkt => { + defrag.add(pkt); + }); + + let parsed = defrag.get(); + assert.ok(parsed); + assert.equal(parsed.opcode, frame.opcode); + assert.deepEqual(parsed.payload, frame.payload); + }); + }); + + it("should compute the masked payload correctly for a null key", function () { + const key = new Uint8Array(4); + const payload = naclutil.decodeUTF8("test string"); + const pkt = wspackets.Frame._encapsulate(payload, "1000", 1, key); + + const defrag = new FrameDefragmenter(); + defrag.add(pkt); + + const parsed = defrag.get(); + + assert.ok(parsed); + assert.deepEqual(parsed.payload, payload); + }); + +}); + +describe("isControlFrame", function () { + + it("should be correct for expected opcodes", function () { + assert.equal(wspackets.isControlFrame(wspackets.opcodes.continuation), false); + assert.equal(wspackets.isControlFrame(wspackets.opcodes.text), false); + assert.equal(wspackets.isControlFrame(wspackets.opcodes.binary), false); + assert.equal(wspackets.isControlFrame(wspackets.opcodes.close), true); + assert.equal(wspackets.isControlFrame(wspackets.opcodes.ping), true); + assert.equal(wspackets.isControlFrame(wspackets.opcodes.pong), true); + }); +}); diff --git a/js-client/src/lightnion-websocket/websocket-client/test/stream-handler.test.js b/js-client/src/lightnion-websocket/websocket-client/test/stream-handler.test.js new file mode 100644 index 0000000..40440fb --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/test/stream-handler.test.js @@ -0,0 +1,145 @@ +// Tests for stream data to websocket frames + +import { assert } from "chai"; +import { StreamHandler } from "../stream-handler.js"; +import { Frame, opcodes } from "../packets"; +import { concatenate } from "../utils.js"; + +describe("StreamHandler", function () { + + let streamHandler; + const payload1 = new Uint8Array(Array.from(Array(50).keys())); + const payload2 = new Uint8Array(Array.from(Array(20).keys())); + const payload3 = new Uint8Array(Array.from(Array(40).keys())); + const nullKey = new Uint8Array(4); + + beforeEach(function () { + streamHandler = new StreamHandler(); + }); + + it("should handle a single packet", function () { + const orig = Frame._encapsulate(payload1, "1000", opcodes.binary, nullKey); + + streamHandler.add(orig); + let frame = streamHandler.get(); + + assert.ok(frame); + assert.deepEqual(frame.payload, orig.payload); + }); + + + it("should handle a packet split into two", function () { + const orig = Frame._encapsulate(payload1, "1000", opcodes.binary, nullKey); + + let middle = Math.ceil(orig.length / 2); + + let origPart1 = orig.slice(0, middle); + let origPart2 = orig.slice(middle); + + let frame; + + frame = streamHandler.get(); + assert.notOk(frame); + + streamHandler.add(origPart1); + frame = streamHandler.get(); + assert.notOk(frame); + + streamHandler.add(origPart2); + frame = streamHandler.get(); + assert.ok(frame); + + assert.deepEqual(frame.payload, orig.payload); + }); + + it("should handle packet split into three", function () { + const orig = Frame._encapsulate(payload1, "1000", opcodes.binary, nullKey); + + let origPart1 = orig.slice(0, Math.ceil(orig.length / 3)); + let origPart2 = orig.slice(Math.ceil(orig.length / 3), Math.ceil(2 * orig.length / 3)); + let origPart3 = orig.slice(Math.ceil(2 * orig.length / 3)); + + let frame; + + frame = streamHandler.get(); + assert.notOk(frame); + + streamHandler.add(origPart1); + frame = streamHandler.get(); + assert.notOk(frame); + + streamHandler.add(origPart2); + frame = streamHandler.get(); + assert.notOk(frame); + + streamHandler.add(origPart3); + frame = streamHandler.get(); + assert.ok(frame); + + assert.deepEqual(frame.payload, orig.payload); + + }); + + it("should handle stream of split packets one by one", function () { + // here we send 3 packets, as 5 packets + // payloads are split/merged approximately like this: + // [111] | [111222] | [222] | [222222333] | [333] + const orig1 = Frame._encapsulate(payload1, "1000", opcodes.binary, nullKey); + const orig2 = Frame._encapsulate(payload2, "1000", opcodes.binary, nullKey); + const orig3 = Frame._encapsulate(payload3, "1000", opcodes.binary, nullKey); + + let split1 = orig1.slice(0, Math.ceil(orig1.length / 2)); + let split2 = concatenate( + orig1.slice(Math.ceil(orig1.length / 2)), + orig2.slice(0, Math.ceil(orig2.length / 4))); + let split3 = orig2.slice(Math.ceil(orig2.length / 4), Math.ceil(2 * orig2.length / 4)); + let split4 = concatenate( + orig2.slice(Math.ceil(2 * orig2.length / 4)), + orig3.slice(0, Math.ceil(orig3.length / 2))); + let split5 = orig3.slice(Math.ceil(orig3.length / 2)); + + let frames = []; + + streamHandler.add(split1); + assert.notOk(streamHandler.get()); + streamHandler.add(split2); + frames.push(streamHandler.get()); + streamHandler.add(split3); + assert.notOk(streamHandler.get()); + streamHandler.add(split4); + frames.push(streamHandler.get()); + streamHandler.add(split5); + frames.push(streamHandler.get()); + + assert.deepEqual(frames, [orig1, orig2, orig3]); + }); + + it("should handle stream of split packets in bulk", function () { + const orig1 = Frame._encapsulate(payload1, "1000", opcodes.binary, nullKey); + const orig2 = Frame._encapsulate(payload2, "1000", opcodes.binary, nullKey); + const orig3 = Frame._encapsulate(payload3, "1000", opcodes.binary, nullKey); + + let split1 = orig1.slice(0, Math.ceil(orig1.length / 2)); + let split2 = concatenate( + orig1.slice(Math.ceil(orig1.length / 2)), + orig2.slice(0, Math.ceil(orig2.length / 4))); + let split3 = orig2.slice(Math.ceil(orig2.length / 4), Math.ceil(2 * orig2.length / 4)); + let split4 = concatenate( + orig2.slice(Math.ceil(2 * orig2.length / 4)), + orig3.slice(0, Math.ceil(orig3.length / 2))); + let split5 = orig3.slice(Math.ceil(orig3.length / 2)); + + let splits = [split1, split2, split3, split4, split5]; + splits.forEach(s => streamHandler.add(s)); + + let frames = []; + let frame; + while ((frame = streamHandler.get()) !== undefined) { + frames.push(frame); + } + + assert.deepEqual(frames, [orig1, orig2, orig3]); + }); + + +}); \ No newline at end of file diff --git a/js-client/src/lightnion-websocket/websocket-client/test/utils.test.js b/js-client/src/lightnion-websocket/websocket-client/test/utils.test.js new file mode 100644 index 0000000..349aeb4 --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/test/utils.test.js @@ -0,0 +1,99 @@ +import { assert } from "chai"; +import { parseURL, maskWithKey } from "../utils.js"; + +describe("maskWithKey", function () { + it("should be involutory", function () { + const key = new Uint8Array([5, 3, 2, 12]); + + const payloads = [ + new Uint8Array([1, 2, 3, 4, 5, 6, 7]), + new Uint8Array([]), + new Uint8Array([0, 0, 0]), + new Uint8Array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]), + ]; + + payloads.forEach(payload => { + let decoded = maskWithKey(maskWithKey(payload, key), key); + assert.deepEqual(decoded, payload); + }); + }); +}); + +describe("parseURL", function () { + /** + * See https://www.w3.org/TR/2012/CR-websockets-20120920/#parse-a-websocket-url-s-components + */ + + // it("should fail on relative url", function () { + // // TODO + // }); + + it("should fail if scheme is not websocket", function () { + let url = new URL("http://127.0.0.1:8080/"); + let p = () => parseURL(url); + assert.throws(p); + }); + + it("should fail if url has a fragment", function () { + let url = new URL("ws://localhost:8080/that#thing"); + let p = () => parseURL(url); + assert.throws(p); + }); + + it("should set secure to false for ws: scheme", function () { + let url = new URL("ws://localhost:443/"); + let secure = parseURL(url)[3]; + assert.isFalse(secure); + }); + + it("should set secure to true for wss: scheme", function () { + let url = new URL("wss://localhost/"); + let secure = parseURL(url)[3]; + assert.isTrue(secure); + }); + + it("should set host as the url host in lowercase", function () { + let url = new URL("wss://MY.HOST.COM/path"); + let host = parseURL(url)[0]; + assert.equal("my.host.com", host); + }); + + it("should set port as the url port", function () { + let url = new URL("ws://localhost:443/"); + let port = parseURL(url)[1]; + assert.equal(port, 443); + }); + + + it("should set port implicitely according to scheme", function () { + let url = new URL("ws://localhost/"); + let port = parseURL(url)[1]; + assert.equal(port, 80); + }); + + it("should set port implicitely according to scheme", function () { + let url = new URL("wss://localhost/"); + let port = parseURL(url)[1]; + assert.equal(port, 443); + }); + + it("should set ressourceName as the path of url", function () { + let url = new URL("ws://localhost/this/is/the/path"); + let ressourceName = parseURL(url)[2]; + assert.equal(ressourceName, "/this/is/the/path"); + }); + + it("should set ressourceName to default if url path is empty", function () { + let url = new URL("ws://localhost"); + let ressourceName = parseURL(url)[2]; + assert.equal(ressourceName, "/"); + }); + + it("should have a single question mark followed by the query component in ressourceName if the url has a query component", function () { + // FIXME + let url = new URL("ws://localhost/?this=that&other=it"); + let ressourceName = parseURL(url)[2]; + assert.equal(ressourceName, "/?this=that&other=it"); + }); +}); + diff --git a/js-client/src/lightnion-websocket/websocket-client/test/websocket-client.test.js b/js-client/src/lightnion-websocket/websocket-client/test/websocket-client.test.js new file mode 100644 index 0000000..b87c3dd --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/test/websocket-client.test.js @@ -0,0 +1,181 @@ +// Tests for WebSocketClient. +// Tests ensuring that WebSocketClient implements the standardized interface. +// See: https://www.w3.org/TR/websockets/#the-websocket-interface + +import { WebSocketClient, binaryTypes } from "../websocket-client.js"; +import { assert } from "chai"; +import * as _ from "lodash"; +import { MessageEventClass } from "../mocks.js"; + +const Blob = require("cross-blob"); + +describe("WebSocket interface", function () { + + let testUrlString; + let testWS; + let testHandler; + + before(function () { + testUrlString = "ws://example.com/"; + testWS = new WebSocketClient(testUrlString); + testHandler = () => { }; + }); + + it("can be imported", function () { + assert.exists(WebSocketClient); + }); + + it("should have a readonly DOMString attribute 'url'", function () { + assert.property(testWS, "url"); + assert.equal(testWS.url, testUrlString); + assert.isTrue(_.isString(testWS.url)); + assert.throws(() => { testWS.url = undefined; }, TypeError); + }); + + it("should have defined ready state constants", function () { + assert.equal(WebSocketClient.CONNECTING, 0); + assert.equal(WebSocketClient.OPEN, 1); + assert.equal(WebSocketClient.CLOSING, 2); + assert.equal(WebSocketClient.CLOSED, 3); + }); + + it("should have a readonly unsigned short attribute 'readyState'", function () { + assert.property(testWS, "readyState"); + assert.isNumber(testWS.readyState); + assert.oneOf(testWS.readyState, [0, 1, 2, 3]); + assert.throws(() => { testWS.readyState = undefined; }, TypeError); + }); + + it("should have a readonly unsigned long attribute 'bufferedAmount'", function () { + assert.property(testWS, "bufferedAmount"); + assert.isNumber(testWS.bufferedAmount); + assert.isAtLeast(testWS.bufferedAmount, 0); + assert.throws(() => { testWS.bufferedAmount = undefined; }, TypeError); + }); + + it("should have an EventHandler attribute 'onopen'", function () { + assert.property(testWS, "onopen"); + assert.isTrue(_.isFunction(testWS.onopen)); + // should be able to set it + testWS.onopen = testHandler; + assert.equal(testWS.onopen, testHandler); + }); + + it("should have an EventHandler attribute 'onerror'", function () { + assert.property(testWS, "onerror"); + assert.isTrue(_.isFunction(testWS.onerror)); + // should be able to set it + testWS.onerror = testHandler; + assert.equal(testWS.onerror, testHandler); + }); + + it("should have an EventHandler attribute 'onclose'", function () { + assert.property(testWS, "onclose"); + assert.isTrue(_.isFunction(testWS.onclose)); + // should be able to set it + testWS.onclose = testHandler; + assert.equal(testWS.onclose, testHandler); + }); + + it("should have an EventHandler attribute 'onmessage'", function () { + assert.property(testWS, "onmessage"); + assert.isTrue(_.isFunction(testWS.onmessage)); + // should be able to set it + testWS.onmessage = testHandler; + assert.equal(testWS.onmessage, testHandler); + }); + + it("should have a readonly DOMString attribute 'extensions'", function () { + assert.property(testWS, "extensions"); + assert.isTrue(_.isString(testWS.extensions)); + assert.throws(() => { testWS.extensions = undefined; }, TypeError); + }); + + it("should have a readonly DOMString attribute 'protocol'", function () { + assert.property(testWS, "protocol"); + assert.isTrue(_.isString(testWS.protocol)); + assert.throws(() => { testWS.protocol = undefined; }, TypeError); + }); + + it("should have a 'close' method", function () { + assert.property(testWS, "close"); + assert.isTrue(_.isFunction(testWS.close)); + }); + + it("should have a DOMString attribute 'binaryType'", function () { + assert.property(testWS, "binaryType"); + assert.oneOf(testWS.binaryType, ["blob", "arraybuffer"]); + + // should be able to set it if acceptable value + testWS.binaryType = "arraybuffer"; + assert.equal(testWS.binaryType, "arraybuffer"); + testWS.binaryType = "blob"; + assert.equal(testWS.binaryType, "blob"); + assert.throws(() => { testWS.binaryType = ""; }, SyntaxError); + }); + + it("should have a 'send' method", function () { + assert.property(testWS, "send"); + assert.isTrue(_.isFunction(testWS.send)); + }); + +}); + + +describe("WebSocket events", function () { + let testUrlString; + let testWS; + + beforeEach(function () { + testUrlString = "ws://example.com/"; + testWS = new WebSocketClient(testUrlString); + }); + + it("should trigger a message event with a text data, when a message is received", function (done) { + testWS._readyState = WebSocketClient.OPEN; + const data = new Uint8Array(65, 66, 67, 68); + testWS.addEventListener("message", (event) => { + assert.deepEqual(event.data, data); + done(); + }); + // send message to the websocket + testWS._received(new MessageEventClass("message", { data: data })); + }); + + it("should trigger a message event with a blob data if binaryType was set to blob, when a message is received", function (done) { + testWS._readyState = WebSocketClient.OPEN; + testWS.binaryType = binaryTypes.blob; + const data = new Uint8Array(65, 66, 67, 68); + testWS.addEventListener("message", (event) => { + assert.isTrue(event.data instanceof Blob); + assert.deepEqual(event.data, new Blob(data)); + done(); + }); + // send message to the websocket + testWS._received(new MessageEventClass("message", { data: new Blob([data]) })); + }); + + it("should trigger a message event with an arraybuffer data if binaryType was set to arraybuffer, when a message is received", function (done) { + testWS._readyState = WebSocketClient.OPEN; + testWS.binaryType = binaryTypes.arraybuffer; + const data = new Uint8Array(65, 66, 67, 68); + testWS.addEventListener("message", (event) => { + assert.isTrue(event.data instanceof ArrayBuffer); + assert.deepEqual(event.data, data.buffer); + done(); + }); + // send message to the websocket + testWS._received(new MessageEventClass("message", { data: data.buffer })); + }); + + + it("should trigger a close event when asked to close", function (done) { + testWS._readyState = WebSocketClient.OPEN; + testWS.addEventListener("close", () => { + done(); + }); + testWS._close_the_websocket_connection(); + }); + + +}); \ No newline at end of file diff --git a/js-client/src/lightnion-websocket/websocket-client/utils.js b/js-client/src/lightnion-websocket/websocket-client/utils.js new file mode 100644 index 0000000..3afdfc9 --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/utils.js @@ -0,0 +1,93 @@ +/** + * Utility functions. + */ + + +/** + * Parse the given url. + * {@link https://www.w3.org/TR/2012/CR-websockets-20120920/#parse-a-websocket-url-s-components} + * @param {URL} url the url to parse + * @returns [host, port, ressourceName, secure] + * @throws error when url is incorrect for a websocket connection + * @private + */ +export function parseURL(url) { + // 1. if the url string is not an absolute URL, then fail this algorithm + const absoluteURLChecker = new RegExp('^(?:[a-z]+:)?//', 'i'); + if (!absoluteURLChecker.test(url.href)) { + throw `url is not absolute: ${url}`; + } + + // 2. resolve the url string, with the URL character encoding set to UTF-8. + + // 3. if url does not have a component whose value + // when converted to ASCII lowercase, is either "ws" or "wss", + // then fail this algorithm. + if (url.protocol !== "ws:" && url.protocol !== "wss:") { + throw `url scheme must be either 'ws:' or 'wss:', but is: ${url.protocol}`; + } + + // 4. f url has a component, then fail this algorithm. + if (url.hash.substr(1) !== "") { + throw `url cannot have a fragment: ${url}`; + } + + // 5. if the component of url is "ws", set secure to false; + // otherwise, the component is "wss", set secure to true. + const secure = url.protocol === "ws:" ? false : true; + + // 6. let host be the value of the component of url, + // converted to ASCII lowercase. + const host = url.hostname.toLowerCase(); + + // 7. If url has a component, then let port be that component's value; + // otherwise, there is no explicit port. + // 8. if there is no explicit port, then: if secure is false, let port be 80, + // otherwise let port be 443. + const port = url.port || (url.protocol === "ws:" ? "80" : "443"); + + // 9. let resource name be the value of the component (which might be empty) of url. + // 10. if resource name is the empty string, set it to a single character U+002F SOLIDUS (/). + let ressourceName = url.pathname || "/"; + + // 11. if url has a component, then append a single U+003F QUESTION MARK character (?) to resource name, + // followed by the value of the component. + if (url.search) { + ressourceName += url.search; + } + + // 12. return host, port, resource name, and secure. + return [host, port, ressourceName, secure]; +} + +/** + * Mask given input with given key, as specified for websocket masking + * @param {Uint8Array} x input to mask/unmask + * @param {Uint8Array} key 4-bytes key + * @private + */ +export function maskWithKey(x, key) { + let out = new Uint8Array(x.length); + for (let i = 0; i < x.length; i++) { + out[i] = x[i] ^ key[i % 4]; + } + return out; +} + +/** + * Concatenate Uint8Arrays. + * @private + */ +export function concatenate(...arrays) { + let len = 0; + for (let arr of arrays) { + len += arr.length; + } + let result = new Uint8Array(len); + let offset = 0; + for (let arr of arrays) { + result.set(arr, offset); + offset += arr.length; + } + return result; +} diff --git a/js-client/src/lightnion-websocket/websocket-client/websocket-client.js b/js-client/src/lightnion-websocket/websocket-client/websocket-client.js new file mode 100644 index 0000000..2fb3a14 --- /dev/null +++ b/js-client/src/lightnion-websocket/websocket-client/websocket-client.js @@ -0,0 +1,579 @@ +/** + * A definition of a WebSocket client. + * + * @module websocket-client + */ + +import { isNode } from 'browser-or-node'; +import { parseURL } from "./utils.js"; +import naclutil from "tweetnacl-util"; +import * as wspackets from "./packets.js"; +import * as wspacketsutils from "./packets-utils.js"; +import * as handlers from "./handlers.js"; +import * as httpParsing from "../http/parsing.js"; +import { EventTargetClass, MessageEventClass, CloseEventClass } from "./mocks.js"; +import { StreamHandler } from "./stream-handler.js"; +import { FrameDefragmenter } from "./defragmenter.js"; + +export let binaryTypes = { + blob: "blob", + arraybuffer: "arraybuffer", +}; + +/** + * An abstract WebSocket client. + * + * Uses an underlying socket to be supplied by implementing classes when calling {@linkcode WebSocketClient._start_opening_handshake}. + */ +export class WebSocketClient extends EventTargetClass { + // CONSTANTS + // static getters are used to implement static constants + static get CONNECTING() { return 0; } + static get OPEN() { return 1; } + static get CLOSING() { return 2; } + static get CLOSED() { return 3; } + + constructor(url, protocols = []) { + super(); + + if (protocols.length > 0) { + console.error(`websocket subprotocols are not yet supported: ${protocols}`); + } + + // url + this._url = new URL(url); + + // TODO: see https://www.w3.org/TR/websockets/#dom-websocket-bufferedamount + // need to use the underlying buffer measures as well, + // lightnion-js uses lnn.stream.tcp.cache.length + this._bufferedAmount = 0; + + this._extensions = ""; + this._protocol = ""; + this._readyState = WebSocketClient.CONNECTING; + this._binaryType = binaryTypes.blob; // defaults + + // 'private' event handlers + // these are the handlers called by the underlying socket + // each of them will call the user-defined handler (e.g. this.onmessage) after some processing + this.__onclose = (event) => { this.onclose(event); }; + this.__onerror = (event) => { this.onerror(event); }; + this.__onmessage = (event) => { this.onmessage(event); }; + this.__onopen = (event) => { this.onopen(event); }; + + // 'public' event handlers + this._onclose = () => { }; + this._onerror = () => { }; + this._onmessage = () => { }; + this._onopen = () => { }; + + + // true if the closing handshake has been initiated + this._the_websocket_closing_handshake_is_started = false; + + // for translation of stream to frames + this._streamHandler = new StreamHandler(); + + // for reception of fragmented message + this._frameDefragmenter = new FrameDefragmenter(); + + // check if duplicates in protocols + // TODO + // if (new Set(this.protocols).size != this.protocols.length) { + // throw SyntaxError(`duplicates in protocols: ${this.protocols}`); + // } + + + let origin = ""; + if (!isNode) { + origin = new URL(window.location.href); + } else { + origin = "http://localhost/"; + } + + // parse url + let secure; + try { + secure = parseURL(this._url)[3]; + } catch (err) { + throw SyntaxError(`could not parse url: ${err}`); + } + + if (secure && origin.protocol !== "https") { + throw Error(`SecurityError: cannot open non-secure websocket from a secure origin`); + } + + // transport level socket connection + // should be set when the handshake is requested + this._socket = undefined; + } + + // PROPERTIES + + // url: read-only DOMString + get url() { + return this._url.href; + } + + // readyState: read-only unsigned short + get readyState() { + return this._readyState; + } + + // bufferedAmount: read-only unsigned long + get bufferedAmount() { + return this._bufferedAmount; + } + + // extensions: read-only DOMString + get extensions() { + return this._extensions; + } + + // protocol: read-only DOMString + get protocol() { + return this._protocol; + } + + // binaryType: DOMString + get binaryType() { return this._binaryType; } + set binaryType(binaryType) { + switch (binaryType) { + case "blob": + this._binaryType = binaryTypes.blob; + break; + case "arraybuffer": + this._binaryType = binaryTypes.arraybuffer; + break; + default: + throw new SyntaxError(`websocket binaryType cannot be set to ${binaryType}, allowed values are 'blob' and 'arraybuffer'`); + } + } + + + // EVENT HANDLERS + + /** + * Get the onopen handler. + */ + get onopen() { + return this._onopen; + } + /** + * Set the onopen handler. + */ + set onopen(onopen) { + this._onopen = onopen; + } + + /** + * Get the onmessage handler. + */ + get onmessage() { + return this._onmessage; + } + + /** + * Set the onmessage handler. + */ + set onmessage(onmessage) { + this._onmessage = onmessage; + } + + /** + * Get the onerror handler. + */ + get onerror() { + return this._onerror; + } + /** + * Set the onerror handler. + */ + set onerror(onerror) { + this._onerror = onerror; + } + + /** + * Get the onclose handler. + */ + get onclose() { + return this._onclose; + } + /** + * Set the onclose handler. + */ + set onclose(onclose) { + this._onclose = onclose; + } + + + // INTERFACE METHODS + + /** + * Send to the websocket endpoint. + * @param {string|Blob|ArrayBuffer|ArrayBufferView} data the payload to send + */ + send(data) { + // FIXME: bufferedAmount, closing handshake started + + if (!(this._socket)) { + throw `Socket not initialized`; + } + + if (this._readyState === WebSocketClient.CONNECTING) { + throw `InvalidStateError: cannot send data while websocket is in CONNECTING state`; + } + + let frame; + if (typeof data === "string") { + // convert data to a sequence of Unicode characters + const payload = naclutil.decodeUTF8(data); + if (this._readyState === WebSocketClient.OPEN) { + frame = new wspackets.Frame(false, false, false, wspackets.opcodes.text, payload); + } + } else if (data instanceof Blob) { + frame = new wspackets.Frame(false, false, false, wspackets.opcodes.binary, data); + } else if (data instanceof ArrayBuffer) { + frame = new wspackets.Frame(false, false, false, wspackets.opcodes.binary, data); + } else { + // assume ArrayBufferView + // send data stored in the section of the buffer described by the ArrayBuffer object that the ArrayBufferView object references + frame = new wspackets.Frame(false, false, false, wspackets.opcodes.binary, data); + } + + if (frame) { + // console.debug("[WS] sending websocket message"); + // console.debug(frame); + this._socket.send(frame.encapsulate()); + } else { + // not connected or closing, ... + return; + } + } + + /** + * Close the WebSocket connection. + * @param {int} code + * @param {DOMString} reason + */ + close(code, reason) { + // check code + if (code && (code !== 1000 || (code >= 3000 && code <= 4999))) { + throw Error(`InvalidAccessError: code must be 1000 or in the range 3000-4999`); + } + + if (reason) { + const unicodeReason = naclutil.encodeUTF8(reason); + if (unicodeReason.byteLength > 123) { + throw SyntaxError(`reason is too long: ${reason}`); + } + } + + if (this._readyState === WebSocketClient.CLOSED || this._readyState === WebSocketClient.CLOSING) { + // do nothing + return; + } else if (this._readyState !== WebSocketClient.OPEN) { + // connection not yet established + // fail the websocket connection and set the readyState attribute's value to CLOSING + this._closing(); + this._fail_the_websocket_connection(); + } else if (!this._the_websocket_closing_handshake_is_started) { + // the closing handshake has not yet been started + // start the closing handshake and set the readyState attribute's value to CLOSING + this._closing(); + this._start_the_websocket_closing_handshake(code, reason); + } else { + this._closing(); + } + } + + // CLOSING THE CONNECTION + // https://tools.ietf.org/html/rfc6455#section-7 + + /** + * Close the WebSocket Connection + * @private + */ + _close_the_websocket_connection() { + // cleanly close the TLS & TCP connection + if (this._socket) { + this._socket.close(); + } + this._readyState = WebSocketClient.CLOSED; + this._closed(true); + } + + /** + * Start the WebSocket Closing Handshake + * @param {int} code status code for closing the connection + * @param {reason} string reason for closing the connection + * @private + */ + _start_the_websocket_closing_handshake(code, reason = undefined) { + if (!(this._socket)) { + throw `Socket not initialized`; + } + + this._the_websocket_closing_handshake_is_started = true; + this._socket.send(wspackets.closeFrame(code, reason)); + + // wait for the close control frame from the endpoint + // and _close_the_websocket_connection + // this is done in the onmessage callback + } + + /** + * Fail the WebSocket Connection. + * @private + */ + _fail_the_websocket_connection() { + this._close_the_websocket_connection(); + } + + // TASKS + + /** + * Task to run when "the WebSocket connection is established" + * @private + */ + _established() { + // 1. change the readyState attribute's value to OPEN + this._readyState = WebSocketClient.OPEN; + + // 2. TODO: change the extensions attribute's value to the extensions in use, if is not the null value + // this._extensions = + + // 3. TODO: change the protocol attribute's value to the subprotocol in use, if is not the null value + // this._protocol = + + // 4. TODO: act as if the user agent had received a set-cookie-string consisting of the cookies + // set during the server's opening handshake, for the URL url given to the WebSocket() constructor + // document.cookie = + + // 5. fire a simple event named open at the WebSocket object + this.dispatchEvent(new Event("open")); + } + + /** + * Task to run when "a WebSocket message has been received" + * @private + */ + _received(event) { + + // 1. If the readyState attribute's value is not OPEN (1), then abort these steps + if (this._readyState !== WebSocketClient.OPEN) { + return; + } + + // 2. let event be an event that uses the MessageEvent interface, + // with the event type message, which does not bubble, is not cancelable, + // and has no default action. + // 3. initialize event's origin attribute to the Unicode serialization of the origin of the URL + // that was passed to the WebSocket object's constructor. + // 4. - if type indicates that the data is Text, then initialize event's data attribute to data + // - if type indicates that the data is Binary, and binaryType is set to "blob", + // then initialize event's data attribute to a new Blob object that represents data as its raw data + // - if type indicates that the data is Binary, and binaryType is set to "arraybuffer", + // then initialize event's data attribute to a new read-only ArrayBuffer object whose contents are data + + // 2+3+4 already done before + + let e = new MessageEventClass("message", { + origin: this._url.href, + data: event.data, + }); + + // 5. dispatch event at the WebSocket object. + this.dispatchEvent(e); + } + + /** + * Task to run when "the WebSocket closing handshake is started" + * @private + */ + _closing() { + // change the readyState attribute to CLOSING (2) + this._readyState = WebSocketClient.CLOSING; + } + + + /** + * Task to run when "the WebSocket connection is closed" + * @private + */ + _closed(wasClean, code = 1005, reason = "") { + // 1. change the readyState attribute's value to CLOSED (3) + this._readyState = WebSocketClient.CLOSED; + + // 2. if the user agent was required to fail the WebSocket connection + // or the WebSocket connection is closed with prejudice, + // fire a simple event named error at the WebSocket object + + // TODO + + // 3. Create an event that uses the CloseEvent interface, + // with the event type close, which does not bubble, is not cancelable, has no default action, + // whose wasClean attribute is initialized to true if the connection closed cleanly and false otherwise, + // whose code attribute is initialized to the WebSocket connection close code, + // and whose reason attribute is initialized to the WebSocket connection close reason decoded as UTF-8, + // with error handling, and dispatch the event at the WebSocket object + + const event = new CloseEventClass("close", { + wasClean: wasClean, + code: code, + reason: reason, + }); + + this.dispatchEvent(event); + } + + // Handshake helper methods + + /** + * Perform the opening websocket handshake. + * Non-blocking, as needed when calling the method in the constructor. + * + * This method should be called by the constructor of the derived class, + * setting the socket specific to this derived class. + * + * @param socket underlying socket + */ + _start_opening_handshake(socket) { + // TODO: check interface + this._socket = socket; + + // parse url + let host, port, ressourceName, secure; + try { + [host, port, ressourceName, secure] = parseURL(this._url); + } catch (err) { + throw SyntaxError(`could not parse url: ${err}`); + } + + // perform handshake + this.__do_opening_handhake(host, port, ressourceName, secure).then(() => { + this._established(); + this._socket.onmessage = handlers.onOpenMessage(this); + this.__onopen(); + }).catch(() => { + this._readyState = WebSocketClient.CLOSED; + this._fail_the_websocket_connection(); + }); + } + + + /** + * Perform the WebSocket connection handshake. + * + * @returns Promise that resolves when connection was successfully established, + * or rejects otherwise with an error message. + * @private + */ + __do_opening_handhake(host, port, ressourceName, secure) { + if (secure) { + console.error("secure websocket not yet supported"); + } + + return new Promise((resolve, reject) => { + if (!(this._socket)) { + reject(`Socket not initialized`); + } + + let statusLine = ""; + let headerLines = []; + + const [clientHS, secWebSocketKey] = wspackets.clientHandshake(host, port, ressourceName); + + // change onmessage of underlying socket + this._socket.onmessage = (pkt) => { // TODO: refactor to avoid request ? + let payload = naclutil.encodeUTF8(pkt); + + // parse received packet as a HTTP websocket connection response + let lines = payload.split("\r\n"); + if (lines.length < 1) { + reject(`failed to connect to websocket: received empty http response`); + } + + if (statusLine) { + // following message (response was fragmented) + headerLines = headerLines.concat(lines); + } else { + // first message + statusLine = lines[0].split(" "); + headerLines = headerLines.concat(lines.slice(1)); + + // status code verification + if (statusLine.length < 3) { + reject(`failed to connect to websocket: invalid status line ${statusLine.join(" ")}`); + return; + } + + const statusCode = statusLine[1]; + + if (statusCode != "101") { + reject(`failed to connect to websocket: got status code ${statusCode}`); + return; + } + } + + if (headerLines[headerLines.length - 1] !== "") { + return; + } else { + // last line of headers, no body expected + // this means that this is the last packet expected + let headers = httpParsing.parseHeaders(headerLines.join("\r\n")); + + // verification of the headers + + // check for the upgrade header field + if (!("upgrade" in headers) || !(headers["upgrade"].toLowerCase().split(", ").includes("websocket"))) { + reject(`failed to connect to websoket: server handshake response invalid, does not contain 'upgrade: websocket' header line: ${headers}`); + return; + } + + // check for the connection header field + if (!("connection" in headers) || !(headers["connection"].toLowerCase().split(", ").includes("upgrade"))) { + reject(`failed to connect to websocket: server handshake response invalid, does not contain 'connection: upgrade' header line: ${headers}`); + return; + } + + // check for the sec-websocket-accept header field + if (!("sec-websocket-accept" in headers)) { + reject(`failed to connect to websocket: server handshake response invalid, does not contain 'sec-websocket-accept' header line: ${headers}`); + return; + } + + if (!wspacketsutils.verifySecWebSocketAccept(secWebSocketKey, headers["sec-websocket-accept"].trim())) { + reject(`failed to connect to websocket: 'sec-websocket-accept' could not be verified`); + return; + } + + // check for the sec-websocket-extensions header field + if ("sec-websocket-extensions" in headers) { + const serverExtensions = headers["sec-websocket-extensions"].split(", "); + // TODO: no support for extensions + if (serverExtensions.length > 1 || serverExtensions[0] !== "") { + reject(`failed to connect to websocket: extensions are not supported: ${headers["sec-websocket-extensions"]}`); + return; + } + } + + // check for the sec-websocket-protocol header field + if ("sec-websocket-protocol" in headers) { + const serverSubProtocols = headers["sec-websocket-protocol"].split(", "); + // TODO: no support for subprotocols + if (serverSubProtocols.length > 1 || serverSubProtocols[0] !== "") { + reject(`failed to connect to websocket: sub protocols are not supported: ${headers["sec-websocket-protocol"]}`); + return; + } + } + + resolve(); + } + }; + this._socket.send(naclutil.decodeUTF8(clientHS)); + }); + + } + +} diff --git a/js-client/src/lnn.js b/js-client/src/lnn.js new file mode 100644 index 0000000..43bf5c4 --- /dev/null +++ b/js-client/src/lnn.js @@ -0,0 +1,123 @@ +/** + * @module lnn + */ + +import { isNode } from 'browser-or-node'; + +if (!isNode) { + // saving WebSocket default + // when using lightnion with redirected WebSockets, + // the client must still create a WebSocket to the lightnion proxy + // hence we save the standard WebSocket as _WebSocket + window._WebSocket = WebSocket; +} + +import * as header from "./header.js"; +import * as endpoint from "./endpoint.js"; +import * as api from "./api.js"; +import * as consensusParser from "./consensusParser.js"; +import * as get from "./get.js"; +import * as io from "./io.js"; +import * as ntor from "./ntor.js"; +import * as onion from "./onion.js"; +import * as parser from "./parser.js"; +import * as path from "./path.js"; +import * as post from "./post.js"; +import * as relay from "./relay.js"; +import * as signature from "./signature"; +import * as stream from "./stream.js"; +import * as utils from "./util.js"; +import LightnionWebSocket from "./lightnion-websocket/lightnion-websocket.js"; + +// header +let lnn = header.lnn; + +// api +lnn.fast = api.fast +lnn.auth = api.auth +lnn.open = api.open +lnn.agents = api.agents +lnn.send_req = api.send_req +lnn.http_request = api.http_request + +// consensus parser +lnn.consensusParser = consensusParser.consensusParser; + +// endpoint +lnn.endpoint = endpoint.endpoint; + +// get +lnn.get = {}; +lnn.get.guard = get.guard; +lnn.get.consensus = get.consensus; +lnn.get.descriptors = get.descriptors; +lnn.get.consensus_raw = get.consensus_raw; +lnn.get.descriptors_raw = get.descriptors_raw; +lnn.get.signing_keys = get.signing_keys; + +// io +lnn.io = {}; +lnn.io.polling = io.polling; +lnn.io.socket = io.socket; + +// ntor +lnn.ntor = ntor.ntor; + +// onion +lnn.onion = {}; +lnn.onion.ctr = onion.ctr; +lnn.onion.sha = onion.sha; +lnn.onion.forward = onion.forward; +lnn.onion.backward = onion.backward; +lnn.onion.build = onion.build; +lnn.onion.peel = onion.peel; + +// parser +lnn.parser = parser.parser; + +// path +lnn.path = path.path; + +// post +lnn.post = {}; +lnn.post.create = post.create; +lnn.post.circuit_info = post.circuit_info; +lnn.post.handshake = post.handshake; +lnn.post.channel = post.channel; +lnn.post.extend = post.extend; +lnn.post.close = post.close; + +// relay +lnn.relay = relay.relay; + +// signature +lnn.signature = {}; +lnn.signature.verify = signature.verify; +lnn.signature.get_hash = signature.get_hash; +lnn.signature.verify_key = signature.verify_key; +lnn.signature.get_sig_and_keys_digests = signature.get_sig_and_keys_digests; +lnn.signature.get_signature_big_int = signature.get_signature_big_int; +lnn.signature.get_hash_from_rsa_cipher = signature.get_hash_from_rsa_cipher; + +// stream +lnn.stream = stream.stream; + +// utils +lnn.enc = {}; +lnn.enc.bits = utils.enc.bits; +lnn.enc.utf8 = utils.enc.utf8; +lnn.enc.base64 = utils.enc.base64; +lnn.enc.bin = utils.enc.bin; + +lnn.dec = {}; +lnn.dec.bits = utils.dec.bits; +lnn.dec.utf8 = utils.dec.utf8; +lnn.dec.base64 = utils.dec.base64; +lnn.dec.bin = utils.dec.bin; + +// websocket +lnn.websocket = LightnionWebSocket; + +window.lnn = lnn; + +export { lnn }; \ No newline at end of file diff --git a/js-client/src/ntor.js b/js-client/src/ntor.js index c217247..4b3fc10 100644 --- a/js-client/src/ntor.js +++ b/js-client/src/ntor.js @@ -1,80 +1,87 @@ + /** * Cryptographic operations related to ntor handshakes. + * @module ntor * @namespace - * @see lnn.ntor.hand - * @see lnn.ntor.shake + * @see ntor.hand + * @see ntor.shake */ -lnn.ntor = {} + +import { enc, dec } from "./util.js"; +import { sjcl } from "../vendor/sjcl.js"; +import nacl from "tweetnacl"; + +let ntor = {} /** * Number of bytes to derive from successful ntor handshakes. * @readonly * @default */ -lnn.ntor.keybytes = 92 +ntor.keybytes = 92 /** * Protocol identifier, prefix tweaks used in ntor handshakes various hashes. * @readonly * @default * - * @see lnn.ntor.tweaks + * @see ntor.tweaks */ -lnn.ntor.protoid = "ntor-curve25519-sha256-1" +ntor.protoid = "ntor-curve25519-sha256-1" /** * Tweaks used in ntor handshakes for various hashes and key derivation. * @enum * @readonly * - * @see lnn.ntor.hash + * @see ntor.hash */ -lnn.ntor.tweaks = { +ntor.tweaks = { /** * rfc5869 Expand {info} * @type kdf */ - expand: lnn.ntor.protoid + ":key_expand", + expand: ntor.protoid + ":key_expand", /** * rfc5869 Extract {salt} * @type kdf */ - key: lnn.ntor.protoid + ":key_extract", + key: ntor.protoid + ":key_extract", /** * H({secret_input}, t_verify) * @type ntor */ - verify: lnn.ntor.protoid + ":verify", + verify: ntor.protoid + ":verify", /** * suffix of {auth_input} * @type ntor */ - server: lnn.ntor.protoid + "Server", + server: ntor.protoid + "Server", /** * H({auth_input}, t_mac) * @type ntor */ - mac: lnn.ntor.protoid + ":mac"} + mac: ntor.protoid + ":mac" +} /** - * Tweaked pseudo-random function factory, see {@link lnn.ntor.hash}. + * Tweaked pseudo-random function factory, see {@link ntor.hash}. * - * @param {lnn.ntor.tweaks} tweak tweak to use + * @param {ntor.tweaks} tweak tweak to use * @return {hash_t} * - * @see lnn.ntor.hash + * @see ntor.hash */ -lnn.ntor.hash_factory = function(tweak) -{ - tweak = lnn.ntor.tweaks[tweak] +ntor.hash_factory = function (tweak) { + tweak = ntor.tweaks[tweak] tweak = sjcl.codec.utf8String.toBits(tweak) /** - * Tweaked pseudo-random function used by {@link lnn.ntor}, returned - * by {@link lnn.ntor.hash_factory}. + * Tweaked pseudo-random function used by {@link ntor}, returned + * by {@link ntor.hash_factory}. * * @interface hash_t - * @see lnn.ntor.hash + * @see ntor.hash * * @property {Object} hmac underlying hmac provider */ @@ -87,12 +94,12 @@ lnn.ntor.hash_factory = function(tweak) * @name hash_t#encrypt * @param {Uint8Array} data input data */ - encrypt: function(data) - { - data = lnn.enc.bits(data) + encrypt: function (data) { + data = enc.bits(data) data = hash.hmac.encrypt(data) - return lnn.dec.bits(data) - }} + return dec.bits(data) + } + } return hash } @@ -101,22 +108,22 @@ lnn.ntor.hash_factory = function(tweak) * @enum * @type hash_t * - * @see lnn.ntor.tweaks + * @see ntor.tweaks */ -lnn.ntor.hash = { - /** - * used for H({secret_input}, t_verify) during ntor handshakes - */ - verify: lnn.ntor.hash_factory("verify"), - /** - * used for H({auth_input}, t_mac) during ntor handshakes - */ - mac: lnn.ntor.hash_factory("mac"), - /** - * used for extraction during ntor handshakes key derivation - */ - prk: lnn.ntor.hash_factory("key") - } +ntor.hash = { + /** + * used for H({secret_input}, t_verify) during ntor handshakes + */ + verify: ntor.hash_factory("verify"), + /** + * used for H({auth_input}, t_mac) during ntor handshakes + */ + mac: ntor.hash_factory("mac"), + /** + * used for extraction during ntor handshakes key derivation + */ + prk: ntor.hash_factory("key") +} /** * Compute ntor key derivation from given material to n bytes. @@ -125,20 +132,18 @@ lnn.ntor.hash = { * @param {int} n number of bytes to output * @return {Uint8Array} */ -lnn.ntor.kdf = function(material, n) -{ - material = lnn.ntor.hash.prk.encrypt(material) - var hash = new sjcl.misc.hmac(lnn.enc.bits(material)) +ntor.kdf = function (material, n) { + material = ntor.hash.prk.encrypt(material) + var hash = new sjcl.misc.hmac(enc.bits(material)) - var tweak = lnn.ntor.tweaks["expand"] + var tweak = ntor.tweaks["expand"] tweak = sjcl.codec.utf8String.toBits(tweak) var idx = 1 - var out = lnn.enc.bits([]) - var last = lnn.enc.bits([]) - while (sjcl.bitArray.bitLength(out) < n * 8) - { - var idxbits = lnn.enc.bits([idx]) + var out = enc.bits([]) + var last = enc.bits([]) + while (sjcl.bitArray.bitLength(out) < n * 8) { + var idxbits = enc.bits([idx]) var current = sjcl.bitArray.concat(tweak, idxbits) last = hash.encrypt(sjcl.bitArray.concat(last, current)) @@ -146,7 +151,7 @@ lnn.ntor.kdf = function(material, n) idx = idx + 1 } - return lnn.dec.bits(sjcl.bitArray.clamp(out, n * 8)) + return dec.bits(sjcl.bitArray.clamp(out, n * 8)) } @@ -159,24 +164,23 @@ lnn.ntor.kdf = function(material, n) * @param {Boolean} encode if true, returns base64 (default: true) * @return {Uint8Array|string} * - * @see lnn.ntor.shake + * @see ntor.shake */ -lnn.ntor.hand = function(endpoint, descriptor, encode) -{ +ntor.hand = function (endpoint, descriptor, encode) { if (encode === undefined) encode = true if (descriptor === undefined) descriptor = endpoint.guard - var identity = lnn.dec.base64(descriptor.router.identity + "=") - var onionkey = lnn.dec.base64(descriptor["ntor-onion-key"]) + var identity = dec.base64(descriptor.router.identity + "=") + var onionkey = dec.base64(descriptor["ntor-onion-key"]) /** * Internal object, half-finished ntor handshake state in {@link * endpoint_t#material}, created by: *
        - *
      • {@link lnn.ntor.hand} - *
      • {@link lnn.ntor.fast} + *
      • {@link ntor.hand} + *
      • {@link ntor.fast} *
      • {@link lnn.auth} *
      * Captures cryptographic state required to finish the handshake. @@ -188,10 +192,10 @@ lnn.ntor.hand = function(endpoint, descriptor, encode) * @property {Uint8Array} onionkey node public key */ endpoint.material = { - ntor: nacl.box.keyPair(), - identity: identity, - onionkey: onionkey - } + ntor: nacl.box.keyPair(), + identity: identity, + onionkey: onionkey + } var pubkey = endpoint.material.ntor.publicKey var length = identity.length + onionkey.length + pubkey.length @@ -199,15 +203,15 @@ lnn.ntor.hand = function(endpoint, descriptor, encode) var payload = new Uint8Array(length) payload.set(identity, 0) payload.set(onionkey, identity.length) - payload.set(pubkey, identity.length+onionkey.length) + payload.set(pubkey, identity.length + onionkey.length) if (encode) - return lnn.enc.base64(payload) + return enc.base64(payload) return payload } /** - * Just as {@link lnn.ntor.hand} but without node identity and onion key – used + * Just as {@link ntor.hand} but without node identity and onion key – used * by {@link lnn.fast}, writes a {@link half_t} in {@link endpoint_t#material}. * *
      Note: always returns base64-encoded handshake.
      @@ -217,19 +221,18 @@ lnn.ntor.hand = function(endpoint, descriptor, encode) * * @see lnn.fast */ -lnn.ntor.fast = function(endpoint) -{ +ntor.fast = function (endpoint) { endpoint.material = {} endpoint.material.ntor = nacl.box.keyPair() endpoint.material.identity = null endpoint.material.onionkey = null - return lnn.enc.base64(endpoint.material.ntor.publicKey) + return enc.base64(endpoint.material.ntor.publicKey) } /** * Compute the second part of a ntor handshake read * from {@link endpoint_t#material}, returns derived bytes suitable as - * {@link lnn.ntor.slice} input. + * {@link ntor.slice} input. * *
      Note: returns null if handshake is invalid.
      * @@ -239,14 +242,13 @@ lnn.ntor.fast = function(endpoint) * (default: true) * @return {Uint8Array|null} * - * @see lnn.ntor.hand + * @see ntor.hand */ -lnn.ntor.shake = function(endpoint, data, encoded) -{ +ntor.shake = function (endpoint, data, encoded) { if (encoded === undefined) encoded = true if (encoded) - data = lnn.dec.base64(data) + data = dec.base64(data) var client_pubkey = endpoint.material.ntor.publicKey var client_secret = endpoint.material.ntor.secretKey @@ -259,7 +261,7 @@ lnn.ntor.shake = function(endpoint, data, encoded) var exp_share = nacl.scalarMult(client_secret, server_pubkey) var exp_onion = nacl.scalarMult(client_secret, onionkey) - var protoid = lnn.dec.utf8(lnn.ntor.protoid) + var protoid = dec.utf8(ntor.protoid) var length = exp_share.length * 2 + identity.length + onionkey.length * 3 var off = 0 @@ -271,9 +273,9 @@ lnn.ntor.shake = function(endpoint, data, encoded) secret_input.set(client_pubkey, off); off += client_pubkey.length secret_input.set(server_pubkey, off); off += server_pubkey.length secret_input.set(protoid, off) - var verify = lnn.ntor.hash.verify.encrypt(secret_input) + var verify = ntor.hash.verify.encrypt(secret_input) - var server = lnn.dec.utf8(lnn.ntor.tweaks["server"]) + var server = dec.utf8(ntor.tweaks["server"]) var length = verify.length + identity.length + onionkey.length * 3 var off = 0 @@ -284,12 +286,11 @@ lnn.ntor.shake = function(endpoint, data, encoded) auth_input.set(server_pubkey, off); off += server_pubkey.length auth_input.set(client_pubkey, off); off += client_pubkey.length auth_input.set(server, off) - var client_auth = lnn.ntor.hash.mac.encrypt(auth_input) + var client_auth = ntor.hash.mac.encrypt(auth_input) var valid = true length = client_auth.length - for (var i = 0; i < length; i++) - { + for (var i = 0; i < length; i++) { if (client_auth[i] != server_auth[i]) valid = false } @@ -297,8 +298,7 @@ lnn.ntor.shake = function(endpoint, data, encoded) var zero_onion = 0 var zero_share = 0 length = exp_onion.length - for (var i = 0; i < length; i++) - { + for (var i = 0; i < length; i++) { if (exp_onion[i] == 0) zero_onion = zero_onion + 1 if (exp_share[i] == 0) @@ -308,36 +308,34 @@ lnn.ntor.shake = function(endpoint, data, encoded) if (zero_onion == exp_onion.length || zero_share == exp_share.length) valid = false - if (valid) - { - return lnn.ntor.kdf(secret_input, lnn.ntor.keybytes) + if (valid) { + return ntor.kdf(secret_input, ntor.keybytes) } return null } /** * Build a shared cryptographic {@link material_t} for - * {@link endpoint_t#material} from the output of {@link lnn.ntor.shake}. + * {@link endpoint_t#material} from the output of {@link ntor.shake}. * *
        * Note: assume KEY_LEN == 16 (aes256) and HASH_LEN == 20 (sha1) internally.
        * 
      * - * @param {Uint8Array} material exactly {@link lnn.ntor.keybytes} + * @param {Uint8Array} material exactly {@link ntor.keybytes} * bytes * @return {material_t} */ -lnn.ntor.slice = function(material) -{ +ntor.slice = function (material) { var k = 16 // KEY_LEN var h = 20 // HASH_LEN /** * Internal object, stores shared cryptographic material - * as {@link endpoint_t#material}, returned by {@link lnn.ntor.slice}. + * as {@link endpoint_t#material}, returned by {@link ntor.slice}. * * @interface material_t - * @see lnn.ntor.slice + * @see ntor.slice * * @property {Uint8Array} key_hash unused * @property {Uint8Array} forward_key used in {@link forward_t} @@ -369,19 +367,21 @@ lnn.ntor.slice = function(material) * if and only if the authentication succeeded. * */ -lnn.ntor.auth = function(endpoint, client, data) -{ +ntor.auth = function (endpoint, client, data) { var pending_material = endpoint.material endpoint.material = endpoint.auth - var data = lnn.dec.base64(data) - var material = lnn.ntor.shake(endpoint, client) + var data = dec.base64(data) + var material = ntor.shake(endpoint, client) if (material == null) throw "Invalid auth." endpoint.material = pending_material var key = material.slice(0, 32) - var nonce = material.slice(32, 32+24) + var nonce = material.slice(32, 32 + 24) data = nacl.secretbox.open(data, nonce, key) - return JSON.parse(lnn.enc.utf8(data)) + return JSON.parse(enc.utf8(data)) } + + +export { ntor } \ No newline at end of file diff --git a/js-client/src/onion.js b/js-client/src/onion.js index 24fcb38..d82a8c2 100644 --- a/js-client/src/onion.js +++ b/js-client/src/onion.js @@ -1,40 +1,42 @@ -lnn.onion = {} -lnn.onion.ctr = function(key) -{ - var key = lnn.enc.bits(key) +/** + * @module onion + */ + +import { enc, dec } from "./util.js"; +import { relay } from "./relay.js"; +import { sjcl } from "../vendor/sjcl.js"; + +export function ctr(key) { + var key = enc.bits(key) var aes = new sjcl.cipher.aes(key) var ctr = { prf: aes, nonce: 0, buffer: new Uint8Array(0), - extend: function(n) - { + extend: function (n) { var length = (Math.floor(n / 16) + 1) * 16 var remains = ctr.buffer - ctr.buffer = new Uint8Array(length+remains.length) + ctr.buffer = new Uint8Array(length + remains.length) ctr.buffer.set(remains, 0) - for (var idx = remains.length; idx < ctr.buffer.length; idx += 16) - { + for (var idx = remains.length; idx < ctr.buffer.length; idx += 16) { var nonce = new Uint8Array(16) new DataView(nonce.buffer).setUint32(12, ctr.nonce, false) - nonce = lnn.enc.bits(nonce) - var pad = lnn.dec.bits(ctr.prf.encrypt(nonce)) + nonce = enc.bits(nonce) + var pad = dec.bits(ctr.prf.encrypt(nonce)) ctr.buffer.set(pad, idx) ctr.nonce = ctr.nonce + 1 } }, - process: function(data) - { + process: function (data) { if (data.length > ctr.buffer.length) ctr.extend(data.length) var data = data.slice(0) - for (var idx = 0; idx < data.length; idx++) - { + for (var idx = 0; idx < data.length; idx++) { data[idx] ^= ctr.buffer[idx] } ctr.buffer = ctr.buffer.slice(data.length) @@ -45,17 +47,15 @@ lnn.onion.ctr = function(key) return ctr } -lnn.onion.sha = function(digest) -{ - var digest = lnn.enc.bits(digest) +export function sha(digest) { + var digest = enc.bits(digest) var sha = { hash: new sjcl.hash.sha1(), - digest: function(data) - { - sha.hash.update(lnn.enc.bits(data)) + digest: function (data) { + sha.hash.update(enc.bits(data)) data = new sjcl.hash.sha1(sha.hash).finalize() - return lnn.dec.bits(data) + return dec.bits(data) } } @@ -63,12 +63,10 @@ lnn.onion.sha = function(digest) return sha } -lnn.onion.forward = function(endpoint) -{ +export function forward(endpoint) { var early = 8 var layers = [] - if (endpoint.forward != null) - { + if (endpoint.forward != null) { layers = endpoint.forward.layers layers.push(endpoint.forward) early = endpoint.forward.early @@ -76,32 +74,28 @@ lnn.onion.forward = function(endpoint) var forward = { iv: 0, - ctr: lnn.onion.ctr(endpoint.material.forward_key), - sha: lnn.onion.sha(endpoint.material.forward_digest), + ctr: ctr(endpoint.material.forward_key), + sha: sha(endpoint.material.forward_digest), early: early, // (first 8 relay cells will be replaced by relay_early) layers: layers, - encrypt: function(cell) - { - if ((cell.length) != lnn.relay.full_len) + encrypt: function (cell) { + if ((cell.length) != relay.full_len) throw "Invalid size for cell, fatal." var body = cell.slice(5) - for (var idx = 0; idx < forward.layers.length; idx++) - { + for (var idx = 0; idx < forward.layers.length; idx++) { body.set(forward.layers[idx].ctr.process(body), 0) } cell.set(forward.ctr.process(body), 5) - if (forward.early > 0 && cell[4] == 3 /* relay */) - { + if (forward.early > 0 && cell[4] == 3 /* relay */) { forward.early = forward.early - 1 cell[4] = 9 /* relay_early */ } return cell }, - digest: function(cell) - { - if ((cell.length) != lnn.relay.full_len) + digest: function (cell) { + if ((cell.length) != relay.full_len) throw "Invalid size for cell, fatal." var body = cell.slice(5) @@ -112,62 +106,55 @@ lnn.onion.forward = function(endpoint) return forward } -lnn.onion.backward = function(endpoint) -{ +export function backward(endpoint) { var layers = [] - if (endpoint.backward != null) - { + if (endpoint.backward != null) { layers = endpoint.backward.layers layers.push(endpoint.backward) } var backward = { iv: 0, - ctr: lnn.onion.ctr(endpoint.material.backward_key), - sha: lnn.onion.sha(endpoint.material.backward_digest), + ctr: ctr(endpoint.material.backward_key), + sha: sha(endpoint.material.backward_digest), layers: layers, - decrypt: function(cell) - { - if ((cell.length) != lnn.relay.full_len) + decrypt: function (cell) { + if ((cell.length) != relay.full_len) throw "Invalid size for cell, fatal." var body = cell.slice(5) - - for (var idx = 0; idx < backward.layers.length; idx++) - { + + for (var idx = 0; idx < backward.layers.length; idx++) { body.set(backward.layers[idx].ctr.process(body), 0) - + cell.set(body, 5) - + var recognized = cell.slice(6, 8) - if (recognized[0] == recognized[1] && recognized[0] == 0) - { + if (recognized[0] == recognized[1] && recognized[0] == 0) { var digest = cell.slice(10, 14) var expect = backward.layers[idx].digest(cell) var length = new DataView(cell.slice(14, 16).buffer).getUint16(0, false) - if(expect[0] == digest[0] && + if (expect[0] == digest[0] && expect[1] == digest[1] && expect[2] == digest[2] && - expect[3] == digest[3] ) { - if (length <= lnn.relay.data_len) - { + expect[3] == digest[3]) { + if (length <= relay.data_len) { console.log("Warning: Cell sent by intermediate \ - tor node, after " + (idx+1) + " hop(s)") + tor node, after " + (idx + 1) + " hop(s)") return cell - } + } } } } - + cell.set(backward.ctr.process(body), 5) var digest = cell.slice(10, 14) cell.set(new Uint8Array(4), 10) var recognized = cell.slice(6, 8) - if (!(recognized[0] == recognized[1] && recognized[0] == 0)) - { + if (!(recognized[0] == recognized[1] && recognized[0] == 0)) { throw "Invalid cell recognized field." } @@ -176,24 +163,21 @@ lnn.onion.backward = function(endpoint) && digest[0] == expect[0] && digest[1] == expect[1] && digest[2] == expect[2] - && digest[3] == expect[3])) - { + && digest[3] == expect[3])) { throw "Invalid cell digest." } - + var length = new DataView(cell.slice(14, 16).buffer).getUint16(0, false) - if (length > lnn.relay.data_len) - { + if (length > relay.data_len) { throw "Invalid cell data length." } return cell - + }, - digest: function(cell) - { - if ((cell.length) != lnn.relay.full_len) + digest: function (cell) { + if ((cell.length) != relay.full_len) throw "Invalid size for cell, fatal." var body = cell.slice(5) @@ -204,25 +188,23 @@ lnn.onion.backward = function(endpoint) return backward } -lnn.onion.build = function(endpoint, cmd, stream_id, data) -{ - var cell = lnn.relay.pack(cmd, stream_id, data) +export function build(endpoint, cmd, stream_id, data) { + var cell = relay.pack(cmd, stream_id, data) cell.set(endpoint.forward.digest(cell), 10) return endpoint.forward.encrypt(cell) } -lnn.onion.peel = function(endpoint, cell) -{ +export function peel(endpoint, cell) { var cell = endpoint.backward.decrypt(cell) - - + + var length = new DataView(cell.slice(14, 16).buffer).getUint16(0, false) var id = new DataView(cell.slice(8, 10).buffer).getUint16(0, false) - var cmd = lnn.relay.cmd[cell.slice(5, 6)[0]] + var cmd = relay.cmd[cell.slice(5, 6)[0]] var data = cell.slice(16, 16 + length) - var relay = {cmd: cmd, stream_id: id, data: data} - - return relay + var relay_ = { cmd: cmd, stream_id: id, data: data } + + return relay_ } diff --git a/js-client/src/parser.js b/js-client/src/parser.js index fe38a9a..1edebd6 100644 --- a/js-client/src/parser.js +++ b/js-client/src/parser.js @@ -1,63 +1,70 @@ -lnn.parser = {} +/** + * @module parser + */ + +import { enc, dec } from "./util.js"; +import { sjcl } from "../vendor/sjcl.js"; -lnn.parser.descriptors = { +let parser = {} + +parser.descriptors = { line_count: 0, total_lines: -1, lines: undefined, valid_bridge_distribution: ["none", "any", "https", "email", "moat", "hyphae"], - + exactly_once: ["router", "bandwidth", "published", "onion-key", "signing-key", "router-signatures"], - exactly_once_mic: ["onion-key","policy","ipv6-policy"], + exactly_once_mic: ["onion-key", "policy", "ipv6-policy"], parse: function (raw_descriptors, flavor = 'microdesc') { - if(flavor != 'unflavored' && flavor != 'microdesc') { + if (flavor != 'unflavored' && flavor != 'microdesc') { throw 'Error: Unexpected flavor' } let descriptors = [] - lnn.parser.descriptors.lines = raw_descriptors.split('\n') - lnn.parser.descriptors.line_count = 0 - lnn.parser.descriptors.total_lines = lnn.parser.descriptors.lines.length - lnn.parser.descriptors.flavor = flavor - - while (lnn.parser.descriptors.line_count < lnn.parser.descriptors.total_lines) { - if(lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count] === ""){ - lnn.parser.descriptors.line_count++ + parser.descriptors.lines = raw_descriptors.split('\n') + parser.descriptors.line_count = 0 + parser.descriptors.total_lines = parser.descriptors.lines.length + parser.descriptors.flavor = flavor + + while (parser.descriptors.line_count < parser.descriptors.total_lines) { + if (parser.descriptors.lines[parser.descriptors.line_count] === "") { + parser.descriptors.line_count++ continue } - - let descriptor = lnn.parser.descriptors.consume_one_node() + + let descriptor = parser.descriptors.consume_one_node() descriptor['flavor'] = flavor descriptors.push(descriptor) } return descriptors }, - validate: function(descriptors,consensus,flavor = 'microdesc',fail_on_missing = false) { + validate: function (descriptors, consensus, flavor = 'microdesc', fail_on_missing = false) { let digest_name = (flavor == 'unflavored') ? 'digest' : 'micro-digest' let digests = [] - for (idx = 0; idx < consensus['routers'].length; idx++){ - let router = consensus['routers'][idx] + for (let idx = 0; idx < consensus['routers'].length; idx++) { + let router = consensus['routers'][idx] digests.push(router[digest_name]) } let obtained = [] - for (idx = 0; idx < descriptors.length; idx++){ - obtained.push(descriptors[idx][digest_name]) + for (let idx = 0; idx < descriptors.length; idx++) { + obtained.push(descriptors[idx][digest_name]) } let invalid = [] console.log(obtained.length) - for (idx = 0; idx < digests.length; idx++){ + for (let idx = 0; idx < digests.length; idx++) { let digest = digests[idx] - if (obtained.includes(digest)){ - obtained.splice( obtained.indexOf(digest), 1 ); + if (obtained.includes(digest)) { + obtained.splice(obtained.indexOf(digest), 1); } else invalid.push(digest) } console.log(obtained.length) - - if (obtained.length){ + + if (obtained.length) { throw `Invalid descriptors found` } @@ -70,33 +77,33 @@ lnn.parser.descriptors = { * Parse one node in the raw data file * @returns {object} the descriptor of the parsed node */ - let tot =0 -lnn.parser.descriptors.consume_one_node = function () { +let tot = 0 +parser.descriptors.consume_one_node = function () { - if (lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count].startsWith('@type')) lnn.parser.descriptors.line_count++ - if (lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count] === ""){ - lnn.parser.descriptors.line_count++ + if (parser.descriptors.lines[parser.descriptors.line_count].startsWith('@type')) parser.descriptors.line_count++ + if (parser.descriptors.lines[parser.descriptors.line_count] === "") { + parser.descriptors.line_count++ } let descriptor = {} - let startLine = lnn.parser.descriptors.line_count + let startLine = parser.descriptors.line_count - if(lnn.parser.descriptors.flavor == 'unflavored') { - descriptor = lnn.parser.descriptors.consume_router(descriptor) - descriptor = lnn.parser.descriptors.try_consume_identity_ed25519(descriptor) + if (parser.descriptors.flavor == 'unflavored') { + descriptor = parser.descriptors.consume_router(descriptor) + descriptor = parser.descriptors.try_consume_identity_ed25519(descriptor) } else { - descriptor = lnn.parser.descriptors.consume_onion_key(descriptor) + descriptor = parser.descriptors.consume_onion_key(descriptor) } - let line = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count] - + let line = parser.descriptors.lines[parser.descriptors.line_count] + while (true) { - if(lnn.parser.descriptors.flavor == 'unflavored') { - if(line.startsWith("router-signature")) + if (parser.descriptors.flavor == 'unflavored') { + if (line.startsWith("router-signature")) break - } else{ - if(lnn.parser.descriptors.line_count == lnn.parser.descriptors.total_lines + } else { + if (parser.descriptors.line_count == parser.descriptors.total_lines || line.startsWith('@type') || line.startsWith('onion-key')) break } @@ -106,168 +113,168 @@ lnn.parser.descriptors.consume_one_node = function () { let first_word = (index_sp === -1) ? line : line.substring(0, index_sp) switch (first_word) { case "master-key-ed25519": - descriptor = lnn.parser.descriptors.consume_master_key_ed25519(descriptor) + descriptor = parser.descriptors.consume_master_key_ed25519(descriptor) break case "platform": - descriptor = lnn.parser.descriptors.consume_platform(descriptor) + descriptor = parser.descriptors.consume_platform(descriptor) break case "published": - descriptor = lnn.parser.descriptors.consume_published(descriptor) + descriptor = parser.descriptors.consume_published(descriptor) break case "bandwidth": - descriptor = lnn.parser.descriptors.consume_bandwidth(descriptor) + descriptor = parser.descriptors.consume_bandwidth(descriptor) break case "fingerprint": - descriptor = lnn.parser.descriptors.consume_fingerprint(descriptor) + descriptor = parser.descriptors.consume_fingerprint(descriptor) break case "hibernating": - descriptor = lnn.parser.descriptors.consume_hibernating(descriptor) + descriptor = parser.descriptors.consume_hibernating(descriptor) break case "uptime": - descriptor = lnn.parser.descriptors.consume_uptime(descriptor) + descriptor = parser.descriptors.consume_uptime(descriptor) break case "extra-info-digest": - descriptor = lnn.parser.descriptors.consume_extra_info_digest(descriptor) + descriptor = parser.descriptors.consume_extra_info_digest(descriptor) break case "caches-extra-info": - descriptor = lnn.parser.descriptors.consume_single_word_line("caches-extra-info", descriptor) + descriptor = parser.descriptors.consume_single_word_line("caches-extra-info", descriptor) break case "onion-key": - descriptor = lnn.parser.descriptors.consume_onion_key(descriptor) + descriptor = parser.descriptors.consume_onion_key(descriptor) break case "onion-key-crosscert": - descriptor = lnn.parser.descriptors.consume_onion_key_crosscert(descriptor) + descriptor = parser.descriptors.consume_onion_key_crosscert(descriptor) break case "ntor-onion-key": - descriptor = lnn.parser.descriptors.consume_base64_digest('ntor-onion-key', descriptor) + descriptor = parser.descriptors.consume_base64_digest('ntor-onion-key', descriptor) break case "ntor-onion-key-crosscert": - descriptor = lnn.parser.descriptors.consume_ntor_onion_key_crosscert(descriptor) + descriptor = parser.descriptors.consume_ntor_onion_key_crosscert(descriptor) break case "accept": - descriptor = lnn.parser.descriptors.consume_exit_policy("accept", descriptor) + descriptor = parser.descriptors.consume_exit_policy("accept", descriptor) break case "reject": - descriptor = lnn.parser.descriptors.consume_exit_policy("reject", descriptor) + descriptor = parser.descriptors.consume_exit_policy("reject", descriptor) break case "signing-key": - descriptor = lnn.parser.descriptors.consume_signing_key(descriptor) + descriptor = parser.descriptors.consume_signing_key(descriptor) break case "ipv6-policy": - descriptor = lnn.parser.consume_exit_policy('ipv6-policy', lnn.parser.descriptors.lines, lnn.parser.descriptors.line_count++, descriptor) + descriptor = parser.consume_exit_policy('ipv6-policy', parser.descriptors.lines, parser.descriptors.line_count++, descriptor) break case "router-sig-ed25519": - descriptor = lnn.parser.descriptors.consume_router_sig_ed25519(descriptor) + descriptor = parser.descriptors.consume_router_sig_ed25519(descriptor) break case "contact": - descriptor = lnn.parser.consume_contact(lnn.parser.descriptors.lines, lnn.parser.descriptors.line_count++, descriptor) + descriptor = parser.consume_contact(parser.descriptors.lines, parser.descriptors.line_count++, descriptor) break case "bridge-distribution": - descriptor = lnn.parser.descriptors.consume_bridge_distribution(descriptor) + descriptor = parser.descriptors.consume_bridge_distribution(descriptor) break case "family": - descriptor = lnn.parser.descriptors.consume_family(descriptor) + descriptor = parser.descriptors.consume_family(descriptor) break case "read-history": - descriptor = lnn.parser.descriptors.consume_history("read", descriptor) + descriptor = parser.descriptors.consume_history("read", descriptor) break case "write-history": - descriptor = lnn.parser.descriptors.consume_history("write", descriptor) + descriptor = parser.descriptors.consume_history("write", descriptor) break case "eventdns": - descriptor = lnn.parser.descriptors.consume_eventdns(descriptor) + descriptor = parser.descriptors.consume_eventdns(descriptor) break case "hidden-service-dir": - descriptor = lnn.parser.descriptors.consume_single_word_line("hidden-service-dir", descriptor) + descriptor = parser.descriptors.consume_single_word_line("hidden-service-dir", descriptor) break case "allow-single-hop-exits": - descriptor = lnn.parser.descriptors.consume_single_word_line("allow-single-hop-exits", descriptor) + descriptor = parser.descriptors.consume_single_word_line("allow-single-hop-exits", descriptor) break case "tunnelled-dir-server": - descriptor = lnn.parser.descriptors.consume_single_word_line("tunnelled-dir-server", descriptor) + descriptor = parser.descriptors.consume_single_word_line("tunnelled-dir-server", descriptor) break case "proto": - descriptor = lnn.parser.consume_proto("proto", lnn.parser.descriptors.lines, lnn.parser.descriptors.line_count++, descriptor) + descriptor = parser.consume_proto("proto", parser.descriptors.lines, parser.descriptors.line_count++, descriptor) break case "p": - descriptor = lnn.parser.consume_exit_policy('p', lnn.parser.descriptors.lines, lnn.parser.descriptors.line_count++, descriptor) + descriptor = parser.consume_exit_policy('p', parser.descriptors.lines, parser.descriptors.line_count++, descriptor) break case "p6": - descriptor = lnn.parser.consume_exit_policy('p6', lnn.parser.descriptors.lines, lnn.parser.descriptors.line_count++, descriptor) + descriptor = parser.consume_exit_policy('p6', parser.descriptors.lines, parser.descriptors.line_count++, descriptor) break case "id": - descriptor = lnn.parser.descriptors.consume_id(descriptor) + descriptor = parser.descriptors.consume_id(descriptor) break default: - ++lnn.parser.descriptors.line_count + ++parser.descriptors.line_count break } - line = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count] + line = parser.descriptors.lines[parser.descriptors.line_count] } - if(descriptor['ipv6-policy'] === undefined) descriptor['ipv6-policy'] = { + if (descriptor['ipv6-policy'] === undefined) descriptor['ipv6-policy'] = { "type": "reject", - "PortList":[[1,65535]] + "PortList": [[1, 65535]] } - if(descriptor['policy'] === undefined) { + if (descriptor['policy'] === undefined) { descriptor['policy'] = { "type": "reject", - "PortList":[[1,65535]] + "PortList": [[1, 65535]] } } - let fields = lnn.parser.descriptors.exactly_once_mic - let endLine = lnn.parser.descriptors.line_count //include till router-signature + let fields = parser.descriptors.exactly_once_mic + let endLine = parser.descriptors.line_count //include till router-signature - if(lnn.parser.descriptors.flavor == 'unflavored') { - endLine+=1 //include till router-signature - descriptor = lnn.parser.descriptors.consume_router_signature(descriptor) - fields = lnn.parser.descriptors.exactly_once + if (parser.descriptors.flavor == 'unflavored') { + endLine += 1 //include till router-signature + descriptor = parser.descriptors.consume_router_signature(descriptor) + fields = parser.descriptors.exactly_once } - if (!lnn.parser.descriptors.check_exactly_once(descriptor,fields)) throw "Invalid descriptor: some mandatory fields are not present" + if (!parser.descriptors.check_exactly_once(descriptor, fields)) throw "Invalid descriptor: some mandatory fields are not present" let fullDesc = "" - for(i = startLine; i < endLine; i++) { - if(lnn.parser.descriptors.lines[i] == "") + for (let i = startLine; i < endLine; i++) { + if (parser.descriptors.lines[i] == "") continue - fullDesc += (lnn.parser.descriptors.lines[i] + '\n') + fullDesc += (parser.descriptors.lines[i] + '\n') } - if(lnn.parser.descriptors.flavor == 'unflavored') { + if (parser.descriptors.flavor == 'unflavored') { let digest = sjcl.hash.sha1.hash(fullDesc) - digest = lnn.enc.base64(lnn.dec.bits(digest)) + digest = enc.base64(dec.bits(digest)) - while(digest.length > 0 && digest[digest.length - 1] == '=') - digest = digest.slice(0,-1) + while (digest.length > 0 && digest[digest.length - 1] == '=') + digest = digest.slice(0, -1) descriptor['digest'] = digest } else { let mdigest = sjcl.hash.sha256.hash(fullDesc) - mdigest = lnn.dec.bits(mdigest) - mdigest = lnn.enc.base64(mdigest) - - while(mdigest.length > 0 && mdigest[mdigest.length - 1] == '=') - mdigest = mdigest.slice(0,-1) + mdigest = dec.bits(mdigest) + mdigest = enc.base64(mdigest) + + while (mdigest.length > 0 && mdigest[mdigest.length - 1] == '=') + mdigest = mdigest.slice(0, -1) descriptor['micro-digest'] = mdigest } return descriptor } - + /** * Checks that all mandatory fields of the descriptor were parsed */ -lnn.parser.descriptors.check_exactly_once = function (descriptor,fields) { - - if(descriptor['ipv6-policy'] === undefined) descriptor - +parser.descriptors.check_exactly_once = function (descriptor, fields) { + + if (descriptor['ipv6-policy'] === undefined) descriptor + let parsed = true - if(descriptor['identity-ed25519'] !== undefined){ + if (descriptor['identity-ed25519'] !== undefined) { parsed = descriptor["ntor-onion-key-crosscert"] !== undefined && descriptor["onion-key-crosscert"] !== undefined && descriptor["router-sig-ed25519"] !== undefined - }else{ + } else { parsed = descriptor["router-sig-ed25519"] === undefined } @@ -279,15 +286,15 @@ lnn.parser.descriptors.check_exactly_once = function (descriptor,fields) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_router = function (descriptor) { - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count].split(' ') - lnn.parser.check_format(6, 'router', words) +parser.descriptors.consume_router = function (descriptor) { + let words = parser.descriptors.lines[parser.descriptors.line_count].split(' ') + parser.check_format(6, 'router', words) - if (!lnn.parser.is_valid_nickname(words[1])) throw `Invalid nickname: ${words[1]} contains non-alphanumeric characters` - if (!lnn.parser.is_valid_ipv4(words[2])) throw `Invalid address: ${words[2]} is not a valid iPv4 address` - if (!lnn.parser.is_valid_port(words[3])) throw `Invalid port: ${words[3]} is not a valid port (0 to 65535)` - if (!lnn.parser.is_valid_port(words[4])) throw `Invalid port: ${words[4]} is not a valid port (0 to 65535)` - if (!lnn.parser.is_valid_port(words[5])) throw `Invalid port: ${words[5]} is not a valid port (0 to 65535)` + if (!parser.is_valid_nickname(words[1])) throw `Invalid nickname: ${words[1]} contains non-alphanumeric characters` + if (!parser.is_valid_ipv4(words[2])) throw `Invalid address: ${words[2]} is not a valid iPv4 address` + if (!parser.is_valid_port(words[3])) throw `Invalid port: ${words[3]} is not a valid port (0 to 65535)` + if (!parser.is_valid_port(words[4])) throw `Invalid port: ${words[4]} is not a valid port (0 to 65535)` + if (!parser.is_valid_port(words[5])) throw `Invalid port: ${words[5]} is not a valid port (0 to 65535)` descriptor['router'] = { "nickname": words[1], @@ -297,7 +304,7 @@ lnn.parser.descriptors.consume_router = function (descriptor) { "dirport": Number(words[5]) } - ++lnn.parser.descriptors.line_count + ++parser.descriptors.line_count return descriptor } @@ -306,14 +313,14 @@ lnn.parser.descriptors.consume_router = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.try_consume_identity_ed25519 = function (descriptor) { - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count].split(' ') +parser.descriptors.try_consume_identity_ed25519 = function (descriptor) { + let words = parser.descriptors.lines[parser.descriptors.line_count].split(' ') if (words[0] === 'identity-ed25519') { - lnn.parser.check_format(1, 'identity-ed25519', words) - ++lnn.parser.descriptors.line_count + parser.check_format(1, 'identity-ed25519', words) + ++parser.descriptors.line_count - let [offset, certificate] = lnn.parser.consume_pem(lnn.parser.descriptors.lines, lnn.parser.descriptors.line_count) - lnn.parser.descriptors.line_count += offset + 1 + let [offset, certificate] = parser.consume_pem(parser.descriptors.lines, parser.descriptors.line_count) + parser.descriptors.line_count += offset + 1 descriptor['identity'] = { "type": "ed25519", "cert": certificate @@ -325,17 +332,17 @@ lnn.parser.descriptors.try_consume_identity_ed25519 = function (descriptor) { return descriptor } -lnn.parser.descriptors.consume_id = function (descriptor) { - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count].split(' ') +parser.descriptors.consume_id = function (descriptor) { + let words = parser.descriptors.lines[parser.descriptors.line_count].split(' ') - lnn.parser.check_format(3, 'id', words) + parser.check_format(3, 'id', words) let type = words[1] - if(type != 'rsa1024' && type != 'ed25519') + if (type != 'rsa1024' && type != 'ed25519') throw `Unexpected identity type ${type}` - lnn.parser.check_reused('identity', descriptor) - if (!lnn.parser.is_valid_base64(lnn.parser.add_ending(words[2]))) + parser.check_reused('identity', descriptor) + if (!parser.is_valid_base64(parser.add_ending(words[2]))) throw `Invalid master key: the master key ${words[2]} must be in base64` descriptor['identity'] = { @@ -343,7 +350,7 @@ lnn.parser.descriptors.consume_id = function (descriptor) { "master-key": words[2] } - ++lnn.parser.descriptors.line_count + ++parser.descriptors.line_count return descriptor } @@ -352,15 +359,15 @@ lnn.parser.descriptors.consume_id = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_master_key_ed25519 = function (descriptor) { +parser.descriptors.consume_master_key_ed25519 = function (descriptor) { - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count].split(' ') - lnn.parser.check_format(2, 'master-key-ed25519', words) - lnn.parser.check_reused('master-key-ed25519', descriptor) + let words = parser.descriptors.lines[parser.descriptors.line_count].split(' ') + parser.check_format(2, 'master-key-ed25519', words) + parser.check_reused('master-key-ed25519', descriptor) let key = words[1] - if (!lnn.parser.is_valid_base64(lnn.parser.add_ending(key))) throw `Invalid master key: the master key ${words[1]} must be in base64` + if (!parser.is_valid_base64(parser.add_ending(key))) throw `Invalid master key: the master key ${words[1]} must be in base64` descriptor['identity']['master-key'] = key - lnn.parser.descriptors.line_count++ + parser.descriptors.line_count++ return descriptor } @@ -370,12 +377,12 @@ lnn.parser.descriptors.consume_master_key_ed25519 = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_platform = function (descriptor) { - lnn.parser.check_reused("platform", descriptor) - let line = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count] +parser.descriptors.consume_platform = function (descriptor) { + parser.check_reused("platform", descriptor) + let line = parser.descriptors.lines[parser.descriptors.line_count] let platform = line.substring("platform".length + 1) descriptor['platform'] = platform - lnn.parser.descriptors.line_count++ + parser.descriptors.line_count++ return descriptor } @@ -384,10 +391,10 @@ lnn.parser.descriptors.consume_platform = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_published = function (descriptor) { - lnn.parser.check_reused('published', descriptor) - descriptor['published'] = lnn.parser.consume_date('published', lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count]) - ++lnn.parser.descriptors.line_count +parser.descriptors.consume_published = function (descriptor) { + parser.check_reused('published', descriptor) + descriptor['published'] = parser.consume_date('published', parser.descriptors.lines[parser.descriptors.line_count]) + ++parser.descriptors.line_count return descriptor } @@ -396,10 +403,10 @@ lnn.parser.descriptors.consume_published = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_bandwidth = function (descriptor) { - lnn.parser.check_reused('bandwidth', descriptor) - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") - lnn.parser.check_format(4, 'bandwidth', words) +parser.descriptors.consume_bandwidth = function (descriptor) { + parser.check_reused('bandwidth', descriptor) + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") + parser.check_format(4, 'bandwidth', words) let avg = Number(words[1]) let burst = Number(words[2]) @@ -421,16 +428,16 @@ lnn.parser.descriptors.consume_bandwidth = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_fingerprint = function (descriptor) { - lnn.parser.check_reused('fingerprint', descriptor) - let line = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++] +parser.descriptors.consume_fingerprint = function (descriptor) { + parser.check_reused('fingerprint', descriptor) + let line = parser.descriptors.lines[parser.descriptors.line_count++] let index_sp = line.indexOf(" ") let fingerprint = line.substring(index_sp + 1) - + let bytes = fingerprint.split(" ") let join_bytes = bytes.join("") if (bytes.length != 10) throw `Invalid fingerprint: wrong size` - if (!lnn.parser.is_valid_hex(join_bytes)) throw `Invalid fingerprint: not a hex string` + if (!parser.is_valid_hex(join_bytes)) throw `Invalid fingerprint: not a hex string` let identity = sjcl.codec.hex.toBits(join_bytes) identity = sjcl.codec.base64.fromBits(identity).replace("=", "") @@ -446,10 +453,10 @@ lnn.parser.descriptors.consume_fingerprint = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_hibernating = function (descriptor) { - lnn.parser.check_reused('hibernating', descriptor) - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") - lnn.parser.check_format(2, 'hibernating', words) +parser.descriptors.consume_hibernating = function (descriptor) { + parser.check_reused('hibernating', descriptor) + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") + parser.check_format(2, 'hibernating', words) let b = Number(words[1]) if (b !== 0 && b !== 1) throw `Invalid boolean` @@ -462,10 +469,10 @@ lnn.parser.descriptors.consume_hibernating = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_uptime = function (descriptor) { - lnn.parser.check_reused('uptime', descriptor) - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") - lnn.parser.check_format(2, 'uptime', words) +parser.descriptors.consume_uptime = function (descriptor) { + parser.check_reused('uptime', descriptor) + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") + parser.check_format(2, 'uptime', words) let uptime = Number(words[1]) @@ -481,11 +488,11 @@ lnn.parser.descriptors.consume_uptime = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_onion_key = function (descriptor) { - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count].split(" ") - lnn.parser.check_reused('onion-key', descriptor) - lnn.parser.check_format(1,'onion-key',words) - return lnn.parser.descriptors.consume_key('onion-key', descriptor) +parser.descriptors.consume_onion_key = function (descriptor) { + let words = parser.descriptors.lines[parser.descriptors.line_count].split(" ") + parser.check_reused('onion-key', descriptor) + parser.check_format(1, 'onion-key', words) + return parser.descriptors.consume_key('onion-key', descriptor) } /** @@ -493,20 +500,20 @@ lnn.parser.descriptors.consume_onion_key = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_extra_info_digest = function (descriptor) { - lnn.parser.check_reused('extra-info-digest', descriptor) - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") +parser.descriptors.consume_extra_info_digest = function (descriptor) { + parser.check_reused('extra-info-digest', descriptor) + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") if (words.length != 2 && words.length != 3) throw `Invalid format: 1 or 2 fields are expected` let sha1 = words[1] - if (!lnn.parser.is_valid_hex(sha1)) throw `Invalid encoding: the sha1 digest must be in hexadecimal` + if (!parser.is_valid_hex(sha1)) throw `Invalid encoding: the sha1 digest must be in hexadecimal` descriptor["extra-info-digest"] = { "sha1": sha1 } if (words.length === 3) { let sha256 = words[2] - if (!lnn.parser.is_valid_base64(lnn.parser.add_ending(sha256))) throw `Invalid encoding: the sha256 digest must base 64` + if (!parser.is_valid_base64(parser.add_ending(sha256))) throw `Invalid encoding: the sha256 digest must base 64` descriptor['extra-info-digest']['sha256'] = sha256 } @@ -519,10 +526,10 @@ lnn.parser.descriptors.consume_extra_info_digest = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_single_word_line = function (type, descriptor) { - lnn.parser.check_reused(type, descriptor) +parser.descriptors.consume_single_word_line = function (type, descriptor) { + parser.check_reused(type, descriptor) descriptor[type] = 'true' - ++lnn.parser.descriptors.line_count + ++parser.descriptors.line_count return descriptor } @@ -532,9 +539,9 @@ lnn.parser.descriptors.consume_single_word_line = function (type, descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_onion_key_crosscert = function (descriptor) { - lnn.parser.check_reused('onion-key-crosscert', descriptor) - return lnn.parser.descriptors.consume_key('onion-key-crosscert', descriptor) +parser.descriptors.consume_onion_key_crosscert = function (descriptor) { + parser.check_reused('onion-key-crosscert', descriptor) + return parser.descriptors.consume_key('onion-key-crosscert', descriptor) } /** @@ -542,17 +549,17 @@ lnn.parser.descriptors.consume_onion_key_crosscert = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_ntor_onion_key_crosscert = function (descriptor) { +parser.descriptors.consume_ntor_onion_key_crosscert = function (descriptor) { - lnn.parser.check_reused('ntor-onion-key-crosscert', descriptor) - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count].split(" ") - lnn.parser.check_format(2, 'ntor-onion-key-crosscert', words) + parser.check_reused('ntor-onion-key-crosscert', descriptor) + let words = parser.descriptors.lines[parser.descriptors.line_count].split(" ") + parser.check_format(2, 'ntor-onion-key-crosscert', words) let bit = Number(words[1]) if (bit != 0 && bit != 1) throw "Invalid bit for ntor-onion-key-crosscert" - let [offset, cert] = lnn.parser.consume_pem(lnn.parser.descriptors.lines, ++lnn.parser.descriptors.line_count) - lnn.parser.descriptors.line_count += offset + 1 + let [offset, cert] = parser.consume_pem(parser.descriptors.lines, ++parser.descriptors.line_count) + parser.descriptors.line_count += offset + 1 descriptor['ntor-onion-key-crosscert'] = { "bit": bit, @@ -568,14 +575,14 @@ lnn.parser.descriptors.consume_ntor_onion_key_crosscert = function (descriptor) * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_router_sig_ed25519 = function (descriptor) { - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") - lnn.parser.check_format(2, "router-sig-ed25519", words) - lnn.parser.check_reused("router-signatures", descriptor) +parser.descriptors.consume_router_sig_ed25519 = function (descriptor) { + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") + parser.check_format(2, "router-sig-ed25519", words) + parser.check_reused("router-signatures", descriptor) let signature = words[1] - if (!lnn.parser.is_valid_base64(lnn.parser.add_ending(signature))) throw "Invalid digest: must be a base 64 string" + if (!parser.is_valid_base64(parser.add_ending(signature))) throw "Invalid digest: must be a base 64 string" descriptor["router-signatures"] = { "ed25519": signature, @@ -589,14 +596,14 @@ lnn.parser.descriptors.consume_router_sig_ed25519 = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_router_signature = function (descriptor) { - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count].split(' ') +parser.descriptors.consume_router_signature = function (descriptor) { + let words = parser.descriptors.lines[parser.descriptors.line_count].split(' ') if (words[0] === 'router-signature') { - lnn.parser.check_format(1, 'router-signature', words) - ++lnn.parser.descriptors.line_count + parser.check_format(1, 'router-signature', words) + ++parser.descriptors.line_count - let [offset, signature] = lnn.parser.consume_pem(lnn.parser.descriptors.lines, lnn.parser.descriptors.line_count) - lnn.parser.descriptors.line_count += offset + 1 + let [offset, signature] = parser.consume_pem(parser.descriptors.lines, parser.descriptors.line_count) + parser.descriptors.line_count += offset + 1 if (descriptor["router-signatures"] === undefined) { descriptor["router-signatures"] = {} @@ -613,12 +620,12 @@ lnn.parser.descriptors.consume_router_signature = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_bridge_distribution = function (descriptor) { - lnn.parser.check_reused('bridge-distribution', descriptor) - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") - lnn.parser.check_format(2, 'bridge-distribution', words) +parser.descriptors.consume_bridge_distribution = function (descriptor) { + parser.check_reused('bridge-distribution', descriptor) + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") + parser.check_format(2, 'bridge-distribution', words) let dist = words[1] - if (!lnn.parser.descriptors.valid_bridge_distribution.includes(dist)) dist = "none" + if (!parser.descriptors.valid_bridge_distribution.includes(dist)) dist = "none" descriptor['bridge-distribution'] = dist @@ -631,10 +638,10 @@ lnn.parser.descriptors.consume_bridge_distribution = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_family = function (descriptor) { - lnn.parser.check_reused("family", descriptor) +parser.descriptors.consume_family = function (descriptor) { + parser.check_reused("family", descriptor) - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") let family = words.splice(1) descriptor['family'] = family @@ -647,17 +654,17 @@ lnn.parser.descriptors.consume_family = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_history = function (type, descriptor) { +parser.descriptors.consume_history = function (type, descriptor) { let field = type + "-history" - lnn.parser.check_reused(field, descriptor) - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") - lnn.parser.check_format(6, type + "-history", words) + parser.check_reused(field, descriptor) + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") + parser.check_format(6, type + "-history", words) let date = words[1] - if (!lnn.parser.is_valid_date(date)) throw "Invalid date" + if (!parser.is_valid_date(date)) throw "Invalid date" let time = words[2] - if (!lnn.parser.is_valid_time(time)) throw "Invalid time" + if (!parser.is_valid_time(time)) throw "Invalid time" let interval = Number(words[3].substring(1)) let bytes = words[5].split(",").map(x => Number(x)) @@ -677,10 +684,10 @@ lnn.parser.descriptors.consume_history = function (type, descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_eventdns = function (descriptor) { - lnn.parser.check_reused("eventdns", descriptor) - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") - lnn.parser.check_format(2, "eventdns", words) +parser.descriptors.consume_eventdns = function (descriptor) { + parser.check_reused("eventdns", descriptor) + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") + parser.check_format(2, "eventdns", words) let bool = Number(words[1]) @@ -696,14 +703,14 @@ lnn.parser.descriptors.consume_eventdns = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_base64_digest = function (field, descriptor) { - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") - lnn.parser.check_format(2, field, words) - lnn.parser.check_reused(field, descriptor) +parser.descriptors.consume_base64_digest = function (field, descriptor) { + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") + parser.check_format(2, field, words) + parser.check_reused(field, descriptor) let key = words[1] - if (!lnn.parser.is_valid_base64(lnn.parser.add_ending(key))) throw "Invalid digest: must be a base 64 string" + if (!parser.is_valid_base64(parser.add_ending(key))) throw "Invalid digest: must be a base 64 string" descriptor[field] = key @@ -715,9 +722,9 @@ lnn.parser.descriptors.consume_base64_digest = function (field, descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_signing_key = function (descriptor) { - lnn.parser.check_reused('signing-key', descriptor) - return lnn.parser.descriptors.consume_key('signing-key', descriptor) +parser.descriptors.consume_signing_key = function (descriptor) { + parser.check_reused('signing-key', descriptor) + return parser.descriptors.consume_key('signing-key', descriptor) } /** @@ -726,9 +733,9 @@ lnn.parser.descriptors.consume_signing_key = function (descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_exit_policy = function (type, descriptor) { - let words = lnn.parser.descriptors.lines[lnn.parser.descriptors.line_count++].split(" ") - lnn.parser.check_format(2, type, words) +parser.descriptors.consume_exit_policy = function (type, descriptor) { + let words = parser.descriptors.lines[parser.descriptors.line_count++].split(" ") + parser.check_format(2, type, words) if (descriptor['policy'] === undefined) { descriptor['policy'] = { @@ -753,9 +760,9 @@ lnn.parser.descriptors.consume_exit_policy = function (type, descriptor) { * @param {object} descriptor the currently being built decriptors object * @returns {Object} the updated descriptor */ -lnn.parser.descriptors.consume_key = function (field, descriptor) { - [offset, key] = lnn.parser.consume_pem(lnn.parser.descriptors.lines, ++lnn.parser.descriptors.line_count) - lnn.parser.descriptors.line_count += offset + 1 +parser.descriptors.consume_key = function (field, descriptor) { + let [offset, key] = parser.consume_pem(parser.descriptors.lines, ++parser.descriptors.line_count) + parser.descriptors.line_count += offset + 1 descriptor[field] = key return descriptor } @@ -766,7 +773,7 @@ lnn.parser.descriptors.consume_key = function (field, descriptor) { * @param {string} expected_word the expected word * @param {Array} words the line splitted into words */ -lnn.parser.check_format = function (expected_length, expected_word, words) { +parser.check_format = function (expected_length, expected_word, words) { if (words.length != expected_length) { throw `wrong_format_exception: ${expected_length} fields are expected` } else if (words[0] !== expected_word) { @@ -778,7 +785,7 @@ lnn.parser.check_format = function (expected_length, expected_word, words) { * Check if the IP is an IPv4 address * @param {string} IP */ -lnn.parser.is_valid_ipv4 = function (IP) { +parser.is_valid_ipv4 = function (IP) { let regex = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ return regex.test(IP) } @@ -787,7 +794,7 @@ lnn.parser.is_valid_ipv4 = function (IP) { * Check if the given port is valid * @param {number} port */ -lnn.parser.is_valid_port = function (port) { +parser.is_valid_port = function (port) { if (isNaN(port)) return false return port >= 0 && port <= 65535 } @@ -797,7 +804,7 @@ lnn.parser.is_valid_port = function (port) { * @param {string} nickname the nickname we want to verify * @returns {boolean} the validity of the nickname */ -lnn.parser.is_valid_nickname = function (nickname) { +parser.is_valid_nickname = function (nickname) { let regex = /^[a-z0-9]+$/i return regex.test(nickname) } @@ -806,7 +813,7 @@ lnn.parser.is_valid_nickname = function (nickname) { * Check if the given string is in base 64 * @param {string} str */ -lnn.parser.is_valid_base64 = function (str) { +parser.is_valid_base64 = function (str) { let regex = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/ return regex.test(str) } @@ -814,7 +821,7 @@ lnn.parser.is_valid_base64 = function (str) { * Check if the given string is in hexadecimal * @param {string} str */ -lnn.parser.is_valid_hex = function (str) { +parser.is_valid_hex = function (str) { let regex = /^[a-fA-F0-9]+$/ return regex.test(str) } @@ -826,7 +833,7 @@ lnn.parser.is_valid_hex = function (str) { * @param {function} base_function optional function to verifiy the base * @returns {Array} tuple containing the parsed pem and the offset */ -lnn.parser.consume_pem = function (lines, start) { +parser.consume_pem = function (lines, start) { let offset = 0; let content = '' if (!lines[start].startsWith('-----BEGIN')) throw `Invalid signature, certificate or key: must begin with "-----BEGIN"` @@ -836,7 +843,7 @@ lnn.parser.consume_pem = function (lines, start) { offset++ } - if (!lnn.parser.is_valid_base64(content)) throw "Invalid PEM: must be in base 64" + if (!parser.is_valid_base64(content)) throw "Invalid PEM: must be in base 64" return [offset, content] } @@ -846,12 +853,12 @@ lnn.parser.consume_pem = function (lines, start) { * @param {string} ranges format: Keyword=Values... * @returns {object} the parsed ranges */ -lnn.parser.parse_range = function (ranges) { +parser.parse_range = function (ranges) { let content = {} for (let pair of ranges) { if (pair.includes("=")) { let tmp = pair.split("=") - content[tmp[0]] = lnn.parser.parse_range_once(tmp[1]) + content[tmp[0]] = parser.parse_range_once(tmp[1]) } } return content @@ -862,7 +869,7 @@ lnn.parser.parse_range = function (ranges) { * @param {string} value the sting we want to parse * @returns {Array} a list containing the ranges */ -lnn.parser.parse_range_once = function (value) { +parser.parse_range_once = function (value) { value = value.split(',') let subvalues = [] @@ -888,18 +895,18 @@ lnn.parser.parse_range_once = function (value) { * @param {object} node the node we want to update * @returns the updated node */ -lnn.parser.consume_exit_policy = function (field, lines, index, node) { - lnn.parser.check_reused(field, node) +parser.consume_exit_policy = function (field, lines, index, node) { + parser.check_reused(field, node) let words = lines[index].split(" ") - lnn.parser.check_format(3, field, words) + parser.check_format(3, field, words) let policy = words[1] if (policy !== 'accept' && policy !== 'reject') throw "Invalid policy: policy must either be accept or reject" - let ranges = lnn.parser.parse_range_once(words[2]) - - if(field == 'p') field = 'policy' - if(field == 'p6') field = 'ipv6-policy' + let ranges = parser.parse_range_once(words[2]) + + if (field == 'p') field = 'policy' + if (field == 'p6') field = 'ipv6-policy' node[field] = { 'type': policy, @@ -917,8 +924,8 @@ lnn.parser.consume_exit_policy = function (field, lines, index, node) { * @param {object} node the node we want to update * @returns the updated node */ -lnn.parser.consume_contact = function (lines, index, node) { - lnn.parser.check_reused("contact", node) +parser.consume_contact = function (lines, index, node) { + parser.check_reused("contact", node) let contact = lines[index].substring("contact".length + 1) node["contact"] = contact @@ -930,7 +937,7 @@ lnn.parser.consume_contact = function (lines, index, node) { * Check if the string in date has the format YYYY-MM-DD * @param {string} time String representing the date */ -lnn.parser.is_valid_date = function (date) { +parser.is_valid_date = function (date) { if (typeof date !== 'string') return false let regex = /^\d{4}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/ return regex.test(date) @@ -939,7 +946,7 @@ lnn.parser.is_valid_date = function (date) { /**Check if the string time has the format HH:MM:SS * @param {string} time String representing the time */ -lnn.parser.is_valid_time = function (time) { +parser.is_valid_time = function (time) { if (typeof time !== 'string') return false let regex = /^(0[0-9]|1[0-9]|2[0-3])[:][0-5][0-9][:][0-5][0-9]$/ return regex.test(time) @@ -951,12 +958,12 @@ lnn.parser.is_valid_time = function (time) { * @param {string} line the line we are consuming * @returns {object} object containing both the date and the time */ -lnn.parser.consume_date = function (field, line) { +parser.consume_date = function (field, line) { let words = line.split(" ") - lnn.parser.check_format(3, field, words) + parser.check_format(3, field, words) - if (!lnn.parser.is_valid_date(words[1])) throw `Invalid date: ${words[1]} is not a valid date` - if (!lnn.parser.is_valid_time(words[2])) throw `Invalid time: ${words[2]} is not a valid time` + if (!parser.is_valid_date(words[1])) throw `Invalid date: ${words[1]} is not a valid date` + if (!parser.is_valid_time(words[2])) throw `Invalid time: ${words[2]} is not a valid time` return { "date": words[1], @@ -972,10 +979,10 @@ lnn.parser.consume_date = function (field, line) { * @param {object} node the node we want to update * @returns the updated node */ -lnn.parser.consume_proto = function (type, lines, index, node) { - lnn.parser.check_reused(type, node) +parser.consume_proto = function (type, lines, index, node) { + parser.check_reused(type, node) let ranges = lines[index].split(" ").splice(1) - node[type] = lnn.parser.parse_range(ranges) + node[type] = parser.parse_range(ranges) return node } @@ -984,7 +991,7 @@ lnn.parser.consume_proto = function (type, lines, index, node) { * @param {string} field the field we want to verify * @param {object} node the node for which we don't want a repetition of field */ -lnn.parser.check_reused = function (field, node) { +parser.check_reused = function (field, node) { if (node[field] !== undefined) throw `The field ${field} appears more than once` } @@ -993,7 +1000,7 @@ lnn.parser.check_reused = function (field, node) { * @param {string} str the string we want to modify * @returns {string} base 64 string with correct ending = */ -lnn.parser.add_ending = function (str) { +parser.add_ending = function (str) { if (str.length % 4 !== 0) { let rem = str.length % 4 for (let i = 0; i < 4 - rem; i++) str += '=' @@ -1001,7 +1008,4 @@ lnn.parser.add_ending = function (str) { return str } - - - - +export { parser } \ No newline at end of file diff --git a/js-client/src/path.js b/js-client/src/path.js index 429ad4c..37c6576 100644 --- a/js-client/src/path.js +++ b/js-client/src/path.js @@ -1,57 +1,60 @@ +/** + * @module path + */ -lnn.path = {} +let path = {} /** - * This function selects a lnn.path from the parsed consensus and parsed descriptors + * This function selects a path from the parsed consensus and parsed descriptors * Flavor is 'unflavored' * * @param {Object} consensus a parsed consensus * @param {Object} descriptors parsed descriptors of the routers in the consensus - * @param {Bool} isChutney boolean used to indicate if the lnn.path selection is done with routers from chutney + * @param {Bool} isChutney boolean used to indicate if the path selection is done with routers from chutney */ -lnn.path.select = function (consensus, descriptors, isChutney) { - if(isChutney === undefined){ - lnn.path["isChutney"] = false - }else{ - lnn.path["isChutney"] = isChutney +path.select = function (consensus, descriptors, isChutney) { + if (isChutney === undefined) { + path["isChutney"] = false + } else { + path["isChutney"] = isChutney } //build a hashmap of descriptor where the keys are the identity - lnn.path["descriptorsMap"] = {} + path["descriptorsMap"] = {} for (let descriptor of descriptors) { let identity = descriptor['router'].identity - lnn.path.descriptorsMap[identity] = descriptor + path.descriptorsMap[identity] = descriptor } //pre-process consensus by filering the routers that do not obey //the minimal constraints - lnn.path["consensus"] = consensus['routers'].filter(r => lnn.path.obeyMinimalConstraints(r)) - - //lnn.path selection - lnn.path["exit"] = lnn.path.chooseGoodExit(consensus) - lnn.path["guard"] = lnn.path.chooseGoodGuard(consensus) - lnn.path["middle"] = lnn.path.chooseGoodMiddle(consensus) - - //TODO: it should create/return a new lnn.path and not the descriptors - return [lnn.path.guard, lnn.path.middle, lnn.path.exit] + path["consensus"] = consensus['routers'].filter(r => path.obeyMinimalConstraints(r)) + + //path selection + path["exit"] = path.chooseGoodExit(consensus) + path["guard"] = path.chooseGoodGuard(consensus) + path["middle"] = path.chooseGoodMiddle(consensus) + + //TODO: it should create/return a new path and not the descriptors + return [path.guard, path.middle, path.exit] } //assumes microdesc flavor. -lnn.path.select_end_path = function (consensus, descriptors,guard, isChutney, tcp_ports) { - if(isChutney === undefined){ - lnn.path["isChutney"] = false - }else{ - lnn.path["isChutney"] = isChutney +path.select_end_path = function (consensus, descriptors, guard, isChutney, tcp_ports) { + if (isChutney === undefined) { + path["isChutney"] = false + } else { + path["isChutney"] = isChutney } //build a hashmap of descriptor where the keys are the identity let consMap = {} - for(let router of consensus['routers']) { + for (let router of consensus['routers']) { consMap[router['micro-digest']] = router } - lnn.path["descriptorsMap"] = {} + path["descriptorsMap"] = {} for (let descriptor of descriptors) { descriptor['router'] = consMap[descriptor['micro-digest']] @@ -59,23 +62,23 @@ lnn.path.select_end_path = function (consensus, descriptors,guard, isChutney, tc descriptor['bandwidth']['avg'] = descriptor['router']['w']['Bandwidth'] let identity = descriptor['router'].identity - lnn.path.descriptorsMap[identity] = descriptor + path.descriptorsMap[identity] = descriptor } //pre-process consensus by filering the routers that do not obey //the minimal constraints console.log(consensus['routers'].length) console.log(descriptors.length) - lnn.path["consensus"] = consensus['routers'].filter(r => lnn.path.obeyMinimalConstraints(r)) - console.log(lnn.path["consensus"].length) + path["consensus"] = consensus['routers'].filter(r => path.obeyMinimalConstraints(r)) + console.log(path["consensus"].length) - //lnn.path selection - lnn.path["guard"] = guard - lnn.path["exit"] = lnn.path.chooseGoodExitGivenGuard(tcp_ports) - lnn.path["middle"] = lnn.path.chooseGoodMiddle() + //path selection + path["guard"] = guard + path["exit"] = path.chooseGoodExitGivenGuard(tcp_ports) + path["middle"] = path.chooseGoodMiddle() - //TODO: it should create/return a new lnn.path and not the descriptors - return [lnn.path.middle, lnn.path.exit] + //TODO: it should create/return a new path and not the descriptors + return [path.middle, path.exit] } /** @@ -83,11 +86,11 @@ lnn.path.select_end_path = function (consensus, descriptors,guard, isChutney, tc * * @param {Object} router the router subpart of one of the nodes of the parsed consensus */ -lnn.path.obeyMinimalConstraints = function (router) { - let des = lnn.path.descriptorsMap[router['identity']] +path.obeyMinimalConstraints = function (router) { + let des = path.descriptorsMap[router['identity']] let flags = router['flags'] - - if(des === undefined) return false + + if (des === undefined) return false if (!flags.includes("Valid")) return false if (!flags.includes("Running")) return false if (!router['version'].startsWith("Tor 0.3.")) return false @@ -103,29 +106,29 @@ lnn.path.obeyMinimalConstraints = function (router) { * @param {Array} candidates the list of candidates */ -lnn.path.weightedRandomChoice = function (candidates) { +path.weightedRandomChoice = function (candidates) { let total = 0 - - for(let candidate of candidates){ - let des =lnn.path.descriptorsMap[candidate['identity']] - if(des !== undefined){ + + for (let candidate of candidates) { + let des = path.descriptorsMap[candidate['identity']] + if (des !== undefined) { total += des['bandwidth']['avg'] } } - + let r = Math.random() * total let upto = 0 for (let router of candidates) { - let des = lnn.path.descriptorsMap[router['identity']] + let des = path.descriptorsMap[router['identity']] - if(des !== undefined){ + if (des !== undefined) { let bandwidth = des['bandwidth']['avg'] if (upto + bandwidth >= r) return des else upto += bandwidth } - + } throw "No candidate has been chosen" @@ -138,9 +141,9 @@ lnn.path.weightedRandomChoice = function (candidates) { * @param {Object} des2 the descriptor of the second router * */ -lnn.path.inSame16Subnet = function (des1, des2) { +path.inSame16Subnet = function (des1, des2) { - if(lnn.path.isChutney){ + if (path.isChutney) { return false } @@ -156,7 +159,7 @@ lnn.path.inSame16Subnet = function (des1, des2) { * @param {Object} des1 the descriptor of the first router * @param {Object} des2 the descriptor of the second router */ -lnn.path.inSameFamily = function (des1, des2) { +path.inSameFamily = function (des1, des2) { if (des1['family'] != undefined && des2['family'] != undefined) { for (let fam of des1['family']) { if (des2['family'].includes(fam)) return true @@ -167,17 +170,17 @@ lnn.path.inSameFamily = function (des1, des2) { } /** - * This function choose a good exit given the TOR lnn.path selection rules + * This function choose a good exit given the TOR path selection rules */ -lnn.path.chooseGoodExit = function () { - let candidates = lnn.path.consensus.filter(lnn.path.isGoodExit) - return lnn.path.weightedRandomChoice(candidates) +path.chooseGoodExit = function () { + let candidates = path.consensus.filter(path.isGoodExit) + return path.weightedRandomChoice(candidates) } -lnn.path.chooseGoodExitGivenGuard = function (tcp_ports) { - let candidates = lnn.path.consensus.filter(r => lnn.path.isGoodExitGivenGuard(r,tcp_ports)) +path.chooseGoodExitGivenGuard = function (tcp_ports) { + let candidates = path.consensus.filter(r => path.isGoodExitGivenGuard(r, tcp_ports)) console.log("Exit candidates: " + candidates.length) - return lnn.path.weightedRandomChoice(candidates) + return path.weightedRandomChoice(candidates) } /** @@ -185,77 +188,77 @@ lnn.path.chooseGoodExitGivenGuard = function (tcp_ports) { * * @param {Object} router the router subpart of one of the nodes of the parsed consensus */ -lnn.path.isGoodExit = function (router) { +path.isGoodExit = function (router) { let flags = router['flags'] if (!flags.includes('Exit') || flags.includes('BadExit')) return false - if(router['exit-policy'] === undefined ) - router['exit-policy'] = lnn.path.descriptorsMap[router.identity]['policy'] + if (router['exit-policy'] === undefined) + router['exit-policy'] = path.descriptorsMap[router.identity]['policy'] if (router['exit-policy']['type'] !== 'accept') return false return true } -lnn.path.isGoodExitGivenGuard = function (router, tcp_ports) { +path.isGoodExitGivenGuard = function (router, tcp_ports) { let flags = router['flags'] if (!flags.includes('Exit') || flags.includes('BadExit')) return false - let des = lnn.path.descriptorsMap[router.identity] - + let des = path.descriptorsMap[router.identity] + - if(router['exit-policy'] === undefined ) + if (router['exit-policy'] === undefined) router['exit-policy'] = des['policy'] let port_arr = router['exit-policy']['PortList'] - for(i = 0; i < tcp_ports.length; i++) { + for (let i = 0; i < tcp_ports.length; i++) { let found = false let cur_port = tcp_ports[i] - for(j = 0; j < port_arr.length; j++) { - if(port_arr[j][0] == cur_port) { + for (let j = 0; j < port_arr.length; j++) { + if (port_arr[j][0] == cur_port) { found = true break } - else if(port_arr[j].length == 2){ - if(port_arr[j][0] <= cur_port && cur_port <= port_arr[j][1]) { + else if (port_arr[j].length == 2) { + if (port_arr[j][0] <= cur_port && cur_port <= port_arr[j][1]) { found = true break } } } - if(router['exit-policy']['type'] == 'accept') { - if(!found) return false - } + if (router['exit-policy']['type'] == 'accept') { + if (!found) return false + } else { - if(found) return false + if (found) return false } } - if(des === undefined){ + if (des === undefined) { return false } - if(des["router"]["identity"] === lnn.path.guard["router"]["identity"]){ + if (des["router"]["identity"] === path.guard["router"]["identity"]) { return false } - if (lnn.path.inSame16Subnet(des, lnn.path.guard)) return false - if (lnn.path.inSameFamily(des, lnn.path.guard)) return false + if (path.inSame16Subnet(des, path.guard)) return false + if (path.inSameFamily(des, path.guard)) return false return true } /** - * This function choose a good guard given the TOR lnn.path selection rules. + * This function choose a good guard given the TOR path selection rules. * - * Note: this implements a lightweight version of the TOR lnn.path selection, where the selection based on the different + * Note: this implements a lightweight version of the TOR path selection, where the selection based on the different * sets is put aside * */ -lnn.path.chooseGoodGuard = function () { - let candidates = lnn.path.consensus.filter(r => lnn.path.isGoodGuard(r)) - return lnn.path.weightedRandomChoice(candidates) +path.chooseGoodGuard = function () { + let candidates = path.consensus.filter(r => path.isGoodGuard(r)) + return path.weightedRandomChoice(candidates) } /** @@ -263,33 +266,33 @@ lnn.path.chooseGoodGuard = function () { * * @param {Object} router the router subpart of one of the nodes of the parsed consensus */ -lnn.path.isGoodGuard = function (router) { +path.isGoodGuard = function (router) { let flags = router['flags'] - let des = lnn.path.descriptorsMap[router.identity] + let des = path.descriptorsMap[router.identity] - if(des === undefined){ + if (des === undefined) { return false } - if(des["router"]["identity"] === lnn.path.exit["router"]["identity"]){ + if (des["router"]["identity"] === path.exit["router"]["identity"]) { return false } if (!flags.includes('Guard')) return false if (!flags.includes('Stable')) return false if (!flags.includes('V2Dir')) return false - if (lnn.path.inSame16Subnet(des, lnn.path.exit)) return false - if (lnn.path.inSameFamily(des, lnn.path.exit)) return false + if (path.inSame16Subnet(des, path.exit)) return false + if (path.inSameFamily(des, path.exit)) return false return true } /** - * This function choose a good middle given the TOR lnn.path selection rules + * This function choose a good middle given the TOR path selection rules */ -lnn.path.chooseGoodMiddle = function () { - let candidates = lnn.path.consensus.filter(r => lnn.path.isGoodMiddle(r)) - return lnn.path.weightedRandomChoice(candidates) +path.chooseGoodMiddle = function () { + let candidates = path.consensus.filter(r => path.isGoodMiddle(r)) + return path.weightedRandomChoice(candidates) } /** @@ -297,22 +300,24 @@ lnn.path.chooseGoodMiddle = function () { * * @param {Object} router the router subpart of one of the nodes of the parsed consensus */ -lnn.path.isGoodMiddle = function (router) { - let des = lnn.path.descriptorsMap[router.identity] +path.isGoodMiddle = function (router) { + let des = path.descriptorsMap[router.identity] - if(des === undefined){ + if (des === undefined) { return false } - if(des["router"]["identity"] === lnn.path.exit["router"]["identity"] ||des["router"]["identity"] === lnn.path.guard["router"]["identity"]){ + if (des["router"]["identity"] === path.exit["router"]["identity"] || des["router"]["identity"] === path.guard["router"]["identity"]) { return false } - if (lnn.path.inSame16Subnet(des, lnn.path.guard)) return false - if (lnn.path.inSame16Subnet(des, lnn.path.exit)) return false - if (lnn.path.inSameFamily(des, lnn.path.guard)) return false - if (lnn.path.inSameFamily(des, lnn.path.exit)) return false + if (path.inSame16Subnet(des, path.guard)) return false + if (path.inSame16Subnet(des, path.exit)) return false + if (path.inSameFamily(des, path.guard)) return false + if (path.inSameFamily(des, path.exit)) return false return true } + +export { path }; \ No newline at end of file diff --git a/js-client/src/post.js b/js-client/src/post.js index b99992c..d8385b6 100644 --- a/js-client/src/post.js +++ b/js-client/src/post.js @@ -1,57 +1,64 @@ -lnn.post = {} -lnn.post.create = function(endpoint, success, error) -{ +/** + * @module post + */ + + +import { ntor } from "./ntor.js"; +import { enc, dec } from "./util.js"; +import * as onion from "./onion.js"; +import { consensusParser } from "./consensusParser.js"; +import { parser } from "./parser.js"; +import { relay } from "./relay.js"; +import { path } from "./path.js" + + + +export function create(endpoint, success, error) { var rq = new XMLHttpRequest() - rq.onreadystatechange = function() - { - if (rq.readyState == 4 && rq.status == 201) - { + rq.onreadystatechange = function () { + if (rq.readyState == 4 && rq.status == 201) { var info = JSON.parse(rq.responseText) - if (endpoint.auth != null) - { - info = lnn.ntor.auth(endpoint, info["auth"], info["data"]) + if (endpoint.auth != null) { + info = ntor.auth(endpoint, info["auth"], info["data"]) } endpoint.id = info["id"] endpoint.url = endpoint.urls.channels + "/" + info["id"] endpoint.path = info["path"] - if (endpoint.fast) - { + if (endpoint.fast) { endpoint.guard = info["guard"] - endpoint.material.identity = lnn.dec.base64( + endpoint.material.identity = dec.base64( info["guard"].router.identity + "=") - endpoint.material.onionkey = lnn.dec.base64( + endpoint.material.onionkey = dec.base64( info["guard"]["ntor-onion-key"]) } - var material = lnn.ntor.shake(endpoint, info["ntor"]) + var material = ntor.shake(endpoint, info["ntor"]) if (material == null) throw "Invalid guard handshake." - material = lnn.ntor.slice(material) + material = ntor.slice(material) endpoint.material = material - endpoint.forward = lnn.onion.forward(endpoint) - endpoint.backward = lnn.onion.backward(endpoint) + endpoint.forward = onion.forward(endpoint) + endpoint.backward = onion.backward(endpoint) if (success !== undefined) success(endpoint) } - else if (rq.readyState == 4 && error !== undefined) - { + else if (rq.readyState == 4 && error !== undefined) { error(endpoint, rq.status) } } var payload = null if (endpoint.fast) - payload = lnn.ntor.fast(endpoint) + payload = ntor.fast(endpoint) else - payload = lnn.ntor.hand(endpoint) + payload = ntor.hand(endpoint) - payload = {ntor: payload} - if (endpoint.auth != null) - { - payload["auth"] = lnn.enc.base64(endpoint.auth.ntor.publicKey) + payload = { ntor: payload } + if (endpoint.auth != null) { + payload["auth"] = enc.base64(endpoint.auth.ntor.publicKey) } payload = JSON.stringify(payload) @@ -61,53 +68,43 @@ lnn.post.create = function(endpoint, success, error) } -lnn.post.circuit_info = function(endpoint, success, error, select_path, tcp_ports, inform) -{ - if(select_path === undefined) { +export function circuit_info(endpoint, success, error, select_path, tcp_ports) { + if (select_path === undefined) { select_path = false } var rq = new XMLHttpRequest() - rq.onreadystatechange = function() - { - if (rq.readyState == 4 && rq.status == 201) - { + rq.onreadystatechange = function () { + if (rq.readyState == 4 && rq.status == 201) { var info = JSON.parse(rq.responseText) - if (endpoint.auth != null) - { - info = lnn.ntor.auth(endpoint, info["auth"], info["data"]) + if (endpoint.auth != null) { + info = ntor.auth(endpoint, info["auth"], info["data"]) } endpoint.id = info["id"] endpoint.url = endpoint.urls.channels + "/" + info["id"] - - if (endpoint.fast) - { + + if (endpoint.fast) { endpoint.guard = info["guard"] } - if(!select_path) + if (!select_path) endpoint.path = info["path"] else { - endpoint.consensus = lnn.consensusParser.parse(endpoint.consensus_raw) - endpoint.descriptors = lnn.parser.descriptors.parse(endpoint.descriptors_raw) - inform("consensus and descriptors parsed") - - lnn.parser.descriptors.validate(endpoint.descriptors,endpoint.consensus) - inform("descriptors validated") + endpoint.consensus = consensusParser.parse(endpoint.consensus_raw) + endpoint.descriptors = parser.descriptors.parse(endpoint.descriptors_raw) + parser.descriptors.validate(endpoint.descriptors, endpoint.consensus) - endpoint.path = lnn.path.select_end_path(endpoint.consensus, endpoint.descriptors, endpoint.guard, true, tcp_ports) + endpoint.path = path.select_end_path(endpoint.consensus, endpoint.descriptors, endpoint.guard, true, tcp_ports) console.log(endpoint.guard) console.log(endpoint.path) - inform("Path chosen") } if (success !== undefined) success(endpoint, info) } - else if (rq.readyState == 4 && error !== undefined) - { + else if (rq.readyState == 4 && error !== undefined) { error(endpoint, rq.status) } } @@ -115,15 +112,13 @@ lnn.post.circuit_info = function(endpoint, success, error, select_path, tcp_port var payload = {} /** if (endpoint.fast) - payload = lnn.ntor.fast(endpoint) + payload = ntor.fast(endpoint) else - payload = lnn.ntor.hand(endpoint) + payload = ntor.hand(endpoint) payload = {ntor: payload}*/ - - if (endpoint.auth != null) - { - payload["auth"] = lnn.enc.base64(endpoint.auth.ntor.publicKey) + if (endpoint.auth != null) { + payload["auth"] = enc.base64(endpoint.auth.ntor.publicKey) } payload["select_path"] = select_path.toString() payload = JSON.stringify(payload) @@ -133,36 +128,34 @@ lnn.post.circuit_info = function(endpoint, success, error, select_path, tcp_port rq.send(payload) } -lnn.post.handshake = function(endpoint, info, success, error) -{ +export function handshake(endpoint, info, success, error) { //var handshake = info['handshake'] var normal_handler = endpoint.io.handler - var handler = function(endpoint, material) - { + var handler = function (endpoint, material) { endpoint.io.handler = normal_handler //var material = endpoint.io.recv() - material = lnn.ntor.shake(endpoint, material.slice(7, 7+64), false) + material = ntor.shake(endpoint, material.slice(7, 7 + 64), false) if (material == null) throw "Invalid guard handshake." - material = lnn.ntor.slice(material) + material = ntor.slice(material) endpoint.material = material - endpoint.forward = lnn.onion.forward(endpoint) - endpoint.backward = lnn.onion.backward(endpoint) + endpoint.forward = onion.forward(endpoint) + endpoint.backward = onion.backward(endpoint) if (success !== undefined) success(endpoint) } endpoint.io.handler = handler - - var handshake = new Uint8Array(lnn.relay.full_len) - var payload = lnn.ntor.hand(endpoint,endpoint.guard,false) + + var handshake = new Uint8Array(relay.full_len) + var payload = ntor.hand(endpoint, endpoint.guard, false) var view = new DataView(handshake.buffer) @@ -170,22 +163,18 @@ lnn.post.handshake = function(endpoint, info, success, error) view.setUint8(4, 10 /* CREATE2 CELL */, false) view.setUint16(5, 2 /* ntor handshake */, false) view.setUint16(7, payload.length, false) - handshake.set(payload,9) + handshake.set(payload, 9) endpoint.io.send(handshake) } -lnn.post.channel = function(endpoint, success, error) -{ +export function channel(endpoint, success, error) { var rq = new XMLHttpRequest() - rq.onreadystatechange = function() - { - if (rq.readyState == 4 && rq.status == 201) - { + rq.onreadystatechange = function () { + if (rq.readyState == 4 && rq.status == 201) { var cells = JSON.parse(rq.responseText)["cells"] - if (cells === undefined) - { + if (cells === undefined) { if (endpoint.io.error !== undefined) endpoint.io.error(endpoint) return @@ -195,8 +184,7 @@ lnn.post.channel = function(endpoint, success, error) if (pending > 0 && endpoint.io.success !== undefined) endpoint.io.success(endpoint) - if (cells.length > 0) - { + if (cells.length > 0) { endpoint.io.incoming = endpoint.io.incoming.concat(cells) if (endpoint.io.handler !== undefined) endpoint.io.handler(endpoint) @@ -208,8 +196,7 @@ lnn.post.channel = function(endpoint, success, error) if (success !== undefined) success(endpoint) } - else if (rq.readyState == 4) - { + else if (rq.readyState == 4) { if (endpoint.io.error !== undefined) endpoint.io.error(endpoint) @@ -222,32 +209,29 @@ lnn.post.channel = function(endpoint, success, error) rq.open("POST", endpoint.url, true) rq.setRequestHeader("Content-type", "application/json") - rq.send(JSON.stringify({cells: endpoint.io.outcoming})) + rq.send(JSON.stringify({ cells: endpoint.io.outcoming })) } -lnn.post.extend = function(endpoint, descriptor, success, error) -{ - var hand = lnn.ntor.hand(endpoint, descriptor, false) +export function extend(endpoint, descriptor, success, error) { + var hand = ntor.hand(endpoint, descriptor, false) var eidentity = descriptor["identity"]["master-key"] // (assuming ed25519) var identity = endpoint.material.identity var addr = descriptor["router"]["address"] var port = descriptor["router"]["orport"] - var data = lnn.relay.extend(hand, addr, port, identity, eidentity) - var cell = lnn.onion.build(endpoint, "extend2", 0, data) + var data = relay.extend(hand, addr, port, identity, eidentity) + var cell = onion.build(endpoint, "extend2", 0, data) var extend_error = error var extend_success = success var normal_handler = endpoint.io.handler - var handler = function(endpoint, data) - { + var handler = function (endpoint, data) { endpoint.io.handler = normal_handler - var cell = lnn.onion.peel(endpoint, data) - if (cell == null || cell.cmd != "extended2") - { + var cell = onion.peel(endpoint, data) + if (cell == null || cell.cmd != "extended2") { if (extend_error !== undefined) return extend_error(endpoint) throw "Invalid answer, expecting extended2 cell, fatal!" @@ -255,17 +239,17 @@ lnn.post.extend = function(endpoint, descriptor, success, error) var view = new DataView(cell.data.buffer) var length = view.getUint16(0, false) - var data = cell.data.slice(2, 2+length) + var data = cell.data.slice(2, 2 + length) - var material = lnn.ntor.shake(endpoint, data, false) - material = lnn.ntor.slice(material) + var material = ntor.shake(endpoint, data, false) + material = ntor.slice(material) endpoint.material = material if (material == null && extend_error !== undefined) return extend_error(endpoint) - endpoint.forward = lnn.onion.forward(endpoint) - endpoint.backward = lnn.onion.backward(endpoint) + endpoint.forward = onion.forward(endpoint) + endpoint.backward = onion.backward(endpoint) if (extend_success !== undefined) extend_success(endpoint) @@ -276,18 +260,14 @@ lnn.post.extend = function(endpoint, descriptor, success, error) } -lnn.post.close = function(endpoint, success, error) -{ +export function close(endpoint, success, error) { var rq = new XMLHttpRequest() - rq.onreadystatechange = function() - { - if (rq.readyState == 4 && rq.status == 202) - { + rq.onreadystatechange = function () { + if (rq.readyState == 4 && rq.status == 202) { if (success !== undefined) success("Circuit closed") } - else if (rq.readyState == 4 && error !== undefined) - { + else if (rq.readyState == 4 && error !== undefined) { error("Error in closing circuit") } } diff --git a/js-client/src/relay.js b/js-client/src/relay.js index 1e83c2e..dcaac65 100644 --- a/js-client/src/relay.js +++ b/js-client/src/relay.js @@ -1,41 +1,46 @@ -lnn.relay = {} -lnn.relay.payload_len = 509 -lnn.relay.data_len = lnn.relay.payload_len - 11 -lnn.relay.full_len = 5 + lnn.relay.payload_len -lnn.relay.cmd = { - "begin" : 1, 1: "begin", - "data" : 2, 2: "data", - "end" : 3, 3: "end", - "connected" : 4, 4: "connected", - "sendme" : 5, 5: "sendme", - "extend" : 6, 6: "extend", - "extended" : 7, 7: "extended", - "truncate" : 8, 8: "truncate", - "truncated" : 9, 9: "truncated", - "drop" : 10, 10: "drop", - "resolve" : 11, 11: "resolve", - "resolved" : 12, 12: "resolved", - "begin_dir" : 13, 13: "begin_dir", - "extend2" : 14, 14: "extend2", - "extended2" : 15, 15: "extended2" - } +/** + * @module relay + */ + +import { dec } from "./util.js"; + +let relay = {} +relay.payload_len = 509 +relay.data_len = relay.payload_len - 11 +relay.full_len = 5 + relay.payload_len +relay.cmd = { + "begin": 1, 1: "begin", + "data": 2, 2: "data", + "end": 3, 3: "end", + "connected": 4, 4: "connected", + "sendme": 5, 5: "sendme", + "extend": 6, 6: "extend", + "extended": 7, 7: "extended", + "truncate": 8, 8: "truncate", + "truncated": 9, 9: "truncated", + "drop": 10, 10: "drop", + "resolve": 11, 11: "resolve", + "resolved": 12, 12: "resolved", + "begin_dir": 13, 13: "begin_dir", + "extend2": 14, 14: "extend2", + "extended2": 15, 15: "extended2" +} -lnn.relay.pack = function(cmd, stream_id, data) -{ +relay.pack = function (cmd, stream_id, data) { if (data === undefined) data = new Uint8Array(0) if (stream_id === undefined) stream_id = 0 - if (typeof(data) == "string") - data = lnn.dec.utf8(data) + if (typeof (data) == "string") + data = dec.utf8(data) - var cell = new Uint8Array(lnn.relay.full_len) /* padded with \x00 */ + var cell = new Uint8Array(relay.full_len) /* padded with \x00 */ var view = new DataView(cell.buffer) view.setUint32(0, 2147483648 /* fake circuit_id */, false) view.setUint8(4, 3 /* RELAY CELL */, false) - view.setUint8(5, lnn.relay.cmd[cmd], false) + view.setUint8(5, relay.cmd[cmd], false) view.setUint16(6, 0 /* recognized */, false) view.setUint16(8, stream_id, false) // (implicit 4-bytes zeroed digest at offset 10) @@ -45,18 +50,17 @@ lnn.relay.pack = function(cmd, stream_id, data) return cell } -lnn.relay.extend = function(handshake, host, port, identity, eidentity) -{ +relay.extend = function (handshake, host, port, identity, eidentity) { // (assuming that host is an IPv4) var addr = new Uint8Array(host.split(".")) if (addr.join(".") != host) throw "Invalid extend IPv4 address, fatal." port = parseInt(port) - if (typeof(identity) == "string") - identity = lnn.dec.base64(identity) - if (typeof(eidentity) == "string") - eidentity = lnn.dec.base64(eidentity + "=") + if (typeof (identity) == "string") + identity = dec.base64(identity) + if (typeof (eidentity) == "string") + eidentity = dec.base64(eidentity + "=") var nspec = 2 if (eidentity !== undefined) @@ -86,8 +90,7 @@ lnn.relay.extend = function(handshake, host, port, identity, eidentity) view.setUint8(off, identity.length, false); off += 1 data.set(identity, off); off += identity.length - if (nspec == 3) - { + if (nspec == 3) { view.setUint8(off, 3 /* Ed25519 identity specifier */, false); off += 1 view.setUint8(off, eidentity.length, false); off += 1 data.set(eidentity, off); off += eidentity.length @@ -100,9 +103,8 @@ lnn.relay.extend = function(handshake, host, port, identity, eidentity) return data } -lnn.relay.begin = function(host, port) -{ - valid = false +relay.begin = function (host, port) { + let valid = false if (host.match("(\\d\+\\.){3}\\d\+")) valid = true if (host.match("^\\[[\\d:]*\\]$")) @@ -116,11 +118,13 @@ lnn.relay.begin = function(host, port) if (!valid) throw "Invalid host provided?" - var address = lnn.dec.utf8(host + ":" + port) + var address = dec.utf8(host + ":" + port) var data = new Uint8Array(address.length + 1 + 4) // (1o null, 4o flags) data.set(address, 0) - data[address.length+1+3] = 5 // flags IPv6 okay+preferred and IPv4 okay + data[address.length + 1 + 3] = 5 // flags IPv6 okay+preferred and IPv4 okay return data } + +export { relay } \ No newline at end of file diff --git a/js-client/src/signature.js b/js-client/src/signature.js index 19f72e0..34f9e7f 100644 --- a/js-client/src/signature.js +++ b/js-client/src/signature.js @@ -1,4 +1,10 @@ -lnn.signature = {} +/** + * @module signature + */ + +import bigInt from "big-integer"; +import { sjcl } from "../vendor/sjcl.js"; +import { lnn } from "./header.js"; /** * This function verifies the given raw consensus @@ -20,14 +26,14 @@ lnn.signature = {} * @param {Number} minimal the minimal percentage of the signatures that must be verified in order to verify the consensus * @returns {Boolean} the result of the verification */ -lnn.signature.verify = function (raw_cons, keys, minimal, flavor = 'microdesc') { +export function verify(raw_cons, keys, minimal, flavor = 'microdesc') { if (minimal === undefined) { minimal = 0.5 } else if (minimal <= 0 || minimal > 1) { throw 'The minimal percentage must be between 0 (not included) and 1' } - keys = lnn.signature.process_raw_keys(keys) + //keys = process_raw_keys(keys) let nbr_verified = 0 let total = 0 @@ -40,23 +46,22 @@ lnn.signature.verify = function (raw_cons, keys, minimal, flavor = 'microdesc') hash = sjcl.codec.hex.fromBits(hash) // Get the signatures and the signing keys - let sig_and_keys_digests = lnn.signature.get_sig_and_keys_digests(split_cons.splice(1)) + let sig_and_keys_digests = get_sig_and_keys_digests(split_cons.splice(1)) for (let fingerprint in sig_and_keys_digests) { total++ - - let key_digest = sig_and_keys_digests[fingerprint]["signing-key-digest"] - let key = keys[fingerprint][key_digest] + let key = keys[fingerprint] let e = bigInt(key["exponent"]) let n = bigInt(key["modulus"]) + let key_digest = sig_and_keys_digests[fingerprint]["signing-key-digest"] - if (key === undefined || !lnn.signature.verify_key(key["pem"], key_digest)) continue + if (key === undefined || !verify_key(key["pem"], key_digest)) continue let signature = sig_and_keys_digests[fingerprint]["signature"] - let sig_big_int = lnn.signature.get_signature_big_int(signature) - let padded_hash = lnn.signature.get_hash(sig_big_int, e, n) - let recovered_hash = lnn.signature.get_hash_from_rsa_cipher(padded_hash) + let sig_big_int = get_signature_big_int(signature) + let padded_hash = get_hash(sig_big_int, e, n) + let recovered_hash = get_hash_from_rsa_cipher(padded_hash) nbr_verified = (recovered_hash === undefined || recovered_hash !== hash) ? nbr_verified : nbr_verified + 1 } @@ -64,7 +69,7 @@ lnn.signature.verify = function (raw_cons, keys, minimal, flavor = 'microdesc') return nbr_verified > minimal * total } -lnn.signature.process_raw_keys = function(raw_keys) { +export function process_raw_keys(raw_keys) { var keys = {} var real_tor = true //keep false for chutney!! @@ -194,7 +199,7 @@ lnn.signature.process_raw_keys = function(raw_keys) { * @param {BigInteger} modulus the modulus of the key * @returns {String} the padded hash */ -lnn.signature.get_hash = function (signature, exponent, modulus) { +export function get_hash(signature, exponent, modulus) { let padded_hash = signature.modPow(exponent, modulus).toString(16) let size = modulus.toString(16).length let offset = size - padded_hash.length @@ -210,7 +215,7 @@ lnn.signature.get_hash = function (signature, exponent, modulus) { * @param {string} key the key with the format pem * @param {string} key_digest the hex digest extracted from the consensus */ -lnn.signature.verify_key = function (key, key_digest) { +export function verify_key(key, key_digest) { let raw_key = key.split('\n') let b_index = raw_key.indexOf("-----BEGIN RSA PUBLIC KEY-----") let e_index = raw_key.indexOf("-----END RSA PUBLIC KEY-----") @@ -222,7 +227,7 @@ lnn.signature.verify_key = function (key, key_digest) { return hash.toUpperCase() === key_digest.toUpperCase() } -lnn.signature.compute_digest = function (key) { +export function compute_digest(key) { let raw_key = key.split('\n') let b_index = raw_key.indexOf("-----BEGIN RSA PUBLIC KEY-----") let e_index = raw_key.indexOf("-----END RSA PUBLIC KEY-----") @@ -245,7 +250,7 @@ lnn.signature.compute_digest = function (key) { * signature * } */ -lnn.signature.get_sig_and_keys_digests = function (remaining) { +export function get_sig_and_keys_digests(remaining) { let sign_and_digests = {} for (let r of remaining) { if (r !== '') { @@ -265,13 +270,14 @@ lnn.signature.get_sig_and_keys_digests = function (remaining) { } return sign_and_digests } + /** * * This function transforms a signature in base64 into a bigInteger * @param {string} signature the signature encoded in base64 * @returns {BigInteger} the integer corresponding to the signature */ -lnn.signature.get_signature_big_int = function (signature) { +export function get_signature_big_int(signature) { let sig_hex = sjcl.codec.hex.fromBits(sjcl.codec.base64.toBits(signature)) let sig = bigInt(sig_hex, 16) return sig @@ -283,7 +289,7 @@ lnn.signature.get_signature_big_int = function (signature) { * @param {string} cipher the padded hash of the consensus * @returns {string} the hash of the consensus */ -lnn.signature.get_hash_from_rsa_cipher = function (padded_hash) { +export function get_hash_from_rsa_cipher(padded_hash) { if (!padded_hash.startsWith("0001")) return undefined padded_hash = padded_hash.substring(4) diff --git a/js-client/src/stream.js b/js-client/src/stream.js index f4fed6c..8d26a57 100644 --- a/js-client/src/stream.js +++ b/js-client/src/stream.js @@ -1,426 +1,444 @@ -lnn.stream = {} -lnn.stream.entrancy = 0 -lnn.stream.backend = function(error) -{ - var sendme = function(cell, endpoint) - { - if (cell.cmd == "sendme"){ - endpoint.stream.sendme += 1 - endpoint.stream.deliverywindow += 100 - //flush the send queue for the circuit - - while(endpoint.stream.deliverywindow > 0 && endpoint.stream.tosend.length > 0) { - var cell = endpoint.stream.tosend.shift() - endpoint.io.send(cell) - endpoint.stream.deliverywindow -= 1 +/** + * @module stream + */ + +import { lnn } from "./header.js"; +import * as onion from "./onion.js"; +import { enc, dec } from "./util.js"; +import { relay } from "./relay.js"; + +let stream = {}; +stream.entrancy = 0; + +class Backend { + constructor(error) { + const sendMe = function (cell, endpoint) { + if (cell.cmd == "sendme") { + endpoint.stream.sendme += 1; + endpoint.stream.deliverywindow += 100; + // flush the send queue for the circuit + + while (endpoint.stream.deliverywindow > 0 && endpoint.stream.tosend.length > 0) { + const ncell = endpoint.stream.tosend.shift(); + endpoint.io.send(ncell); + endpoint.stream.deliverywindow -= 1; + } + } else { + error(endpoint); + throw "Got unexpected control cell."; } - } - else - { - error(endpoint) - throw "Got unexpected control cell." - } + }; + + this.id = 0; + this.tosend = []; + this.sendme = 0; + this.handles = { 0: { callback: sendMe } }; + this.packagewindow = 1000; // circuit-level receiving window + this.deliverywindow = 1000; // circuit level sending window } - var backend = { - id: 0, - tosend: [], - sendme: 0, - handles: {0: {callback: sendme}}, - packagewindow: 1000, // (circuit-level receiving window) - deliverywindow: 1000,// circuit level sending window - register: function(handle) - { - backend.id += 1 - handle.id = backend.id - handle.packagewindow = 500 // (stream-level receiving window) - handle.deliverywindow = 500// stream level sending window - backend.handles[backend.id] = handle - return backend.id - }, - send: function(cell, endpoint) - { - if(backend.deliverywindow > 0) { //if we can send - endpoint.io.send(cell) - backend.deliverywindow -= 1 - } - else { ///add to the send queue, will be sent when "sendme" is received. - backend.tosend.push(cell) - } + register(handle) { + this.id += 1; + handle.id = this.id; + handle.packagewindow = 500; // stream-level receiving window + handle.deliverywindow = 500; // stream level sending window + this.handles[this.id] = handle; + return this.id; + } + + send(cell, endpoint) { + if (this.deliverywindow > 0) { + // if we can send + endpoint.io.send(cell); + this.deliverywindow -= 1; + } else { + // add to the send queue, will be sent when "sendme" is received. + this.tosend.push(cell); } } - return backend + } -lnn.stream.handler = function(endpoint, cell) -{ - lnn.stream.entrancy += 1 - if(lnn.stream.entrancy > 1) { - console.log("ENTRANCY BUG") +class Raw { + constructor(endpoint, handler) { + this.id = null; + this.data = []; + this.cell = null; + this.state = lnn.state.started; + this.packagewindow = null; + this.deliverywindow = null; + this.tosend = []; + this.endpoint = endpoint; + this.handler = handler; + + // let id = endpoint.stream.register(this); + this.handler(this); } - if (cell[4] != 3) // (relay cell only) - { - console.log("Got non-relay cell, dropped: ", cell[4]) - lnn.stream.entrancy -= 1 - return - } + send(cmd, data) { + const cell = onion.build( + this.endpoint, cmd, this.id, data); - cell = lnn.onion.peel(endpoint, cell) - if (cell == null) - { - console.log("Got invalid cell, dropped.") - lnn.stream.entrancy -= 1 - return - } + if (cmd != "data") { + this.endpoint.io.send(cell); // non-data cells dont affect congestion control + return; + } - if (!(cell.stream_id in endpoint.stream.handles)) - { - console.log("Got cell outside stream, dropped: ", cell.stream_id) - lnn.stream.entrancy -= 1 - return + if (this.deliverywindow > 0) { // send if stream level window is non zero + this.endpoint.stream.send(cell, this.endpoint); // send thru circuit level window + this.deliverywindow -= 1; + } else { + this.tosend.push(cell); // add to queue of stream level window + } } - var handle = endpoint.stream.handles[cell.stream_id] - if (cell.cmd == "end") - delete endpoint.stream.handles[cell.stream_id] + recv() { + const data = this.data; + this.data = []; + return data; + } - handle.cell = cell - handle.callback(cell, endpoint) + callback(cell) { + if (cell.cmd == "connected") { + this.state = lnn.state.created; + } + if (cell.cmd == "end") { + this.state = lnn.state.success; + } - /* handle circuit-level sendme */ + if (cell.cmd == "sendme") { // receive stream level sendme + this.deliverywindow += 50; + while (this.deliverywindow > 0 && this.tosend.length > 0) { + const ncell = this.tosend.shift(); + this.endpoint.stream.send(ncell, this.endpoint); + this.deliverywindow -= 1; + } + } + this.data.push(cell); + this.handler(this); - if(cell.cmd == "data") { - endpoint.stream.packagewindow -= 1 + if (cell.cmd == "connected") { + this.state = lnn.state.pending; + } } - console.log('Update window: ', endpoint.stream.packagewindow) - if (endpoint.stream.packagewindow < 900) - { - //console.log("Circuit window is ", endpoint.stream.packagewindow) - //console.log("Sending circuit level sendme cell now ", endpoint.io.counter) - endpoint.io.send(lnn.onion.build(endpoint, 'sendme')) - endpoint.stream.packagewindow += 100 +} + +class Dir { + constructor(endpoint, path, handler) { + this.id = null; + this.data = ""; + this.cell = null; + this.state = lnn.state.started; + this.packagewindow = null; + this.deliverywindow = null; + this.tosend = []; + this.endpoint = endpoint; + + this.handler = handler; + this.path = path; + + const id = endpoint.stream.register(this); + let cell = onion.build(endpoint, "begin_dir", id); + endpoint.io.send(cell); + + let data = "GET " + path + " HTTP/1.0\r\n"; + data += "Accept-Encoding: identity\r\n\r\n"; + data = dec.utf8(data); + + cell = onion.build(endpoint, "data", id, data); + this.deliverywindow -= 1; + endpoint.stream.send(cell, endpoint); + + this.handler(this); } - /* handle stream-level sendme */ - if(cell.cmd == "data"){ - handle.packagewindow -= 1 + send() { + throw "No send method on directory streams."; } - if (handle.packagewindow < 450) - { - //console.log("Stream window is ", handle.packagewindow) - //console.log("Sending stream level sendme cell now ", endpoint.io.counter) - cell = lnn.onion.build(endpoint, 'sendme', handle.id) - endpoint.io.send(cell) - handle.packagewindow += 50 + + recv() { + const data = this.data; + this.data = ""; + return data; } - lnn.stream.entrancy -= 1 + callback(cell) { + if (cell.cmd == "connected") { + this.state = lnn.state.created; + this.handler(this); + this.state = lnn.state.pending; + } + if (cell.cmd == "end") { + this.state = lnn.state.success; + this.handler(this); + } + if (cell.cmd == "sendme") { + this.deliverywindow += 50; + while (this.deliverywindow > 0 && this.tosend.length > 0) { + const ncell = this.tosend.shift(); + this.endpoint.stream.send(ncell, this.endpoint); + this.deliverywindow -= 1; + } + } + + if (cell.cmd != "data") { return; } + + this.data += enc.utf8(cell.data); + this.handler(this); + } } -lnn.stream.raw = function(endpoint, handler) -{ - var request = { - id: null, - data: [], - cell: null, - send: function(cmd, data) - { - - var cell = lnn.onion.build( - request.endpoint, cmd, request.id, data) - - if(cmd != "data") { - endpoint.io.send(cell) //non-data cells dont affect congestion control - return - } +class TCP { + constructor(endPoint, host, port, handler) { + this.id = null; + this.data = new Uint8Array(0); + this.cell = null; + this.cache = []; - if(request.deliverywindow > 0) { //send if stream level window is non zero - endpoint.stream.send(cell,endpoint) //send thru circuit level window. - request.deliverywindow -= 1 - } - else { - request.tosend.push(cell) //add to queue of stream level window - } - }, - recv: function() - { - var data = request.data - request.data = [] - return data - }, - state: lnn.state.started, - packagewindow: null, - deliverywindow: null, - tosend: [], - endpoint: endpoint, - callback: function(cell) - { - if (cell.cmd == "connected") - request.state = lnn.state.created - if (cell.cmd == "end") - request.state = lnn.state.success - - if(cell.cmd == "sendme") { //receive stream level sendme - request.deliverywindow += 50 - while(request.deliverywindow > 0 && request.tosend.length > 0) { - var cell = request.tosend.shift() - endpoint.stream.send(cell,endpoint) - request.deliverywindow -= 1 - } - } + this.state = lnn.state.started; + this.packagewindow = null; + this.deliverywindow = null; + this.tosend = []; + this.endpoint = endPoint; + this.retries = 0; - request.data.push(cell) - handler(request) + this.host = host; + this.port = port; + this.handler = handler; - if (cell.cmd == "connected") - request.state = lnn.state.pending - } - } + // WL: Get new identifier for stream? + const id = endPoint.stream.register(this); - var id = endpoint.stream.register(request) - handler(request) - return request -} + // WL: Create a BEGIN package containing host and port of the server? + const data = relay.begin(host, port); -lnn.stream.dir = function(endpoint, path, handler) -{ - var request = { - id: null, - data: "", - cell: null, - send: function() { throw "No send method on directory streams." }, - recv: function() - { - var data = request.data - request.data = "" - return data - }, - state: lnn.state.started, - packagewindow: null, - deliverywindow: null, - tosend: [], - endpoint: endpoint, - callback: function(cell) - { - if (cell.cmd == "connected") - { - request.state = lnn.state.created - handler(request) - request.state = lnn.state.pending - } - if (cell.cmd == "end") - { - request.state = lnn.state.success - handler(request) - } - if(cell.cmd == "sendme") { - request.deliverywindow += 50 - while(request.deliverywindow > 0 && request.tosend.length > 0) { - var cell = request.tosend.shift() - endpoint.stream.send(cell,endpoint) - request.deliverywindow -= 1 - } - } + // WL: Construct the cell around it? + const cell = onion.build(endPoint, "begin", id, data); - if (cell.cmd != "data") - return + // WL: Send that sell to start the process? + this.endpoint.io.send(cell); - request.data += lnn.enc.utf8(cell.data) - handler(request) - } - } + this.handler(this); - var id = endpoint.stream.register(request) - var cell = lnn.onion.build(endpoint, "begin_dir", id) - endpoint.io.send(cell) + this.send = this.send.bind(this); - var data = "GET " + path + " HTTP/1.0\r\n" - data += "Accept-Encoding: identity\r\n\r\n" - data = lnn.dec.utf8(data) + } - cell = lnn.onion.build(endpoint, "data", id, data) - request.deliverywindow -= 1 - endpoint.stream.send(cell,endpoint) + send(send_data) { + if (send_data !== undefined) { + this.cache.push(send_data); + } - handler(request) - return request -} + if (this.state == lnn.state.started) { // not yet recvd reply for relay begin + return; + } -lnn.stream.tcp = function(endPoint, host, port, handler) -{ - var request = { - id: null, - data: new Uint8Array(0), - cell: null, - cache: [], - send: function(send_data) - { - if(send_data !== undefined){ - request.cache.push(send_data) - } + while (this.cache.length) { + let data = this.cache.shift(); - if(request.state == lnn.state.started) { //not yet recvd reply for relay begin - return + if (typeof (data) == "string") { + data = lnn.dec.utf8(data); } - while(request.cache.length) { - var data = request.cache.shift() - - if (typeof(data) == "string") - data = lnn.dec.utf8(data) + const payload = new Uint8Array(lnn.relay.data_len); - var payload = new Uint8Array(lnn.relay.data_len) - while (data.length > payload.length) - { - payload.set(data.slice(0, payload.length), 0) - data = data.slice(payload.length) + while (data.length > payload.length) { + payload.set(data.slice(0, payload.length), 0); + data = data.slice(payload.length); - var cell = lnn.onion.build( - request.endpoint, "data", request.id, payload) - - if(request.deliverywindow > 0) { - request.endpoint.stream.send(cell,request.endpoint) - request.deliverywindow -= 1 - } - else { - request.tosend.push(cell) - } + const cell = lnn.onion.build( + this.endpoint, "data", this.id, payload); + if (this.deliverywindow > 0) { + this.endpoint.stream.send(cell, this.endpoint); + this.deliverywindow -= 1; + } else { + this.tosend.push(cell); } - var cell = lnn.onion.build( - request.endpoint, "data", request.id, data) - if(request.deliverywindow > 0) { - request.endpoint.stream.send(cell,request.endpoint) - request.deliverywindow -= 1 - } - else { - request.tosend.push(cell) - } } - }, - recv: function() - { - var data = request.data - request.data = new Uint8Array(0) - return data - }, - close: function() - { - var data = new Uint8Array(1) - data[0] = 6 //reason done. - var cell = lnn.onion.build(request.endpoint,"end",request.id,data) - request.endpoint.io.send(cell) - }, - state: lnn.state.started, - packagewindow: null, - deliverywindow: null, - tosend: [], - endpoint: endPoint, - retries: 0, - callback: function(cell) - { - console.log(cell.cmd) - if (cell.cmd == "connected"){ - request.state = lnn.state.created - request.retries = 0 - request.send() + const cell = lnn.onion.build( + this.endpoint, "data", this.id, data); + + if (this.deliverywindow > 0) { + this.endpoint.stream.send(cell, this.endpoint); + this.deliverywindow -= 1; + } else { + this.tosend.push(cell); } - if (cell.cmd == "end"){ - if(cell.data[0] == 4) { //REASON EXIT_POLICY - if(request.retries == 3) { //threshold for retrying - console.log( 'Retries limit exceeded. Cant connect to host. ' ) - request.state = lnn.state.success - request.retries = 0 - } - else { - request.retries += 1 - console.log("Retrying to build circuit, retry#: " + request.retries) - - var ports = [80,443] - if(!ports.includes(port)) - ports.push(port) - - lnn.open( - request.endpoint.host, - request.endpoint.port, - request.success_on_open, - request.error_on_open, - undefined, - request.endpoint.fast, - request.endpoint.auth, - request.endpoint.select_path, - ports - ) + } + } + + + + callback(cell) { + console.log(cell.cmd); + if (cell.cmd == "connected") { + this.state = lnn.state.created; + this.retries = 0; + this.send(); + } + if (cell.cmd == "end") { + if (cell.data[0] == 4) { // REASON EXIT_POLICY + if (this.retries == 3) { // threshold for retrying + console.log('Retries limit exceeded. Cant connect to host. '); + this.state = lnn.state.success; + this.retries = 0; + } else { + this.retries += 1; + console.log("Retrying to build circuit, retry#: " + this.retries); + + let ports = [80, 443]; + + if (!ports.includes(this.port)) { + ports.push(this.port); } - } - else { - request.state = lnn.state.success - } - } - if (cell.cmd == "data") - { - var data = request.data - request.data = new Uint8Array(data.length + cell.data.length) - request.data.set(data, 0) - request.data.set(cell.data, data.length) - } - if(cell.cmd == "sendme") { - request.deliverywindow += 50 - while(request.deliverywindow > 0 && request.tosend.length > 0) { - var cell = request.tosend.shift() - request.endpoint.stream.send(cell,request.endpoint) - request.deliverywindow -= 1 + lnn.open( + this.endpoint.host, + this.endpoint.port, + this.success_on_open, + this.error_on_open, + undefined, + this.endpoint.fast, + this.endpoint.auth, + this.endpoint.select_path, + ports + ); } + } else { + this.state = lnn.state.success; } + } + if (cell.cmd == "data") { + const data = this.data; + this.data = new Uint8Array(data.length + cell.data.length); + this.data.set(data, 0); + this.data.set(cell.data, data.length); + } + if (cell.cmd == "sendme") { + this.deliverywindow += 50; + while (this.deliverywindow > 0 && this.tosend.length > 0) { + const ncell = this.tosend.shift(); + this.endpoint.stream.send(ncell, this.endpoint); + this.deliverywindow -= 1; + } + } - handler(request) - if (cell.cmd == "connected") - request.state = lnn.state.pending - }, - success_on_open: function(endp) { - if(endp.consensus == null) - endp.consensus = request.endpoint.consensus - if(endp.descriptors == null) - endp.descriptors = request.endpoint.descriptors - if(endp.consensus_raw == null) - endp.consensus_raw = request.endpoint.consensus_raw - if(endp.descriptors_raw == null) - endp.descriptors_raw = request.endpoint.descriptors_raw - if(endp.signing_keys == null) - endp.signing_keys = request.endpoint.signing_keys - - request.endpoint = endp - - var id = request.endpoint.stream.register(request) - var data = lnn.relay.begin(host, port) - var cell = lnn.onion.build(request.endpoint, "begin", id, data) - request.endpoint.io.send(cell) - - handler(request) - }, - error_on_open: function(error_msg) { - throw error_msg + this.handler(this); + if (cell.cmd == "connected") { + this.state = lnn.state.pending; } } - // WL: Get new identifier for stream? - var id = endPoint.stream.register(request) + recv() { + const data = this.data; + this.data = new Uint8Array(0); + return data; + } - // WL: Create a BEGIN package containing host and port of the server? - var data = lnn.relay.begin(host, port) + close() { + let data = new Uint8Array(1); + data[0] = 6; // reason done + const cell = onion.build(this.endpoint, "end", this.id, data); + this.endpoint.io.send(cell); + } - // WL: Construct the cell around it? - var cell = lnn.onion.build(endpoint, "begin", id, data) + success_on_open(endp) { + if (endp.consensus === null) + endp.consensus = this.endpoint.consensus; + if (endp.descriptors === null) + endp.descriptors = this.endpoint.descriptors; + if (endp.consensus_raw === null) + endp.consensus_raw = this.endpoint.consensus_raw; + if (endp.descriptors_raw === null) + endp.descriptors_raw = this.endpoint.descriptors_raw; + if (endp.signing_keys === null) + endp.signing_keys = this.endpoint.signing_keys; + + this.endpoint = endp; + + const id = this.endpoint.stream.register(this); + const data = lnn.relay.begin(this.host, this.port); + const cell = lnn.onion.build(this.endpoint, "begin", id, data); + this.endpoint.io.send(cell); + + this.handler(this); + } - // WL: Send that sell to start the process? - endpoint.io.send(cell) - handler(request) - return request + error_on_open(error_msg) { + throw error_msg; + } } + +stream.handler = function (endpoint, cell) { + stream.entrancy += 1; + if (stream.entrancy > 1) { + console.log("ENTRANCY BUG"); + } + + if (cell[4] != 3) { // (relay cell only) + console.log("Got non-relay cell, dropped: ", cell[4]); + stream.entrancy -= 1; + return; + } + + cell = onion.peel(endpoint, cell) + if (cell === null) { + console.log("Got invalid cell, dropped."); + stream.entrancy -= 1; + return; + } + + if (!(cell.stream_id in endpoint.stream.handles)) { + console.log("Got cell outside stream, dropped: ", cell.stream_id); + stream.entrancy -= 1; + return; + } + + let handle = endpoint.stream.handles[cell.stream_id]; + if (cell.cmd == "end") + delete endpoint.stream.handles[cell.stream_id]; + + handle.cell = cell; + handle.callback(cell, endpoint); + + /* handle circuit-level sendme */ + + + if (cell.cmd == "data") { + endpoint.stream.packagewindow -= 1; + } + console.log('Update window: ', endpoint.stream.packagewindow); + if (endpoint.stream.packagewindow < 900) { + //console.log("Circuit window is ", endpoint.stream.packagewindow) + //console.log("Sending circuit level sendme cell now ", endpoint.io.counter) + endpoint.io.send(onion.build(endpoint, 'sendme')); + endpoint.stream.packagewindow += 100; + } + + /* handle stream-level sendme */ + if (cell.cmd == "data") { + handle.packagewindow -= 1; + } + if (handle.packagewindow < 450) { + //console.log("Stream window is ", handle.packagewindow) + //console.log("Sending stream level sendme cell now ", endpoint.io.counter) + cell = onion.build(endpoint, 'sendme', handle.id); + endpoint.io.send(cell); + handle.packagewindow += 50; + } + + stream.entrancy -= 1; +}; + +stream.backend = (error) => new Backend(error); +stream.raw = (endpoint, handler) => new Raw(endpoint, handler); +stream.dir = (endpoint, path, handler) => new Dir(endpoint, path, handler); +stream.tcp = (endPoint, host, port, handler) => new TCP(endPoint, host, port, handler); + +export { stream }; \ No newline at end of file diff --git a/js-client/src/test/util.test.js b/js-client/src/test/util.test.js new file mode 100644 index 0000000..0c751e2 --- /dev/null +++ b/js-client/src/test/util.test.js @@ -0,0 +1,16 @@ +// Tests for util functions. + +import { assert } from "chai"; +import { enc, dec } from "../util.js"; + +describe("string char codes encoding and decoding", function () { + it("should encode then decode to the same string", function () { + let tt = [ + "", "non empty", "unicode ☑️" + ] + + for (const tc in tt) { + assert.equal(enc.bin(dec.bin(tc)), tc); + } + }); +}); \ No newline at end of file diff --git a/js-client/src/util.js b/js-client/src/util.js index ec7c426..565d3b9 100644 --- a/js-client/src/util.js +++ b/js-client/src/util.js @@ -1,26 +1,54 @@ -lnn.enc = {} -lnn.enc.bits = sjcl.codec.bytes.toBits -lnn.enc.utf8 = nacl.util.encodeUTF8 -lnn.enc.base64 = nacl.util.encodeBase64 -lnn.enc.bin = function(data) -{ - var str = "" - for(var idx = 0; idx < data.length; idx++) - str += String.fromCharCode(data[idx]) - return str -} +/** + * Utility functions used in the lightnion js-client module. + * + * @module utils + */ + +import { sjcl } from "../vendor/sjcl.js"; +import naclutil from "tweetnacl-util"; + +/** + * Encoding functions. + */ +export class enc { + static get bits() { return sjcl.codec.bytes.toBits; } + static get utf8() { return naclutil.encodeUTF8; } + static get base64() { return naclutil.encodeBase64; } -lnn.dec = {} -lnn.dec.bits = function(data) -{ - return new Uint8Array(sjcl.codec.bytes.fromBits(data)) + /** + * Return a function transforming an array of char codes to its string. + */ + static get bin() { + return function (data) { + var str = "" + for (var idx = 0; idx < data.length; idx++) + str += String.fromCharCode(data[idx]) + return str + } + } } -lnn.dec.utf8 = nacl.util.decodeUTF8 -lnn.dec.base64 = nacl.util.decodeBase64 -lnn.dec.bin = function(str) -{ - var data = new Uint8Array(str.length) - for(var idx = 0; idx < str.length; idx++) - data[idx] = str.charCodeAt(idx) - return data + +/** + * Decoding functions. + */ +export class dec { + static get bits() { + return function (data) { + return new Uint8Array(sjcl.codec.bytes.fromBits(data)); + } + } + static get utf8() { return naclutil.decodeUTF8; } + static get base64() { return naclutil.decodeBase64; } + + /** + * Return a function transforming a string to its array of char codes. + */ + static get bin() { + return function (str) { + var data = new Uint8Array(str.length) + for (var idx = 0; idx < str.length; idx++) + data[idx] = str.charCodeAt(idx) + return data + } + } } diff --git a/js-client/tweetnacl-js b/js-client/tweetnacl-js deleted file mode 160000 index ae93137..0000000 --- a/js-client/tweetnacl-js +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ae93137a7244c4713a2f85878a41eff9a7d2146b diff --git a/js-client/tweetnacl-util-js b/js-client/tweetnacl-util-js deleted file mode 160000 index 7be17e4..0000000 --- a/js-client/tweetnacl-util-js +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7be17e460bfb96660c9d7b55f6a7ba1cc5f58dc9 diff --git a/lightnion/__init__.py b/lightnion/__init__.py index dec53af..a647632 100644 --- a/lightnion/__init__.py +++ b/lightnion/__init__.py @@ -2,18 +2,8 @@ import lightnion.constants import lightnion.crypto -import lightnion.cell - -import lightnion.cache -import lightnion.socket - -import lightnion.link -import lightnion.create -import lightnion.onion -import lightnion.hop import lightnion.consensus import lightnion.descriptors -import lightnion.extend import lightnion.signature diff --git a/lightnion/cache.py b/lightnion/cache.py deleted file mode 100644 index 4f972e9..0000000 --- a/lightnion/cache.py +++ /dev/null @@ -1,111 +0,0 @@ -import os -import time -import json -import shutil -import base64 -import logging - -cache_directory = '.lightnion-cache.d' - -def directory(base_dir=None): - if base_dir is None: - base_dir = os.getcwd() - base_dir = os.path.join(base_dir, cache_directory) - - if not os.path.isdir(base_dir): - logging.info( - 'Note: creating {} to cache descriptors.'.format(base_dir)) - os.mkdir(base_dir) - - if not os.path.isdir(base_dir): - raise RuntimeError( - 'Unable to fetch cache directory: {}'.format(base_dir)) - - return base_dir - -def purge(): - base_dir = directory() - logging.warning('Note: removing {} to purge cache.'.format(base_dir)) - shutil.rmtree(base_dir) - -class descriptors: - @staticmethod - def filename(descriptor, get=False): - base_dir = 'descriptors' - if 'micro' in descriptor['flavor']: - base_dir = 'micro-' + base_dir - base_dir = os.path.join(directory(), base_dir) - - if not os.path.isdir(base_dir): - os.mkdir(base_dir) - - field = 'digest' - if 'micro' in descriptor['flavor']: - field = 'micro-digest' - - digest = descriptor[field] - if (not get) or 'micro' in descriptor['flavor']: - digest = base64.b64decode(descriptor[field] + '====').hex() - - half_dir = os.path.join(base_dir, digest[:2]) - if not os.path.isdir(half_dir): - os.mkdir(half_dir) - - return os.path.join(half_dir, digest) - - @staticmethod - def put(descriptor): - filename = descriptors.filename(descriptor) - if os.path.isfile(filename): - return - with open(filename, 'w') as f: - json.dump(descriptor, f) - - @staticmethod - def get(flavor, digest): - field = 'digest' - if 'micro' in flavor: - field = 'micro-digest' - - descriptor = {'flavor': flavor, field: digest} - filename = descriptors.filename(descriptor, get=True) - with open(filename, 'r') as f: - descriptor = json.load(f) - - if not descriptor['flavor'] == flavor: - raise ValueError('Mismatched flavor.') - - new_digest = descriptor[field] - if not 'micro' in field: - new_digest = base64.b64decode(new_digest + '====').hex() - - if not new_digest == digest: - raise ValueError('Mismatched digest.') - - return descriptor - -class consensus: - @staticmethod - def filename(flavor): - return os.path.join(directory(), 'consensus-{}'.format(flavor)) - - @staticmethod - def put(fields): - filename = consensus.filename(fields['flavor']) - with open(filename, 'w') as f: - json.dump(fields, f) - - @staticmethod - def get(flavor): - filename = consensus.filename(flavor) - with open(filename, 'r') as f: - fields = json.load(f) - - if not fields['flavor'] == flavor: - raise ValueError('Mismatched flavor.') - - if fields['headers']['valid-until']['stamp'] < time.time(): - raise ValueError('Consensus need to be refreshed: {} < {}'.format( - fields['headers']['valid-until']['stamp'], time.time())) - - return fields diff --git a/lightnion/cell/__init__.py b/lightnion/cell/__init__.py deleted file mode 100644 index 17c0f0e..0000000 --- a/lightnion/cell/__init__.py +++ /dev/null @@ -1,89 +0,0 @@ -from .. import constants -from . import view - -class cmd(view.enum(1)): - PADDING = 0x00 - CREATE = 0x01 - CREATED = 0x02 - RELAY = 0x03 - DESTROY = 0x04 - CREATE_FAST = 0x05 - CREATED_FAST = 0x06 - VERSIONS = 0x07 - NETINFO = 0x08 - RELAY_EARLY = 0x09 - CREATE2 = 0x0a - CREATED2 = 0x0b - PADDING_NEGOTIATE = 0x0c - VPADDING = 0x80 - CERTS = 0x81 - AUTH_CHALLENGE = 0x82 - AUTHENTICATE = 0x83 - AUTHORIZE = 0x84 - - @property - def is_fixed(self): - return not self.is_variable - - @property - def is_variable(self): - if bool(0x80 & self._value_): - return True - return self._value_ == int(cmd.VERSIONS) - -header_view = view.fields( - circuit_id=view.uint(4), cmd=cmd) -header_legacy_view = view.fields( - circuit_id=view.uint(2), cmd=cmd, length=view.cache(view.uint, init=[2])) -header_variable_view = view.fields( - circuit_id=view.uint(4), cmd=cmd, length=view.cache(view.uint, init=[2])) - -class cell_view(view.packet): - _whitelist = [header_view, header_legacy_view, header_variable_view] - def __init__(self, header): - if header not in self._whitelist: - raise ValueError('Invalid header type: {}'.format(header)) - super().__init__(header_view=header, fixed_size=constants.payload_len) - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd.is_fixed == self.fixed_size - -variable_size = view.like(cell_view(header_variable_view), 'variable_size') -legacy_size = view.like(cell_view(header_legacy_view), 'legacy_size') -fixed_size = view.like(cell_view(header_view), 'fixed_size') - -header = view.like(header_view, 'header') -header_legacy = view.like(header_legacy_view, 'header_legacy') -header_variable = view.like(header_variable_view, 'header_variable') - -def pad(payload): - try: - payload = payload.raw - except AttributeError: - pass - - cell_header = header(payload) - if not cell_header.valid: - raise RuntimeError('Invalid cell header: {}'.format(cell_header.raw)) - - length = constants.payload_len + cell_header.width - if not cell_header.cmd.is_fixed: - cell_header = header_variable(payload) - if not cell_header.valid: - raise RuntimeError( - 'Invalid variable cell header: {}'.format(cell_header.raw)) - - length = cell_header.length + cell_header.width - if length > constants.max_payload_len: - raise RuntimeError('Invalid cell length: {}'.format(length)) - - return payload.ljust(length, b'\x00') - -from . import address -from . import ( - padding, relay, destroy, create_fast, created_fast, versions, netinfo, - relay_early, create2, created2, certs, challenge) diff --git a/lightnion/cell/address.py b/lightnion/cell/address.py deleted file mode 100644 index c6c25cb..0000000 --- a/lightnion/cell/address.py +++ /dev/null @@ -1,55 +0,0 @@ -from . import view as _view - -import ipaddress - -class addr_type(_view.enum(1, cached=True)): - HOSTNAME = 0x00 - IPV4_ADDR = 0x04 - IPV6_ADDR = 0x06 - ERROR_TRANS = 0xF0 - ERROR_NON_TRANS = 0xF1 - -header_view = _view.fields(**{ - 'type': addr_type, - 'length': _view.cache(_view.uint, init=[1])}) - -class address_view(_view.packet): - _default_extra_fields = ['type'] - _default_header_view = header_view - _default_data_name = 'host' - - def __init__(self, *kargs, **kwargs): - super().__init__(*kargs, **kwargs) - - length = self.header._fields['length'] - self._fields['host'] = _view.union( - view_table={ - addr_type.HOSTNAME: _view.codec('utf8', size=length), - addr_type.IPV4_ADDR: _view.ip_address(version=4), - addr_type.IPV6_ADDR: _view.ip_address(version=6), - addr_type.ERROR_TRANS: _view.data(length), - addr_type.ERROR_NON_TRANS: _view.data(length) - }, union_tag=self.header._fields['type']) - -view = address_view() -address = _view.like(view, 'address') - -def pack(host, type_hint=None): - if type_hint is None: - try: - ipaddress.IPv4Address(host) - type_hint = addr_type.IPV4_ADDR - except ValueError: - ipaddress.IPv6Address(host) - type_hint = addr_type.IPV6_ADDR - - base = address(b'') - base.header.set(**{'type': type_hint, 'length': 0}) - - length = base._view.host.width() - if length == 0: - length = len(host) - base.header.set(length=length) - - base.set(host=host) - return base diff --git a/lightnion/cell/certs.py b/lightnion/cell/certs.py deleted file mode 100644 index a9b028c..0000000 --- a/lightnion/cell/certs.py +++ /dev/null @@ -1,42 +0,0 @@ -from .. import cell as _cell -from . import view as _view - -class cert_type(_view.enum(1)): - RSA_SIGNED_LINK_KEY = 0x01 - RSA_SELF_SIGNED_IDENTITY = 0x02 - RSA_SIGNED_AUTHENTICATE = 0x03 - ED_SIGNED_SIGNING_KEY = 0x04 - ED_SIGNED_TLS_LINK = 0x05 - ED_SIGNED_AUTHENTICATE = 0x06 - RSA_SIGNED_ED_IDENTITY = 0x07 - -cert_header_view = _view.fields( - **{'type': cert_type, 'clen': _view.cache(_view.uint, init=[2])}) -cert_view = _view.packet(header_view=cert_header_view, field_name='clen') - -certs_header_view = _view.fields(quantity=_view.cache(_view.uint, init=[1])) -class _certs_view(_view.packet): - _default_header_view = certs_header_view - _default_field_name = 'quantity' - _default_data_name = 'listing' - - def __init__(self, **kwargs): - super().__init__(**kwargs) - self._fields['listing'] = _view.series(cert_view, - self._fields['header'].quantity) - -certs_view = _certs_view() -class cell_view(_view.packet): - _default_header_view = _cell.header_variable_view - _default_data_name = 'certs' - _default_data_view = certs_view - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd == _cell.cmd.CERTS - -view = cell_view() -cell = _view.like(view, 'certs_cell') diff --git a/lightnion/cell/challenge.py b/lightnion/cell/challenge.py deleted file mode 100644 index e53d3d6..0000000 --- a/lightnion/cell/challenge.py +++ /dev/null @@ -1,49 +0,0 @@ -from .. import cell as _cell -from . import view as _view -from . import common - -import os - -class auth_type(_view.enum(2)): - RSA_AUTH = 0x01 - ED_AUTH = 0x03 - -auth_header_view = _view.fields( - challenge=_view.data(32), - quantity=common.length_halved_view(2)) - -class _auth_view(_view.packet): - _default_header_view = auth_header_view - _default_data_name = 'methods' - _max_size = 2 * auth_type.width() - - def __init__(self, *kargs, **kwargs): - super().__init__(*kargs, **kwargs) - self._fields['methods'] = _view.series( - auth_type, self._fields['header'].quantity) - -auth_view = _auth_view() -class cell_view(_view.packet): - _default_header_view = _cell.header_variable_view - _default_data_view = auth_view - _default_data_name = 'auth' - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd == _cell.cmd.AUTH_CHALLENGE - -view = cell_view() -cell = _view.like(view, 'auth_challenge_cell') - -def pack(*methods, challenge=None): - if challenge is None: - challenge = os.urandom(32) - - base = cell(b'') - base.header.set(circuit_id=0, cmd=_cell.cmd.AUTH_CHALLENGE, length=0) - base.auth.set(challenge=challenge, quantity=len(methods), methods=methods) - base.set(length=base.auth.width) - return base diff --git a/lightnion/cell/common.py b/lightnion/cell/common.py deleted file mode 100644 index 68d8e82..0000000 --- a/lightnion/cell/common.py +++ /dev/null @@ -1,16 +0,0 @@ -from . import view as _view - -class length_halved_view(_view.cache(_view.uint)): - def cache(self): - return super().cache() // 2 - - def iseven(self): - return bool(self._cache.value % 2 == 0) - - def write(self, payload=b'', value=None): - return super().write(payload, value * 2) - - def valid(self, payload=b''): - if not super().valid(payload): - return False - return self.value(payload) > 0 and self.cached() and self.iseven() diff --git a/lightnion/cell/create2.py b/lightnion/cell/create2.py deleted file mode 100644 index b0f29c5..0000000 --- a/lightnion/cell/create2.py +++ /dev/null @@ -1,34 +0,0 @@ -from .. import cell as _cell -from . import view as _view - -create_header_view = _view.fields(**{ - 'type': _cell.relay.extend2.handshake_type, - 'length': _view.cache(_view.uint, init=[2])}) - -class create_view(_view.packet): - _default_header_view = create_header_view - -class cell_view(_view.packet): - _default_header_view = _cell.header_view - _default_data_name = 'create2' - _default_data_view = create_view() - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd == _cell.cmd.CREATE2 - -view = cell_view() -cell = _view.like(view, 'create2_cell') - -def pack(circuit_id, handshake_data): - base = cell(b'') - base.set( - circuit_id=circuit_id, - cmd=_cell.cmd.CREATE2, - create2=dict(**{'type': _cell.relay.extend2.handshake_type.NTOR, - 'length': len(handshake_data), - 'data': handshake_data})) - return base diff --git a/lightnion/cell/create_fast.py b/lightnion/cell/create_fast.py deleted file mode 100644 index e91d625..0000000 --- a/lightnion/cell/create_fast.py +++ /dev/null @@ -1,33 +0,0 @@ -from .. import constants -from .. import cell as _cell -from . import view as _view - -import os - -create_fast_view = _view.fields(material=_view.data(constants.hash_len)) - -class cell_view(_view.packet): - _default_header_view = _cell.header_view - _default_data_name = 'create_fast' - _default_data_view = create_fast_view - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd == _cell.cmd.CREATE_FAST - -view = cell_view() -cell = _view.like(view, 'create_fast_cell') - -def pack(circuit_id, material=None): - if material is None: - material = os.urandom(constants.hash_len) - - base = cell(b'') - base.set( - circuit_id=circuit_id, - cmd=_cell.cmd.CREATE_FAST, - create_fast=dict(material=material)) - return base diff --git a/lightnion/cell/created2.py b/lightnion/cell/created2.py deleted file mode 100644 index afa8fd1..0000000 --- a/lightnion/cell/created2.py +++ /dev/null @@ -1,22 +0,0 @@ -from .. import cell as _cell -from . import view as _view - -created_header_view = _view.fields(length=_view.cache(_view.uint, init=[2])) - -class created_view(_view.packet): - _default_header_view = created_header_view - -class cell_view(_view.packet): - _default_header_view = _cell.header_view - _default_data_name = 'created2' - _default_data_view = created_view() - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd == _cell.cmd.CREATED2 - -view = cell_view() -cell = _view.like(view, 'created2_cell') diff --git a/lightnion/cell/created_fast.py b/lightnion/cell/created_fast.py deleted file mode 100644 index 14c7410..0000000 --- a/lightnion/cell/created_fast.py +++ /dev/null @@ -1,32 +0,0 @@ -from .. import constants - -from .. import cell as _cell -from . import view as _view - -import os - -created_fast_view = _view.fields(material=_view.data(constants.hash_len), - derivative=_view.data(constants.hash_len)) - -class cell_view(_view.packet): - _default_header_view = _cell.header_view - _default_data_name = 'created_fast' - _default_data_view = created_fast_view - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd == _cell.cmd.CREATED_FAST - -view = cell_view() -cell = _view.like(view, 'created_fast_cell') - -def pack(circuit_id, material, derivative): - base = cell(b'') - base.set( - circuit_id=circuit_id, - cmd=_cell.cmd.CREATED_FAST, - created_fast=dict(material=material, derivative=derivative)) - return base diff --git a/lightnion/cell/destroy.py b/lightnion/cell/destroy.py deleted file mode 100644 index bba0d36..0000000 --- a/lightnion/cell/destroy.py +++ /dev/null @@ -1,37 +0,0 @@ -from .. import cell as _cell -from . import view as _view - -class reason(_view.enum(1)): - NONE = 0x00 - PROTOCOL = 0x01 - INTERNAL = 0x02 - REQUESTED = 0x03 - HIBERNATING = 0x04 - RESOURCELIMIT = 0x05 - CONNECTFAILED = 0x06 - OR_IDENTITY = 0x07 - OR_CONN_CLOSED = 0x08 - FINISHED = 0x09 - TIMEOUT = 0x0a - DESTROYED = 0x0b - NOSUCHSERVICE = 0x0c - -class cell_view(_view.packet): - _default_header_view = _cell.header_view - _default_data_name = 'reason' - _default_data_view = reason - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd == _cell.cmd.DESTROY - -view = cell_view() -cell = _view.like(view, 'destroy_cell') - -def pack(circuit_id, reason): - base = cell(b'') - base.set(circuit_id=circuit_id, cmd=_cell.cmd.DESTROY, reason=reason) - return base diff --git a/lightnion/cell/netinfo.py b/lightnion/cell/netinfo.py deleted file mode 100644 index 1791111..0000000 --- a/lightnion/cell/netinfo.py +++ /dev/null @@ -1,64 +0,0 @@ -from .. import cell as _cell -from . import view as _view - -import time - -netinfo_header_view = _view.fields(timestamp=_view.uint(4), - other=_cell.address.view, quantity=_view.cache(_view.uint, init=[1])) - -class _netinfo_view(_view.packet): - _default_header_view = netinfo_header_view - _default_field_name = 'quantity' - _default_data_name = 'addresses' - - _addr_type_whitelist = [ - _cell.address.addr_type.IPV4_ADDR, _cell.address.addr_type.IPV6_ADDR] - - def __init__(self, **kwargs): - super().__init__(**kwargs) - self._fields['addresses'] = _view.series(_cell.address.view, - self._fields['header'].quantity) - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - number = self.header.value(payload, field='quantity') - offset = self.offset(payload, field='addresses') - for i in range(number): - roff = self.addresses.offset(payload[offset:], field=i) - addr = self.addresses.item.type.value(payload[offset+roff:]) - if addr not in self._addr_type_whitelist: - return False - return True - -netinfo_view = _netinfo_view() -class cell_view(_view.packet): - _default_header_view = _cell.header_view - _default_data_name = 'netinfo' - _default_data_view = netinfo_view - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd == _cell.cmd.NETINFO - -view = cell_view() -cell = _view.like(view, 'netinfo_cell') - -def pack(other_address, *addresses, timestamp=None): - if timestamp is None: - timestamp = int(time.time()) - - base = cell(b'') - base.set( - circuit_id=0, - cmd=_cell.cmd.NETINFO, - netinfo=dict( - timestamp=timestamp, - other=_cell.address.pack(other_address).value(), - quantity=len(addresses), - addresses=[_cell.address.pack(a).value() for a in addresses])) - return base diff --git a/lightnion/cell/padding.py b/lightnion/cell/padding.py deleted file mode 100644 index 4b42e59..0000000 --- a/lightnion/cell/padding.py +++ /dev/null @@ -1,21 +0,0 @@ -from .. import cell as _cell -from . import view as _view - -class cell_view(_view.packet): - _default_header_view = _cell.header_view - _default_fixed_size = 0 - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd == _cell.cmd.PADDING - -view = cell_view() -cell = _view.like(view, 'padding_cell') - -def pack(): - base = cell(b'') - base.set(circuit_id=0, cmd=_cell.cmd.PADDING) - return base diff --git a/lightnion/cell/relay/__init__.py b/lightnion/cell/relay/__init__.py deleted file mode 100644 index 9c0dfda..0000000 --- a/lightnion/cell/relay/__init__.py +++ /dev/null @@ -1,147 +0,0 @@ -from ... import constants - -from ... import cell as _cell -from .. import view as _view - -payload_len = constants.payload_len - 11 - -class cmd(_view.enum(1)): - RELAY_BEGIN = 0x01 - RELAY_DATA = 0x02 - RELAY_END = 0x03 - RELAY_CONNECTED = 0x04 - RELAY_SENDME = 0x05 - RELAY_EXTEND = 0x06 - RELAY_EXTENDED = 0x07 - RELAY_TRUNCATE = 0x08 - RELAY_TRUNCATED = 0x09 - RELAY_DROP = 0x0a - RELAY_RESOLVE = 0x0b - RELAY_RESOLVED = 0x0c - RELAY_BEGIN_DIR = 0x0d - RELAY_EXTEND2 = 0x0e - RELAY_EXTENDED2 = 0x0f - - @property - def is_forward(self): - return self in [ - cmd.RELAY_BEGIN, - cmd.RELAY_DATA, - cmd.RELAY_END, - cmd.RELAY_SENDME, - cmd.RELAY_EXTEND, - cmd.RELAY_TRUNCATE, - cmd.RELAY_DROP, - cmd.RELAY_RESOLVE, - cmd.RELAY_BEGIN_DIR, - cmd.RELAY_EXTEND2] - - @property - def is_backward(self): - return self in [ - cmd.RELAY_DATA, - cmd.RELAY_END, - cmd.RELAY_CONNECTED, - cmd.RELAY_SENDME, - cmd.RELAY_EXTENDED, - cmd.RELAY_TRUNCATED, - cmd.RELAY_DROP, - cmd.RELAY_RESOLVED, - cmd.RELAY_EXTENDED2] - - @property - def is_circuit(self): - return self in [ - cmd.RELAY_BEGIN, - cmd.RELAY_DATA, - cmd.RELAY_END, - cmd.RELAY_CONNECTED, - cmd.RELAY_SENDME, - cmd.RELAY_RESOLVE, - cmd.RELAY_RESOLVED, - cmd.RELAY_BEGIN_DIR] - - @property - def is_control(self): - return self in [ - cmd.RELAY_SENDME, - cmd.RELAY_EXTEND, - cmd.RELAY_EXTENDED, - cmd.RELAY_TRUNCATE, - cmd.RELAY_TRUNCATED, - cmd.RELAY_DROP, - cmd.RELAY_EXTEND2, - cmd.RELAY_EXTENDED2] - -relay_header_view = _view.fields( - cmd=cmd, - recognized=_view.data(2), - stream_id=_view.uint(2), - digest=_view.data(4), - length=_view.cache(_view.uint, init=[2])) - -class relay_view(_view.packet): - _default_header_view = relay_header_view - _max_size = payload_len - - def valid(self, payload=b''): - if not self.header.valid(payload): - return False - - if not self.header.value(payload, 'recognized') == b'\x00\x00': - return True - - return super().valid(payload) - -payload_view = relay_view() -payload = _view.like(payload_view, 'relay_payload') - -class cell_view(_view.packet): - _default_data_view = payload_view - _default_data_name = 'relay' - _default_fixed_size = constants.payload_len - _default_header_view = _cell.header_view - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - if not cell_cmd == _cell.cmd.RELAY: - return False - - offset = self.offset(payload, field='relay') - circuit_id = self.header.value(payload, field='circuit_id') - relay_cmd = self.relay.header.value(payload[offset:], field='cmd') - if circuit_id == 0 and not relay_cmd.is_control: - return False - return True - -view = cell_view() -cell = _view.like(view, 'relay_cell') - -def _pack_details(base, cmd, recognized, stream_id, digest, data): - base.relay.header.set( - cmd=cmd, - recognized=recognized, - stream_id=stream_id, - digest=digest, - length=len(data)) - base.set(relay=dict(data=data)) - - # Preemptively add \x00 padding (as it is included within digests) - base.relay.raw = base.relay.raw.ljust(constants.payload_len, b'\x00') - if not base.valid: - raise RuntimeError( - 'Invalid RELAY cell after padding: {}'.format(base.raw)) - - return base - -def pack(circuit_id, cmd, data, recognized=b'\x00\x00', *, stream_id, digest): - base = cell(b'') - base.header.set( - circuit_id=circuit_id, - cmd=_cell.cmd.RELAY) - return _pack_details(base, cmd, recognized, stream_id, digest, data) - -from . import extend2, extended2 diff --git a/lightnion/cell/relay/extend2.py b/lightnion/cell/relay/extend2.py deleted file mode 100644 index 328c018..0000000 --- a/lightnion/cell/relay/extend2.py +++ /dev/null @@ -1,116 +0,0 @@ -import base64 - -from ... import cell as _cell -from .. import view as _view - -class linkspec_type(_view.enum(1, cached=True)): - TLS_TCP_4 = 0x00 - TLS_TCP_6 = 0x01 - LEGACY_ID = 0x02 - ED_ID = 0x03 - -linkspec_header_view = _view.fields(**{ - 'type': linkspec_type, - 'length': _view.cache(_view.uint, init=[1])}) - -class linkspec_view(_view.packet): - _default_extra_fields = ['type'] - _default_header_view = linkspec_header_view - - def __init__(self, *kargs, **kwargs): - super().__init__(*kargs, **kwargs) - - self._fields['data'] = _view.union( - view_table={ - linkspec_type.TLS_TCP_4: _view.fields( - addr=_view.ip_address(version=4), port=_view.uint(2)), - linkspec_type.TLS_TCP_6: _view.fields( - addr=_view.ip_address(version=6), port=_view.uint(2)), - linkspec_type.LEGACY_ID: _view.data(20), - linkspec_type.ED_ID: _view.data(32) - }, union_tag=self.header._fields['type']) -linkspec = _view.like(linkspec_view(), 'linkspec') - -linkspecs_header_view = _view.fields( - quantity=_view.cache(_view.uint, init=[1])) - -class linkspecs_view(_view.packet): - _default_header_view = linkspecs_header_view - _default_field_name = 'quantity' - _default_data_name = 'specs' - - def __init__(self, *kargs, **kwargs): - super().__init__(*kargs, **kwargs) - self._fields['specs'] = _view.series(linkspec_view(), - self._fields['header'].quantity) - -class handshake_type(_view.enum(2)): - # TAP = 0x0001 # TODO: add support for TAP handshakes? - NTOR = 0x0002 - -extend2_header_view = _view.fields(**{'link': linkspecs_view(), - 'type': handshake_type, 'length': _view.cache(_view.uint, init=[2])}) - -class extend2_view(_view.packet): - _default_header_view = extend2_header_view - -view = extend2_view() -payload = _view.like(view, 'extend2_payload') - -def _pack_linkspec_addr(addr, port): - addr = _cell.address.pack(addr) - - base = linkspec(b'') - if addr['type'] == _cell.address.addr_type.IPV4_ADDR: - base.type = linkspec_type.TLS_TCP_4 - elif addr['type'] == _cell.address.addr_type.IPV6_ADDR: - base.type = linkspec_type.TLS_TCP_6 - else: - raise RuntimeError('Invalid address: {}'.format(addr)) - - base.length = 0 - base.data.addr = addr.host - base.data.port = port - - base.set(length=base.data.width) - return base - -def _pack_linkspec_identity(identity): - if isinstance(identity, str): - identity = base64.b64decode(identity + '====') - - base = linkspec(b'') - if len(identity) == 20: - base.type = linkspec_type.LEGACY_ID - elif len(identity) == 32: - base.type = linkspec_type.ED_ID - else: - raise RuntimeError('Invalid identity: {}'.format(identity)) - - base.length = 0 - base.data = identity - - base.set(length=len(identity)) - return base - -def pack(handshake, addresses=[], identities=[]): - if len(addresses) < 1: - raise RuntimeError('Expect at least one address!') - if len(identities) > 2: - raise RuntimeError('Expect at most two identities!') - - specs = [] - for addr, port in addresses: - specs.append(_pack_linkspec_addr(addr, port).value()) - - for identity in identities: - specs.append(_pack_linkspec_identity(identity).value()) - - if not any([s['type'] == linkspec_type.ED_ID for s in specs]): - raise RuntimeError('Require at least one ed25519 identity!') - - base = payload(b'') - base.header.link.set(quantity=len(specs), specs=specs) - base.header.set(**{'type': handshake_type.NTOR, 'length': len(handshake)}) - base.set(data=handshake) - return base diff --git a/lightnion/cell/relay/extended2.py b/lightnion/cell/relay/extended2.py deleted file mode 100644 index 92b8112..0000000 --- a/lightnion/cell/relay/extended2.py +++ /dev/null @@ -1,10 +0,0 @@ -from ... import cell as _cell -from .. import view as _view - -extended2_header_view = _view.fields(length=_view.cache(_view.uint, init=[2])) - -class extended2_view(_view.packet): - _default_header_view = extended2_header_view - -view = extended2_view() -payload = _view.like(view, 'extended2_payload') diff --git a/lightnion/cell/relay_early.py b/lightnion/cell/relay_early.py deleted file mode 100644 index e9a3825..0000000 --- a/lightnion/cell/relay_early.py +++ /dev/null @@ -1,37 +0,0 @@ -from .. import constants - -from .. import cell as _cell -from . import view as _view - -from . import relay - -class cell_view(_view.packet): - _default_data_view = relay.payload_view - _default_data_name = 'relay' - _default_fixed_size = constants.payload_len - _default_header_view = _cell.header_view - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - if not cell_cmd == _cell.cmd.RELAY_EARLY: - return False - - offset = self.offset(payload, field='relay') - circuit_id = self.header.value(payload, field='circuit_id') - relay_cmd = self.relay.header.value(payload[offset:], field='cmd') - if circuit_id == 0 and not relay_cmd.is_control: - return False - return True - -view = cell_view() -cell = _view.like(view, 'relay_early_cell') - -def pack(circuit_id, cmd, data, recognized=b'\x00\x00', *, stream_id, digest): - base = cell(b'') - base.header.set( - circuit_id=circuit_id, - cmd=_cell.cmd.RELAY_EARLY) - return relay._pack_details(base, cmd, recognized, stream_id, digest, data) diff --git a/lightnion/cell/versions.py b/lightnion/cell/versions.py deleted file mode 100644 index d4b9478..0000000 --- a/lightnion/cell/versions.py +++ /dev/null @@ -1,68 +0,0 @@ -from .. import constants -from . import common - -from .. import cell as _cell -from . import view as _view - -header_view = _view.fields( - circuit_id=_view.uint(2), - cmd=_cell.cmd, - length=common.length_halved_view(2)) - -class cell_view(_view.packet): - def __init__(self, header=header_view): - super().__init__(header_view=header, data_name='versions') - self._fields['versions'] = _view.series( - _view.uint(2), header.length) - self._max_size = 64 * 2 - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - cell_cmd = self.header.value(payload, field='cmd') - return cell_cmd == _cell.cmd.VERSIONS - -view = cell_view() -cell = _view.like(view, 'versions_cell') -header = _view.like(header_view, 'versions_header') - -def pack(versions): - vercell = cell(b'') - vercell.header.set( - circuit_id=0, - cmd=_cell.cmd.VERSIONS, - length=len(versions)) - vercell.set(versions=versions) - return vercell - -def recv(peer): - answer = peer.recv(_cell.header_legacy_view.width()) - - header = _cell.header_legacy(answer) - if not header.valid: - raise RuntimeError('Invalid v2 cell header: {}'.format(header.raw)) - if not header.cmd == _cell.cmd.VERSIONS: - raise RuntimeError('Expecting VERSIONS, got: {}'.format(header.cmd)) - - length = header.length - if length > constants.max_payload_len: - raise RuntimeError('VERSIONS cell too long: {}'.format(header.length)) - - answer += peer.recv(length) - if not view.valid(answer): - raise RuntimeError('Invalid VERSIONS cell: {}'.format(answer)) - - return cell(answer) - -def send(peer, payload): - try: - payload = payload.raw - except AttributeError: - pass - - vercell = cell(payload) - if not vercell.valid: - raise RuntimeError('VERSIONS cell invalid: {}'.format(payload)) - - return peer.sendall(payload) diff --git a/lightnion/cell/view.py b/lightnion/cell/view.py deleted file mode 100644 index 9930091..0000000 --- a/lightnion/cell/view.py +++ /dev/null @@ -1,887 +0,0 @@ -import collections -import threading -import ipaddress -import inspect -import codecs -import enum as _enum - -class basic: - def width(self, payload=b''): - raise NotImplementedError - - def valid(self, payload=b''): - raise NotImplementedError - - def value(self, payload=b'', field=None): - raise NotImplementedError - - def write(self, payload=b'', value=None, **kwargs): - raise NotImplementedError - - def __contains__(self, field): - return False - -class composite(basic): - def write(self, payload=b'', value=None, **kwargs): - raise NotImplementedError - - def __len__(self): - raise NotImplementedError - - def __contains__(self, field): - raise NotImplementedError - - def __getitem__(self, field): - raise NotImplementedError - -class uint(basic): - def __init__(self, size, byteorder='big'): - if size < 1: - raise ValueError('Invalid uint size: {}'.format(size)) - if byteorder not in ['big', 'little']: - raise ValueError('Invalid uint byteorder: {}'.format(byteorder)) - self.byteorder = byteorder - self.size = size - - def width(self, payload=b''): - return self.size - - def valid(self, payload=b''): - return len(payload) >= self.size - - def value(self, payload=b'', field=None): - return int.from_bytes(payload[:self.size], byteorder=self.byteorder) - - def write(self, payload=b'', value=None, **kwargs): - value = int(value).to_bytes(self.size, byteorder=self.byteorder) - return value + payload[self.size:] - -def enum(size, byteorder='big', typename=None, cached=False): - if typename is not None and not typename.isidentifier(): - raise ValueError('Typename {} is not an identifier'.format(typename)) - - @_enum.unique - class _anonymous_enum(_enum.Enum): - def __new__(cls, value): - member = object.__new__(cls) - member._value_ = value - return member - - @classmethod - def width(cls, payload=b''): - return size - - @classmethod - def valid(cls, payload=b''): - if len(payload) < size: - return False - - try: - cls.value(payload) - return True - except ValueError: - return False - - def __int__(self): - return self._value_ - - @classmethod - def value(cls, payload=b'', field=None): - value = int.from_bytes(payload[:size], byteorder='big') - return cls(value) - - @classmethod - def write(cls, payload=b'', value=None, **kwargs): - value = int(cls(value)).to_bytes(size, byteorder='big') - return value + payload[size:] - - if cached: - class _anonymous_cached_enum(_anonymous_enum): - @classmethod - def cache(cls): - if not cls.cached(): - raise RuntimeError('Bounded value unknown at runtime: ' - + 'Have you called .value() of parent view yet?') - return cls._cache.value - - @classmethod - def cached(cls): - return cls._cache.value is not None - - @classmethod - def value(cls, payload=b'', field=None): - value = int.from_bytes(payload[:size], byteorder='big') - cls._cache.value = cls(value) - return cls.cache() - - @classmethod - def write(cls, payload=b'', value=None, **kwargs): - cls._cache.value = cls(value) - packed = int(cls.cache()).to_bytes(size, byteorder='big') - return packed + payload[size:] - - _anonymous_cached_enum._cache = threading.local() - _anonymous_cached_enum._cache.value = None - _anonymous_enum = _anonymous_cached_enum - - if typename is not None: - _anonymous_enum.__qualname__ = typename - return _anonymous_enum - -class data(basic): - def __init__(self, size): - if isinstance(size, int) and not size < 0: - fixed = True - elif isview(size) and iscached(size): - fixed = False - else: - raise ValueError('Invalid size: {}'.format(size)) - self.length = size - self.fixed = fixed - - @property - def size(self): - if self.fixed: - return self.length - return self.length.cache() - - def width(self, payload=b''): - return self.size - - def valid(self, payload=b''): - if not self.fixed and not self.length.cached(): - return False - return len(payload) >= self.size - - def value(self, payload=b'', field=None): - return payload[:self.size] - - def write(self, payload=b'', value=None, **kwargs): - if len(value) != self.size: - raise ValueError('Invalid value size: {} instead of {}'.format( - len(value), self.size)) - return value + payload[self.size:] - -class fields(composite): - def __init__(self, **kwargs): - for key, view in kwargs.items(): - if not isview(view): - raise TypeError('Field {} is not a view: {}'.format(key, view)) - self._fields = collections.OrderedDict(kwargs) - - def list_fields(self): - return list(self._fields) - - def visit(self, payload=b'', operator=lambda v, p: v.width(p)): - results = [] - for _, view in self._fields.items(): - width = view.width(payload) - results.append(operator(view, payload)) - payload = payload[width:] - return results - - def offset(self, payload=b'', field=None): - if field not in self: - raise ValueError('Field {} not in fields'.format(field)) - - offset = 0 - for key, view in self._fields.items(): - if key == field: - return offset - width = view.width(payload) - offset += width - payload = payload[width:] - - def width(self, payload=b''): - return sum(self.visit(payload, lambda v, p: v.width(p))) - - def valid(self, payload=b''): - for field, view in self._fields.items(): - if not view.valid(payload): - return False - width = view.width(payload) - payload = payload[width:] - return True - - def value(self, payload=b'', field=None): - if field is None: - values = self.visit(payload, lambda v, p: v.value(p)) - return {key: value - for (key, _), value in zip(self._fields.items(), values)} - - offset = self.offset(payload, field) - return self._fields[field].value(payload[offset:]) - - def write(self, payload=b'', value=None, **kwargs): - if len(kwargs) > 0: - if value is not None: - raise RuntimeError('Conflict: value and kwargs both given.') - value = kwargs - - for field, svalue in value.items(): - offset = self.offset(payload, field) - svalue = self._fields[field].write(payload[offset:], svalue) - payload = payload[:offset] + svalue - return payload - - def __len__(self): - return len(self._fields) - - def __contains__(self, field): - return field in self._fields - - def __getitem__(self, field): - return self.__getattr__(field) - - def __getattr__(self, field): - if field.startswith('__'): - raise AttributeError - return self._fields[field] - -class packet(fields): - _max_size = 1024 * 1024 - _default_extra_fields = None - _default_header_view = None - _default_field_name = 'length' - _default_fixed_size = 0 - _default_data_view = data - _default_data_name = 'data' - - def __init__(self, header_view=None, fixed_size=None, field_name=None, - data_name=None, data_view=None, extra_fields=None): - - if extra_fields is None: - extra_fields = self._default_extra_fields - if extra_fields is None: - extra_fields = [] - if header_view is None: - header_view = self._default_header_view - if field_name is None: - field_name = self._default_field_name - if fixed_size is None: - fixed_size = self._default_fixed_size - if data_view is None: - data_view = self._default_data_view - if data_name is None: - data_name = self._default_data_name - - if not isinstance(header_view, fields): - raise TypeError('Header not a view.fields: {}'.format(header_view)) - - self._fixed_size = True - if field_name in header_view: - self._fixed_size = False - extra_fields.append(field_name) - - if inspect.isclass(data_view): - if self._fixed_size: - data_view = data_view(fixed_size) - else: - data_view = data_view(header_view._fields[field_name]) - - if not isview(data_view): - raise TypeError('Data view not a view: {}'.format(data_view)) - - self._extra_fields = extra_fields - self._field_name = field_name - self._data_name = data_name - super().__init__(**{'header': header_view, data_name: data_view}) - - @property - def fixed_size(self): - return self._fixed_size - - def list_fields(self): - return list(self._fields) + self.header.list_fields() - - def cache_fields(self, payload=b'', value=None): - for field in self._extra_fields: - self.header.value(payload, field) - - def offset(self, payload=b'', field=None): - if field in self._fields: - return super().offset(payload, field=field) - return self.header.offset(payload, field=field) - - def width(self, payload=b''): - if len(self._extra_fields) > 0: - self.cache_fields(payload) - return super().width(payload) - - def valid(self, payload=b''): - if not self.header.valid(payload): - return False - if len(self._extra_fields) > 0: - self.cache_fields(payload) - if not self.fixed_size: - width = self.header.value(payload, self._field_name) - if width > self._max_size: - return False - return super().valid(payload) - - def value(self, payload=b'', field=None): - if field == self._data_name: - if len(self._extra_fields) > 0: - self.cache_fields(payload) - return super().value(payload, self._data_name) - elif field is None: - whole = self.header.value(payload, field=None) - whole[self._data_name] = self.value(payload, self._data_name) - return whole - return self.header.value(payload, field) - - def write(self, payload=b'', value=None, **kwargs): - if len(kwargs) > 0: - if value is not None: - raise RuntimeError('Conflict: value and kwargs both given.') - value = kwargs - - if 'header' in value: - payload = super().write(payload, header=value['header']) - value = dict(value) - del value['header'] - - if len(self._extra_fields) > 0 and self._data_name in value: - self.cache_fields(payload) - - if self._data_name in value: - if len(value) > 1: - headers = dict(value) - del headers[self._data_name] - payload = self.header.write(payload, headers) - - return super().write(payload, - **{self._data_name: value[self._data_name]}) - - return self.header.write(payload, value) - - def __len__(self): - return len(self.header) + 1 - - def __contains__(self, field): - return field in self._fields or field in self.header - - def __getitem__(self, field): - return self.__getattr__(field) - - def __getattr__(self, field): - if field.startswith('__'): - raise AttributeError - if field in ['header', self._data_name]: - return self._fields[field] - return self.header[field] - -class series(composite): - max_quantity = 32 - def __init__(self, item_view, n): - if isinstance(n, int) and not n < 1: - fixed = True - elif isview(n) and iscached(n): - fixed = False - else: - raise ValueError('Invalid quantity: {}'.format(n)) - self.length = n - self.fixed = fixed - self.item = item_view - - @property - def quantity(self): - if self.fixed: - return self.length - return self.length.cache() - - def offset(self, payload=b'', field=None): - field = int(field) - if not self.quantity > field: - raise IndexError('Invalid item index: {}'.format(field)) - - total_offset = 0 - for _ in range(field): - width = self.item.width(payload) - payload = payload[width:] - total_offset += width - return total_offset - - def width(self, payload=b''): - offset = self.offset(payload, self.quantity - 1) - return offset + self.item.width(payload[offset:]) - - def valid(self, payload=b''): - if self.quantity > self.max_quantity: - return False - - for _ in range(self.quantity): - if not self.item.valid(payload): - return False - width = self.item.width(payload) - payload = payload[width:] - return True - - def value(self, payload=b'', field=None): - if field is None: - results = [] - for _ in range(self.quantity): - results.append(self.item.value(payload)) - width = self.item.width(payload) - payload = payload[width:] - return results - - field = int(field) - if not self.quantity > field: - raise IndexError('Invalid item index: {}'.format(field)) - - return self.item.value(payload[self.offset(payload, field):]) - - def write(self, payload=b'', value=None, **kwargs): - if len(kwargs) > 0: - if value is not None: - raise RuntimeError('Conflict: value and kwargs both given.') - value = kwargs - - if isinstance(value, (list, tuple)): - if len(value) > self.quantity: - raise ValueError( - 'Input list too long: {} out of {} items'.format( - len(value), self.quantity)) - return self.write(payload, dict(enumerate(value))) - - for field, svalue in sorted(value.items()): - field = int(field) - offset = self.offset(payload, field) - svalue = self.item.write(payload[offset:], svalue) - payload = payload[:offset] + svalue - return payload - - def __len__(self): - return self.quantity - - def __contains__(self, field): - try: - return int(field) < self.quantity - except ValueError: - return False - - def __getitem__(self, field): - return self.item - -class union(composite): - def __init__(self, view_table, union_tag): - for key, view in view_table.items(): - if not isview(view): - raise TypeError('Union of {} not a view: {}'.format(key, view)) - - self.view_table = view_table - self.union_tag = union_tag - - @property - def tag(self): - return self.union_tag.cache() - - @property - def active_view(self): - return self.view_table[self.tag] - - def offset(self, payload=b'', field=None): - return 0 - - def width(self, payload=b''): - return self.active_view.width(payload) - - def valid(self, payload=b''): - if self.tag not in self.view_table: - return False - - return self.active_view.valid(payload) - - def value(self, payload=b'', field=None): - return self.active_view.value(payload, field) - - def write(self, payload=b'', value=None, **kwargs): - return self.active_view.write(payload, value=value, **kwargs) - - def __contains__(self, field): - return field in self.active_view - - def __getitem__(self, field): - return self.active_view.__getitem__(field) - -class wrapper: - '''This is a view bound to raw bytes. - - See self.fields to list fields within the view. - See help(self._view) for details on the underlying view.''' - - def __init__(self, parent_view): - if not isview(parent_view): - raise TypeError('Wrapping not a view: {}'.format(parent_view)) - self._view = parent_view - - @property - def raw(self): - raise NotImplementedError - - @raw.setter - def raw(self, value): - raise NotImplementedError - - @property - def width(self): - return self._view.width(self.raw) - - @property - def valid(self): - return self._view.valid(self.raw) - - @property - def fields(self, wrapper_attr=['raw']): - if (hasattr(self._view, 'list_fields') - and inspect.ismethod(self._view.list_fields)): - return wrapper_attr + self._view.list_fields() - return wrapper_attr - - @property - def truncated(self): - return self.raw[:self.width] - - def offset(self, field): - return self._view.offset(self.raw, field) - - def value(self, field=None): - if field is None: - return self._view.value(self.raw) - return self._view.value(self.raw, field=field) - - def write(self, value=None, **kwargs): - self.raw = self._view.write(self.raw, value, **kwargs) - - def set(self, *kargs, **kwargs): - self.write(*kargs, **kwargs) - self.finalize(truncate=True) - - def finalize(self, truncate=True): - if truncate: - self.raw = self.truncated - if not self.valid: - raise RuntimeError('Invalid payload for {} view: {}'.format( - self._view, self.raw)) - - def __len__(self): - if not iscomposite(self._view): - raise NotImplementedError - return len(self._view) - - def __contains__(self, field): - if not iscomposite(self._view): - raise NotImplementedError - return field in self._view - - def __getitem__(self, field): - return self.__getattr__(str(field)) - - def __setitem__(self, field, value): - self.__setattr__(str(field), value) - - def __setattr__(self, field, value): - if (not field.startswith('_') - and iscomposite(self._view) and field in self._view): - self.write(value={field: value}) - else: - object.__setattr__(self, field, value) - - def __getattr__(self, field): - if field.startswith('__'): - raise AttributeError - if iscomposite(self._view) and field in self._view: - subview = self._view[field] - if iscomposite(subview): - return bind(subview, self, field) - return self._view.value(self.raw, field) - -def _forward_init(cls, args): - if args is None: - return cls - - if isinstance(args, dict): - if len(args) == 2 and 'kargs' in args and 'kwargs' in args: - return cls(*args['kargs'], **args['kwargs']) - if len(args) == 1 and 'kwargs' in args: - return cls(**args['kwargs']) - if len(args) == 1 and 'kargs' in args: - return cls(*args['kargs']) - - return cls(**args) - return cls(*args) - -def bind(parent_view, parent_wrapper, parent_field=None, init=[]): - class _anonymous_subwrapper(wrapper): - def __init__(self): - super().__init__(parent_view) - self._parent = parent_wrapper - self._field = parent_field - - @property - def raw(self): - if self._field is None: - return self._parent.raw - offset = self._parent.offset(self._field) - return self._parent.raw[offset:] - - @raw.setter - def raw(self, value): - if self._field is None: - self._parent.raw = value - return - parent = self._parent.raw - offset = self._parent.offset(self._field) - parent = parent[:offset] + value + parent[offset + len(value):] - self._parent.raw = parent - - typename = str(parent_field) - if typename is not None: - if not typename.isidentifier(): - try: - if int(typename) >= 0: - typename = 'idx_{}'.format(typename) - except ValueError: - pass - - if typename.isidentifier(): - _anonymous_subwrapper.__name__ = '{}'.format(typename) - - _anonymous_subwrapper.__qualname__ = '{}.{}'.format( - parent_wrapper.__class__.__qualname__, _anonymous_subwrapper.__name__) - return _forward_init(_anonymous_subwrapper, init) - -def like(parent_view, typename=None, init=None): - if typename is not None and not typename.isidentifier(): - raise ValueError('Typename {} is not an identifier'.format(typename)) - - class _anonymous_wrapper(wrapper): - def __init__(self, raw): - super().__init__(parent_view) - self._raw = raw - - @property - def raw(self): - return self._raw - - @raw.setter - def raw(self, value): - self._raw = value - - if typename is not None: - _anonymous_wrapper.__qualname__ = 'wrapper.{}'.format(typename) - _anonymous_wrapper.__name__ = '{}_wrapper'.format(typename) - - return _forward_init(_anonymous_wrapper, init) - -def cache(base, typename=None, init=None): - if typename is not None and not typename.isidentifier(): - raise ValueError('Typename {} is not an identifier'.format(typename)) - - if not inspect.isclass(base): - raise TypeError('Expect a class: {} is not.'.format(base)) - - if issubclass(base, _enum.Enum): - raise TypeError('Use view.enum(cached=True) to cache enumerations.') - - if iscached(base): - raise TypeError('Class {} already cached.'.format(base)) - - class _anonymous_cached_view(base): - def __init__(self, *kargs, **kwargs): - '''See help({}.__init__) for an accurate signature.'''.format( - base.__qualname__) - - base.__init__(self, *kargs, **kwargs) - self._cache = threading.local() - self._cache.value = None - - def cache(self): - if not self.cached(): - raise RuntimeError('Bounded value unknown at runtime: ' - + 'Have you called .value() of parent view yet?') - return self._cache.value - - def cached(self): - return self._cache.value is not None - - def value(self, payload=b'', field=None): - self._cache.value = super().value(payload) - return self.cache() - - def write(self, payload=b'', *kargs, **kwargs): - payload = super().write(payload, *kargs, **kwargs) - self._cache.value = super().value(payload) - return payload - - _anonymous_cached_view.__qualname__ = 'cached.{}'.format(base.__name__) - _anonymous_cached_view.__name__ = 'cached_{}'.format(base.__name__) - if typename is not None: - _anonymous_cached_view.__name__ = typename - - return _forward_init(_anonymous_cached_view, init) - -def isview(item): - if not hasattr(item, 'width') or not inspect.ismethod(item.width): - return False - if not hasattr(item, 'valid') or not inspect.ismethod(item.valid): - return False - if not hasattr(item, 'value') or not inspect.ismethod(item.value): - return False - if not hasattr(item, 'write') or not inspect.ismethod(item.write): - return False - return True - -def iscached(item): - if not hasattr(item, 'cache') or not inspect.ismethod(item.cache): - return False - if not hasattr(item, 'cached') or not inspect.ismethod(item.cache): - return False - return True - -def iscomposite(item): - if isinstance(item, union): - if not item.union_tag.cached(): - return True - return isinstance(item.active_view, composite) - return isinstance(item, composite) - -class ip_address(data): - def __init__(self, *, version): - if version not in [4, 6]: - raise ValueError('Invalid IP version: {}'.format(version)) - - if version == 4: - self._ip_type = ipaddress.IPv4Address - super().__init__(4) - else: - self._ip_type = ipaddress.IPv6Address - super().__init__(16) - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - try: - self.value(payload) - return True - except ipaddress.AddressValueError: - return False - - def value(self, payload=b'', field=None): - value = super().value(payload) - return self._ip_type(value) - - def write(self, payload=b'', value=None, **kwargs): - if not isinstance(value, self._ip_type): - value = self._ip_type(value) - return super().write(payload, value=value.packed) - -class codec(data): - @staticmethod - def _is_text_encoding(c): - try: - codecs.encode(b'', c) - return False - except BaseException: - pass - - try: - if not isinstance(codecs.encode('', c), bytes): - return False - return True - except BaseException: - return False - - @staticmethod - def _is_bytes_mapping(c): - if codec._is_text_encoding(c): - return False - - try: - if not isinstance(codecs.encode(b'', c), bytes): - return False - return True - except BaseException: - return False - - @staticmethod - def _is_text_mapping(c): - return c in ['rot_13', 'rot13'] - - @staticmethod - def _build_encode_chain(codecs): - encode_chain = [] - is_input_str = True - for c in codecs: - if codec._is_text_encoding(c): - encode_chain.append((is_input_str, c)) - is_input_str = bool(not is_input_str) - continue - if codec._is_text_encoding(c) and not is_input_str: - raise ValueError( - 'Got bytes for {} in chain: {}'.format(c, codecs)) - if codec._is_bytes_mapping(c) and is_input_str: - raise ValueError( - 'Got str for {} in chain: {}'.format(c, codecs)) - encode_chain.append((True, c)) - - if is_input_str: - raise ValueError( - 'Chain encodes to str instead of bytes: {}'.format(codecs)) - return encode_chain - - @staticmethod - def _build_decode_chain(codecs): - decode_chain = [] - is_input_str = False - for c in reversed(codecs): - if codec._is_text_encoding(c): - decode_chain.append((is_input_str, c)) - is_input_str = bool(not is_input_str) - continue - if codec._is_text_encoding(c) and not is_input_str: - raise ValueError( - 'Got bytes for {} in chain: {}'.format(c, codecs)) - if codec._is_bytes_mapping(c) and is_input_str: - raise ValueError( - 'Got str for {} in chain: {}'.format(c, codecs)) - decode_chain.append((False, c)) - - if not is_input_str: - raise ValueError( - 'Chain decodes to bytes instead of str: {}'.format(codecs)) - return decode_chain - - def __init__(self, *codecs, size): - self.encode_chain = codec._build_encode_chain(codecs) - self.decode_chain = codec._build_decode_chain(codecs) - super().__init__(size) - - def valid(self, payload=b''): - if not super().valid(payload): - return False - - try: - self.value(payload) - return True - except ValueError: - return False - - def value(self, payload=b'', field=None): - value = super().value(payload) - for use_encode, c in self.decode_chain: - if use_encode: - value = codecs.encode(value, c) - else: - value = codecs.decode(value, c) - return value - - def write(self, payload=b'', value=None, **kwargs): - for use_encode, c in self.encode_chain: - if use_encode: - value = codecs.encode(value, c) - else: - value = codecs.decode(value, c) - return super().write(payload, value=value) diff --git a/lightnion/consensus.py b/lightnion/consensus.py index 428c319..ec6fe11 100644 --- a/lightnion/consensus.py +++ b/lightnion/consensus.py @@ -1,766 +1,410 @@ -from base64 import b64encode, b64decode -import datetime -import binascii -import time -import os -import re +""" +Refactored consensus parser +""" +import enum +import re import urllib.request -import lightnion as lnn -from tools.keys import get_signing_keys_info - - -# TODO: remove extra (useless) checks/exceptions within this file +from base64 import b64decode +from datetime import datetime, timezone -def scrap(consensus, end_of_field): - """ - Consume lines upon matching a criterion. +import lightnion as lnn +import lightnion.keys + + +RE_NETWORK_STATUS_VERSION = re.compile(r"network-status-version (\d+)") +RE_VOTE_STATUS = re.compile(r"vote-status (.+)") +RE_CONSENSUS_METHOD = re.compile(r"consensus-method (\d+)") +RE_VALID_AFTER = re.compile(r"valid-after (\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})") +RE_FRESH_UNTIL = re.compile(r"fresh-until (\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})") +RE_VALID_UNTIL = re.compile(r"valid-until (\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})") +RE_VOTING_DELAY = re.compile(r"voting-delay (\d+) (\d+)") +RE_CLIENT_VERSIONS = re.compile(r"client-versions (\S*)") +RE_SERVER_VERSIONS = re.compile(r"server-versions (\S*)") +RE_KNOWN_FLAGS = re.compile(r"known-flags (.+)") +RE_RECOMMENDED_CLIENT_PROTOCOLS = re.compile(r"recommended-client-protocols (.+)\n") +RE_RECOMMENDED_RELAY_PROTOCOLS = re.compile(r"recommended-relay-protocols (.+)\n") +RE_REQUIRED_CLIENT_PROTOCOLS = re.compile(r"required-client-protocols (.+)\n") +RE_REQUIRED_RELAY_PROTOCOLS = re.compile(r"required-relay-protocols (.+)\n") +RE_PARAMS = re.compile(r"params ((?:([^ =]+)=(\S+)) )+([^ =]+)=(\S+)") +RE_SHARED_RAND_PREVIOUS_VALUE = re.compile(r"shared-rand-previous-value (\d+) (\S+)") +RE_SHARED_RAND_CURRENT_VALUE = re.compile(r"shared-rand-current-value (\d+) (\S+)") +RE_DIR_SOURCE = re.compile(r"""dir-source (\S+) ([A-Za-z0-9]+) (\S+) (\S+) (\d+) (\d+) +contact (\S+) +vote-digest ([A-Za-z0-9]+)""") +RE_RELAYS = re.compile(r"(^r .+\n(?:(?:[aspvwm].+)\n)+)", re.M) + +RE_RELAY_R_U = re.compile(r"r (\S+) (\S+) (\S+) (\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}) (\S+) (\d+) (\d+)") +RE_RELAY_R_M = re.compile(r"r (\S+) (\S+) (\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}) (\S+) (\d+) (\d+)") +RE_RELAY_M = re.compile(r"\nm ([^\n]+)") +RE_RELAY_A = re.compile(r"\na (\S+):(\d+)") +RE_RELAY_S = re.compile(r"\ns ([^\n]+)") +RE_RELAY_V = re.compile(r"\nv (Tor \S+)") +RE_RELAY_PR = re.compile(r"\npr ([^\n]+)") +RE_RELAY_W = re.compile(r"\nw (Bandwidth)=(\d+)(?:\s([^= ]+)=(\S+))*") +RE_RELAY_P = re.compile(r"\np (accept|reject) (\S+)") +#RE_ = re.compile(r"") +RE_FOOTER = re.compile(r"directory-footer\nbandwidth-weights ([^\n]+)\n([A-Za-z0-9\n /=+-]+)") +RE_DIR_SIGN = re.compile(r"""directory-signature (.+) +-----BEGIN SIGNATURE----- +([0-9A-Za-z+/=\n]+) +-----END SIGNATURE----- +""") + +RE_RELAY_DIGEST_UNF = re.compile(r"^r \S+ \S+ (\S+)", re.MULTILINE) +RE_RELAY_DIGEST_MIC = re.compile(r'^m ([^\n]+)', re.MULTILINE) + + +class InvalidConsensus(Exception): + pass - Returns (consensus-without-first-line, first-line) - if end_of_field(first-line) returns True, - else returns (consensus-with-first-line, None) - :param bytes consensus: input which first line may be consumed - :param function end_of_field: passed a line, returns True when no match +class Flavor(enum.IntEnum): + UNFLAVORED = 0 + MICRO = 1 - :returns: a tuple (updated-consensus, next-field-or-None) - """ - if b'\n' not in consensus: - return consensus, None - line, remaining = consensus.split(b'\n', 1) - if end_of_field(line): - return consensus, None - return remaining, line +class Consensus: + """Container for consensus handling methods.""" + + @staticmethod + def _search_re(string, regex): + # Convenience function to search for the first instance of the pattern. + match = regex.search(string) + if not match: + raise InvalidConsensus("Invalid format.") + + groups = match.groups() + return groups + + + @staticmethod + def _findall_re(string, regex): + # Convenience function to search for all instances of the pattern. + groups = regex.findall(string) + if not groups: + raise InvalidConsensus("Invalid format.") + + return groups + + + @staticmethod + def _parse_date(string, regex): + + groups = Consensus._search_re(string, regex) + + groups_int = [int(x) for x in groups] + timestamp = datetime(*groups_int, tzinfo=timezone.utc).timestamp() + + date_parsed = { + "date": "{}-{}-{}".format(*groups[:3]), + "time": "{}:{}:{}".format(*groups[3:]), + "stamp": timestamp + } + + return date_parsed + + + @staticmethod + def _parse_footer(string): + groups = Consensus._search_re(string, RE_FOOTER) + + bw_weights = dict() + bw_weights_raw = groups[0].split(" ") + for bw_weight_raw in bw_weights_raw: + key, value = bw_weight_raw.split("=") + bw_weights[key] = int(value) + + dir_signs = list() + groups_sign = Consensus._findall_re(groups[1], RE_DIR_SIGN) + for dir_sign_raw in groups_sign: + params = dir_sign_raw[0].split(" ") + if len(params) == 3: + algo, identity, digest = params + elif len(params) == 2: + algo = "sha1" + identity, digest = params + signature = dir_sign_raw[1] -def scrap_signature(consensus, fix=b'SIGNATURE'): - """ - Consume a signature field if there is one to consume. + dir_sign = { + "Algorithm": algo, + "identity": identity, + "signing-key-digest": digest, + "signature": signature.replace("\n", "") + } - :param bytes consensus: input which may start with a signature. + dir_signs.append(dir_sign) - :returns: a tuple (updated-consensus, signature-or-None) - """ - if not consensus.startswith(b'-----BEGIN ' + fix + b'-----'): - return consensus, None + footer = { + "bandwidth-weights": bw_weights, + "directory-signatures": dir_signs + } - lines = consensus.split(b'\n', 22) # fits 0-1024o (for 256o sig) - try: - idx_endsig = lines.index(b'-----END ' + fix + b'-----') - except ValueError: - return consensus, None + return footer - remaining = b'\n'.join(lines[idx_endsig + 1:]) - content = b''.join(lines[1:idx_endsig]) - return remaining, content + @staticmethod + def _parse_protocols(string, regex): + params = Consensus._search_re(string, regex)[0].split(" ") -def parse_address(address): - """ - Take a Tor-formatted v4 or v6 IP address with a port, returns a - cleaned-up version. + protocols = dict() - :param str address: input address to be processed + for param in params: + key, value = param.split("=") + protocols[key] = Consensus._parse_protocols_vers(value) - :returns: a tuple (address, port, guessed-type) where port is an - integer and guessed-type is 4 or 6 (IPv4 or IPv6). - """ - address = address.split(':') - address, port = ':'.join(address[:-1]), address[-1] - - guessed_type = 4 - if address.startswith('['): - address = address[1:] - guessed_type = 6 - if address.endswith(']') or guessed_type == 6: - if not address.endswith(']'): - raise RuntimeError( - 'Seems like an invalid IPv6: {}'.format(address)) - address = address[:-1] - guessed_type = 6 - if address.count(':') > 3: - if not guessed_type == 6: - raise RuntimeError( - 'Seems like an very odd IPv6: {}'.format(address)) - guessed_type = 6 - - return address, int(port), guessed_type - - -def parse_range_once(value, expand=True): - """ - Take Tor-formatted ranges, then returns it as a list of integers if - expanded or a mix of integers and ranges as [low, high] tuples. + return protocols - For example, we use it to parse "p" fields: - https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L2322 - :param str value: input value to be processed - :param bool expand: do we expand a range as integers? (default: True) + @staticmethod + def _parse_protocols_vers(proto): + versions = list() - :returns: a list of integers or a mix of integers and range list/tuples - """ - value = value.split(',') - subvalues = [] - for subvalue in value: - if '-' in subvalue: - low, high = [int(v) for v in subvalue.split('-')] - if expand: - subvalues += list(range(low, high + 1)) - elif low == high - 1: - subvalues += [low, high] + version_ranges = proto.split(",") + for version_range_raw in version_ranges: + if "-" in version_range_raw: + vmin, vmax = version_range_raw.split("-") + version_range = list(range(int(vmin), int(vmax) + 1)) + versions += version_range else: - subvalues += [[low, high]] - else: - subvalues += [int(subvalue)] - return subvalues - - -def parse_ranges(ranges, expand=True): - """ - Take Tor-formatted named ranges, then returns a keyword-based - dictionary of list of integers or mix of integers and range tuples (as - returned by parse_range_once), expanded or not. - - For example, we use it to parse "recommended-client-protocols" fields: - https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L780 - - :param str ranges: input ranges to be processed - :param bool expand: do we expand ranges as integers? (default: True) - - :returns: a dictionary with (range-name, range-content) items - """ - pairs = ranges.split(' ') - content = {} - for key, value in [pair.split('=') for pair in pairs if '=' in pair]: - content[key] = parse_range_once(value, expand) - return content - - -def parse_params(params): - """ - Take Tor-formatted parameters, then returns a keyword-based dictionary - of integers. - - For example, we use it to parse "params" fields: - https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L1820 - - :param str params: input params to be processed - - :returns: a dictionary with (param-name, param-integer-value) items - """ - pairs = params.split(' ') - content = dict() - for key, value in [pair.split('=') for pair in pairs]: - content[key] = int(value) - return content - - -def parse_fingerprint(payload): - asbytes = bytes.fromhex(payload) - fingers = asbytes.hex().upper() - fingers = ' '.join([fingers[i:i + 4] for i in range(0, len(fingers), 4)]) - if not fingers == payload: - raise RuntimeError( - 'Fingerprint not conform: {} vs {}'.format(fingers, payload)) - return fingers - - -def parse_base64(payload, decode=False): - """ - Take an input base64 string, decode it, re-encode it. - - For example, we use it to parse "shared-rand-current-value" fields: - https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L2069 - - :param str payload: input base64-encoded data - :param bool decode: return raw bytes (default: False) - - :returns: a base64-encoded string equivalent to the input - """ - decoded = b64decode(payload + '====') - value = str(b64encode(decoded), 'utf8') - - if not payload[-2:].count('=') == value[-2:].count('='): - value = value.rstrip('=') + '=' * payload[-2:].count('=') - - if not value == payload: - raise RuntimeError('Invalid base64 encoding: {} vs {}'.format( - value, payload)) - - if decode: - return decoded - - return value - - -def parse_time(timedate): - """ - Take a Tor-formatted (Y-m-d H:M:S) time, parse it, then returns the - corresponding date, time and datetime object. This function assumes - that the given time uses the UTC timezone – as it's the timezone used - into Tor consensuses. - - :param str timedate: input time and date to be parsed - - :returns: a tuple (date-str, time-str, datetime-object) - """ - when = datetime.datetime.strptime(timedate, '%Y-%m-%d %H:%M:%S') - - # convert to UTC-aware datetime object - when = datetime.datetime(*when.timetuple()[:6], - tzinfo=datetime.timezone.utc) - return (when.strftime('%Y-%m-%d'), when.strftime('%H:%M:%S'), when) - - -def consume_http(consensus): - """ - Consume HTTP headers if present, then returns the remaining input to be - further processed and a set of headers (or None, if none present). - - :param str consensus: input to be processed - - :returns: a tuple (remaining-input, headers-or-None) - """ - - def end_of_field(line): - return line[-1:] != b'\r' - - fields = dict(headers=dict()) - valid = False - while True: - consensus, header = scrap(consensus, end_of_field) - if header is None: - return consensus, fields if valid else None - - valid = True - if b' ' not in header: - continue - - header = header[:-1] - try: - header = str(header, 'utf8') - except Exception: - continue - - if header.startswith('HTTP/'): - version, fields['code'], _ = header.split(' ', 2) - fields['version'] = float(version.split('/', 1)[1]) - - keyword, content = header.split(' ', 1) - if keyword[-1:] == ':': - fields['headers'][keyword[:-1]] = content - - -def consume_headers(consensus, flavor='unflavored'): - """ - Consume consensus headers if present, then returns the remaining input - to be further processed and a set of headers (or None, if none - present). - - Will consume the following fields: - - network-status-version - - vote-status - - consensus-method - - valid-after - - fresh-until - - valid-until - - voting-delay - - client-versions - - server-versions - - known-flags - - recommended-client-protocols - - recommended-relay-protocols - - required-client-protocols - - required-relay-protocols - - params - - shared-rand-previous-value - - shared-rand-current-value - - :param str consensus: input to be processed - :param str flavor: consensus flavor ('unflavored' or 'microdesc') - - :returns: a tuple (remaining-input, headers-or-None) - """ - if flavor not in ['unflavored', 'microdesc']: - raise NotImplementedError( - 'Consensus flavor "{}" not supported.'.format(flavor)) - - whitelist = [ - b'network-status-version', b'vote-status', b'consensus-method', - b'valid-after', b'fresh-until', b'valid-until', b'voting-delay', - b'client-versions', b'server-versions', b'known-flags', - b'recommended-client-protocols', b'recommended-relay-protocols', - b'required-client-protocols', b'required-relay-protocols', b'params', - b'shared-rand-previous-value', b'shared-rand-current-value'] - - def end_of_field(line): - if b' ' not in line: - return True - keyword, _ = line.split(b' ', 1) - return keyword not in whitelist - - fields = dict() - valid = False - while True: - consensus, header = scrap(consensus, end_of_field) - if header is None: - return consensus, fields if valid else None - - valid = True - if b' ' not in header: - continue - - try: - header = str(header, 'utf8') - except: - continue - - keyword, content = header.split(' ', 1) - if keyword == 'network-status-version': - content = content.split(' ', 1) - if len(content) == 1: - content.append('unflavored') - version, variant = content - content = dict(version=int(version), flavor=variant) - - if not len(fields) == 0: - raise RuntimeError('Expecting {} as first field: {}'.format( - keyword, content)) - if not content['version'] >= 3: - raise RuntimeError('Expecting {} version >= 3 here: {}'.format( - keyword, content)) - if not content['flavor'] == flavor: - raise RuntimeError('Unmatched {} flavor {} here: {}'.format( - keyword, flavor, content)) - - if keyword == 'consensus-method': - content = int(content) - - if not content >= 26: - raise RuntimeError( - 'Consensus version >= 26 required: {}'.format(content)) - - if keyword in ['valid-after', 'fresh-until', 'valid-until']: - date, time_parsed, when = parse_time(content) - content = dict(date=date, time=time_parsed, stamp=when.timestamp()) - - if keyword == 'valid-after': - if not time.time() > content['stamp']: - raise RuntimeError('{} not yet valid! {}'.format( - keyword, content)) # valid-after - - if keyword == 'fresh-until': - if not content['stamp'] > fields['valid-after']['stamp']: - raise RuntimeError('{} not fresh! {}'.format( - keyword, content)) # fresh-until - - if keyword == 'valid-until': - if not time.time() < content['stamp']: - raise RuntimeError('{} no more valid! {}'.format( - keyword, content)) # valid-until - - if keyword == 'voting-delay': - vote, dist = content.split(' ', 1) - content = dict(vote=int(vote), dist=int(dist)) - - if keyword in ['client-versions', 'server-versions']: - content = content.split(',') - - if keyword == 'known-flags': - content = content.split(' ') - - if keyword.startswith(('recommended', 'required')): - content = parse_ranges(content) + versions.append(int(version_range_raw)) - if keyword == 'params': - content = parse_params(content) + return versions - if keyword.startswith('shared-rand'): - reveals, value = content.split(' ') - value = parse_base64(value) - content = {'NumReveals': int(reveals), 'Value': value} + @staticmethod + def _parse_relay_port_list(port_list_str): + ports_ranges = list() - if not content['NumReveals'] >= 0: - raise RuntimeError('{} must be >= 0 here: {}'.format( - keyword, content)) - - fields[keyword] = content - - -def consume_dir_sources(consensus): - """ - Consume directory source listing if present, then returns the remaining - input to be further processed and a set of directory sources (or None, - if none present). - - Will consume the following fields: - - dir-source - - contact - - vote-digest - - :param str consensus: input to be processed - - :returns: a tuple (remaining-input, headers-or-None) - """ - whitelist = [b'dir-source', b'contact', b'vote-digest'] - - def end_of_field(line): - if b' ' not in line: - return True - keyword, _ = line.split(b' ', 1) - return keyword not in whitelist - - fields = [] - valid = False - while True: - consensus, header = scrap(consensus, end_of_field) - if header is None: - if not valid: - return consensus, None - break - - valid = True - if b' ' not in header: - continue - - try: - header = str(header, 'utf8') - except: - continue - - keyword, content = header.split(' ', 1) - if keyword == 'vote-digest': - value = bytes.fromhex(content).hex() - if not value.lower() == content.lower(): - raise RuntimeError('Unmatched {} here: {} {}'.format( - keyword, value, content)) - content = value - - if keyword == 'dir-source': - nickname, identity, hostname, address, dirport, orport = ( - content.split(' ', 5)) - - value = bytes.fromhex(identity).hex() - if not value.lower() == identity.lower(): - raise RuntimeError('Unmatched {} here: {} {}'.format( - keyword, value, content)) - identity = value - - content = dict(nickname=nickname, identity=identity, - hostname=hostname, address=address, dirport=int(dirport), - orport=int(orport)) - - if not 0 < content['dirport'] < 65536: - raise RuntimeError('Invalid dirport here: {}'.format(content)) - if not 0 < content['orport'] < 65536: - raise RuntimeError('Invalid orport here: {}'.format(content)) - - if keyword != 'dir-source' and fields[-1][0] == 'dir-source': - if not (keyword not in fields[-1][1]): - raise RuntimeError( - 'Unexpected {} with: {}'.format(keyword, fields[-1])) - assert keyword not in fields[-1][1] - fields[-1][1][keyword] = content - continue - - fields.append((keyword, content)) - - full_entries_count = len([v for k, v in fields if k == 'dir-source']) - - if not full_entries_count == len(fields): - raise RuntimeError('Incomplete entry or corrupted?') - - if full_entries_count == len(fields): - fields = [v for k, v in fields] + ports_ranges_raw = port_list_str.split(",") + for ports_range_raw in ports_ranges_raw: + if "-" in ports_range_raw: + pmin, pmax = ports_range_raw.split("-") + ports_ranges.append([int(pmin), int(pmax)]) + else: + port = ports_range_raw + ports_ranges.append([int(port), int(port)]) + + return ports_ranges + + + @staticmethod + def _parse_relay_micro(string): + group_r = Consensus._search_re(string, RE_RELAY_R_M) + group_m = Consensus._search_re(string, RE_RELAY_M) + date_int = [int(x) for x in group_r[2:8]] + date_str = "{}-{}-{}".format(*group_r[2:5]) + time_str = "{}:{}:{}".format(*group_r[5:8]) + timestamp = datetime(*date_int, tzinfo=timezone.utc).timestamp() + + #group_a = Consensus._search_re(string, RE_RELAY_A) - return consensus, fields + flags = Consensus._search_re(string, RE_RELAY_S)[0].split(" ") + version = Consensus._search_re(string, RE_RELAY_V)[0] + + group_pr = Consensus._search_re(string, RE_RELAY_PR)[0] + protocols = dict() + for pair in group_pr.split(" "): + key, value = pair.split("=") + protocols[key] = Consensus._parse_protocols_vers(value) -def consume_routers(consensus, flavor='unflavored'): - """ - Consume router listing if present, then returns the remaining input to - be further processed and a set of routers (or None, if none present). - - Will consume the following fields: - - r - - m - - s - - v - - pr - - w - - p (unflavored only) - - a (unflavored only) - - :param str consensus: input to be processed - :param str flavor: consensus flavor ('unflavored' or 'microdesc') - - :returns: a tuple (remaining-input, headers-or-None) - """ - if flavor not in ['unflavored', 'microdesc']: - raise NotImplementedError( - 'Consensus flavor "{}" not supported.'.format(flavor)) - - # TODO: check if 'a' fields in microdesc consensus are still a thing - if flavor == 'unflavored': - whitelist = [b'r', b'm', b's', b'v', b'pr', b'w', b'p', b'a'] - elif flavor == 'microdesc': - whitelist = [b'r', b'm', b's', b'v', b'pr', b'w', b'a'] - - aliases = dict(m='micro-digest', pr='protocols', s='flags', v='version', - p='exit-policy', a='or-address') - - def end_of_field(line): - if b' ' not in line: - return True - keyword, _ = line.split(b' ', 1) - return keyword not in whitelist - - fields = [] - valid = False - while True: - consensus, header = scrap(consensus, end_of_field) - if header is None: - if not valid: - return consensus, None - break - - valid = True - if b' ' not in header: - continue + group_w = Consensus._search_re(string, RE_RELAY_W) + elems = iter(group_w) + w_dict = {k: int(v) for k, v in zip(elems, elems)} - try: - header = str(header, 'utf8') - except: - continue + relay = { + "nickname": group_r[0], + "identity": group_r[1], + "micro-digest": group_m[0], + "date": date_str, + "time": time_str, + "stamp": timestamp, + "address": group_r[8], + "dirport": int(group_r[10]), + "orport": int(group_r[9]), + "flags": flags, + "version": version, + "protocols": protocols, + "w": w_dict + } - keyword, content = header.split(' ', 1) - if keyword == 'm': - content = parse_base64(content) + return relay - if keyword == 's': - content = content.split(' ') - if keyword == 'pr': - content = parse_ranges(content) + @staticmethod + def _parse_relay_unflavored(string): - if keyword == 'w': - content = parse_params(content) + group_r = Consensus._search_re(string, RE_RELAY_R_U) + date_int = [int(x) for x in group_r[3:9]] + date_str = "{}-{}-{}".format(*group_r[3:6]) + time_str = "{}:{}:{}".format(*group_r[6:9]) + timestamp = datetime(*date_int, tzinfo=timezone.utc).timestamp() - if keyword == 'p': - policy_type, portlist = content.split(' ') - if not policy_type in ['accept', 'reject']: - raise RuntimeError('Unknown policy: {}'.format(policy_type)) + #group_a = Consensus._search_re(string, RE_RELAY_A) - portlist = parse_range_once(portlist, expand=False) - content = {'type': policy_type, 'PortList': portlist} + flags = Consensus._search_re(string, RE_RELAY_S)[0].split(" ") - if keyword == 'a': - address, port, guessed_type = parse_address(content) - content = [{'ip': address, 'port': port, 'type': guessed_type}] + version = Consensus._search_re(string, RE_RELAY_V)[0] - if keyword == 'r' and flavor == 'unflavored': - (nickname, identity, digest, date, time, address, orport, - dirport) = content.split(' ', 7) + group_pr = Consensus._search_re(string, RE_RELAY_PR)[0] + protocols = dict() + for pair in group_pr.split(" "): + key, value = pair.split("=") + protocols[key] = Consensus._parse_protocols_vers(value) - digest = parse_base64(digest) - identity = parse_base64(identity) - date, time, when = parse_time(' '.join([date, time])) + group_w = Consensus._search_re(string, RE_RELAY_W) + elems = iter(group_w) + w_dict = {k: int(v) for k, v in zip(elems, elems)} - content = dict(nickname=nickname, identity=identity, digest=digest, - date=date, time=time, stamp=when.timestamp(), address=address, - dirport=int(dirport), orport=int(orport)) + group_p = Consensus._search_re(string, RE_RELAY_P) - if not 0 <= content['dirport'] < 65536: - raise RuntimeError('Invalid dirport here: {}'.format(content)) - if not 0 < content['orport'] < 65536: - raise RuntimeError('Invalid orport here: {}'.format(content)) + relay = { + "nickname": group_r[0], + "identity": group_r[1], + "digest": group_r[2], + "date": date_str, + "time": time_str, + "stamp": timestamp, + "address": group_r[9], + "dirport": int(group_r[11]), + "orport": int(group_r[10]), + "flags": flags, + "version": version, + "protocols": protocols, + "w": w_dict, + "exit-policy": { + "type": group_p[0], + "PortList": Consensus._parse_relay_port_list(group_p[1]) + } + } - if keyword == 'r' and flavor == 'microdesc': - nickname, identity, date, time, address, orport, dirport = ( - content.split(' ', 6)) + return relay - identity = parse_base64(identity) - date, time, when = parse_time(date + ' ' + time) - content = dict(nickname=nickname, identity=identity, date=date, - time=time, stamp=when.timestamp(), address=address, - dirport=int(dirport), orport=int(orport)) + @staticmethod + def _parse_relays(string, flavor): - if not 0 <= content['dirport'] < 65536: - raise RuntimeError('Invalid dirport here: {}'.format(content)) - if not 0 < content['orport'] < 65536: - raise RuntimeError('Invalid orport here: {}'.format(content)) + relays = list() - if keyword != 'r' and fields[-1][0] == 'r': - if keyword in aliases: - keyword = aliases[keyword] + if flavor == Flavor.MICRO: + func = Consensus._parse_relay_micro + elif flavor == Flavor.UNFLAVORED: + func = Consensus._parse_relay_unflavored - if keyword == 'or-address' and keyword in fields[-1][1]: - content[0]['ignored'] = True - fields[-1][1]['or-address'] += content - continue + for relay_str in Consensus._findall_re(string, RE_RELAYS): + relay = func(relay_str) + relays.append(relay) - if not (keyword not in fields[-1][1]): - raise RuntimeError('Unexpected {} with: {}'.format(keyword, - fields[-1])) + return relays - fields[-1][1][keyword] = content - continue - fields.append((keyword, content)) + @staticmethod + def _parse_shared_rand(string, regex): + groups = Consensus._search_re(string, regex) + shared_rand = {"NumReveals": int(groups[0]), "Value": groups[1]} + return shared_rand - full_entries_count = len([v for k, v in fields if k == 'r']) - if not full_entries_count == len(fields): - raise RuntimeError('Invalid or corrupted entry?') - if full_entries_count == len(fields): - fields = [v for k, v in fields] + @staticmethod + def _parse_versions(string, regex): + versions = Consensus._search_re(string, regex)[0].split(",") + return versions - return consensus, fields + @staticmethod + def _parse_voting_delay(string): + groups = Consensus._search_re(string, RE_VOTING_DELAY) + voting_delay = {"vote": int(groups[0]), "dist": int(groups[1])} + return voting_delay -def consume_footer(consensus, flavor='unflavored'): - """ - Consume consensus footer if present, then returns the remaining input - to be further processed and a set of footers (or None, if none - present). - Will consume the following fields: - - directory-footer - - bandwidth-weights - - directory-signature + @staticmethod + def parse(consensus_raw, flavor): + """Parse a raw consensus.""" - :param str consensus: input to be processed - :param str flavor: consensus flavor ('unflavored' or 'microdesc') + raw = consensus_raw - :returns: a tuple (remaining-input, headers-or-None) - """ - if flavor not in ['unflavored', 'microdesc']: - raise NotImplementedError( - 'Consensus flavor "{}" not supported.'.format(flavor)) - - whitelist = [ - b'directory-footer', b'bandwidth-weights', b'directory-signature'] - - def end_of_field(line): - if b'directory-footer' == line: - return False - if b' ' not in line: - return True - keyword, _ = line.split(b' ', 1) - return keyword not in whitelist - - fields = dict() - valid = False - while True: - consensus, header = scrap(consensus, end_of_field) - if header is None: - return consensus, fields if valid else None - - valid = True - if b' ' not in header: - continue + if flavor == Flavor.UNFLAVORED: + flavor_str = "unflavored" + else: + flavor_str = "microdesc" + + network_status_version = { + "version": int( Consensus._search_re(raw, RE_NETWORK_STATUS_VERSION)[0]), + "flavor": flavor_str + } + + vote_status = Consensus._search_re(raw, RE_VOTE_STATUS)[0] + consensus_method = int(Consensus._search_re(raw, RE_CONSENSUS_METHOD)[0]) + valid_after = Consensus._parse_date(raw, RE_VALID_AFTER) + fresh_until = Consensus._parse_date(raw, RE_FRESH_UNTIL) + valid_until = Consensus._parse_date(raw, RE_VALID_UNTIL) + voting_delay = Consensus._parse_voting_delay(raw) + client_versions = Consensus._parse_versions(raw, RE_CLIENT_VERSIONS) + server_versions = Consensus._parse_versions(raw, RE_SERVER_VERSIONS) + known_flags = Consensus._search_re(raw, RE_KNOWN_FLAGS)[0].split(" ") + rec_client_proto = Consensus._parse_protocols(raw, RE_RECOMMENDED_CLIENT_PROTOCOLS) + rec_relay_proto = Consensus._parse_protocols(raw, RE_RECOMMENDED_RELAY_PROTOCOLS) + req_client_proto = Consensus._parse_protocols(raw, RE_REQUIRED_CLIENT_PROTOCOLS) + req_relay_proto = Consensus._parse_protocols(raw, RE_REQUIRED_RELAY_PROTOCOLS) + shared_rand_curr_value = Consensus._parse_shared_rand(raw, RE_SHARED_RAND_CURRENT_VALUE) + + headers = { + "network-status-version": network_status_version, + "vote-status": vote_status, + "consensus-method": consensus_method, + "valid-after": valid_after, + "fresh-until": fresh_until, + "valid-until": valid_until, + "voting-delay": voting_delay, + "client-versions": client_versions, + "server-versions": server_versions, + "known-flags": known_flags, + "recommended-client-protocols": rec_client_proto, + "recommended-relay-protocols": rec_relay_proto, + "required-client-protocols": req_client_proto, + "required-relay-protocols": req_relay_proto, + "shared-rand-current-value": shared_rand_curr_value + } try: - header = str(header, 'utf8') - except: - continue - - keyword, content = header.split(' ', 1) - if keyword == 'directory-footer' and not len(fields) == 0: - raise RuntimeError('Expect {} as first field!'.format(keyword)) - - if keyword == 'bandwidth-weights': - content = parse_params(content) - - if keyword == 'directory-signature': - content = content.split(' ', 2) - if len(content) == 3: - algorithm, identity, signing_key_digest = content - elif len(content) == 2: - algorithm = 'sha1' - identity, signing_key_digest = content - - content = { - 'Algorithm': algorithm, - 'identity': identity, - 'signing-key-digest': signing_key_digest} - - consensus, signature = scrap_signature(consensus) - if signature is not None: - signature = parse_base64(str(signature, 'utf8')) - content['signature'] = signature - - if keyword + 's' not in fields: - fields[keyword + 's'] = [] - fields[keyword + 's'].append(content) - continue - - fields[keyword] = content - return consensus, fields - - -def parse(consensus, flavor='unflavored'): - """ - Parse a raw consensus with the given flavor, then returns sanitized - entries as a python dictionary. - - :param str consensus: input to be processed - :param str flavor: consensus flavor ('unflavored' or 'microdesc') - - :returns: a python dictionary - """ - fields = dict(flavor=flavor) - - consensus, http = consume_http(consensus) - if http is not None: - fields['http'] = http - - consensus, headers = consume_headers(consensus, flavor) - if headers is not None: - fields['headers'] = headers - - consensus, dir_sources = consume_dir_sources(consensus) - if dir_sources is not None: - fields['dir-sources'] = dir_sources - - consensus, routers = consume_routers(consensus, flavor) - if routers is not None: - fields['routers'] = routers - - consensus, footer = consume_footer(consensus, flavor) - if footer is not None: - fields['footer'] = footer + shared_rand_prev_value = Consensus._parse_shared_rand(raw, RE_SHARED_RAND_PREVIOUS_VALUE) + headers["shared-rand-previous-value"] = shared_rand_prev_value + except InvalidConsensus: + pass - if not ('headers' in fields - and 'dir-sources' in fields - and 'routers' in fields - and 'footer' in fields): - raise RuntimeError('Missing entry: {}'.format(list(fields))) + dir_sources = list() - return fields, consensus + for groups in Consensus._findall_re(raw, RE_DIR_SOURCE): + dir_source = { + "nickname": groups[0], + "identity": groups[1].lower(), + "hostname": groups[2], + "address": groups[3], + "dirport": int(groups[4]), + "orport": int(groups[5]), + "contact": groups[6], + "vote-digest": groups[7].lower() + } + dir_sources.append(dir_source) -def extract_date(consensus, field): - """ - Retrieve the value from a date field as a datetime object. - """ + relays = Consensus._parse_relays(raw, flavor) - pattern = re.compile('{} [^\n]+'.format(field)) - found = pattern.search(consensus) + footer = Consensus._parse_footer(raw) - if found is None: - raise RuntimeError('Field {} not found in consensus.'.format(field)) + consensus = { + "flavor": flavor_str, + "headers": headers, + "dir-sources": dir_sources, + "routers": relays, + "footer": footer + } - date_s = consensus[found.start():found.end()] - date = datetime.datetime.strptime(date_s, '{} %Y-%m-%d %H:%M:%S'.format(field)) - date.replace(tzinfo=datetime.timezone.utc) - - return date + return consensus def extract_nodes_digests_unflavored(consensus_raw): @@ -769,7 +413,7 @@ def extract_nodes_digests_unflavored(consensus_raw): # We retrieve the third fields of the lines looking like that: #r VSIFskylab AD14gl4Llgnuz/Xk4FKXF3cuU8c 3VZwLdY0Et7vqUbqDdXg3WGGHCw 2020-01-12 23:47:04 104.218.63.73 443 80 - digests_raw = re.findall(r'^r [^ ]+ [^ ]+ ([^ ]+)', consensus_raw, re.MULTILINE) + digests_raw = RE_RELAY_DIGEST_UNF.findall(consensus_raw) digests_bytes = [b64decode(digest + '====') for digest in digests_raw] return digests_bytes @@ -780,126 +424,43 @@ def extract_nodes_digests_micro(consensus_raw): """ # We retrieve the third fields of the lines looking like that: #m v7E0VcMnwVepVUh+j193lrbqbWOg26g9hXOBwSYv32I - digests_raw = re.findall(r'^m ([^\n]+)', consensus_raw, re.MULTILINE) + digests_raw = RE_RELAY_DIGEST_MIC.findall(consensus_raw) digests_bytes = [digest for digest in digests_raw] return digests_bytes -def download(state, flavor='microdesc', cache=True): - if flavor not in ['unflavored', 'microdesc']: - raise NotImplementedError( - 'Consensus flavor "{}" not supported.'.format(flavor)) - - if cache: - try: - return state, lnn.cache.consensus.get(flavor) - except BaseException: - pass - - endpoint = '/tor/status-vote/current/consensus' - if flavor == 'microdesc': - endpoint += '-microdesc' - - ip = '%s:%d'%('127.0.0.1',7000) #for real tor, change to 9051 - keys = get_signing_keys_info(ip) - state, cons = lnn.hop.directory_query(state, endpoint) - - cons_original = cons - cons, http = consume_http(cons) - - if flavor != 'microdesc': - if not lnn.signature.verify(cons.decode('utf-8'), keys): - raise RuntimeError('Consensus Verification Failed') - - consensus, remaining = parse(cons_original, flavor=flavor) - - if consensus is None or remaining is None or not len(remaining) == 0: - raise RuntimeError('Unable to parse downloaded consensus!') - - if cache: - lnn.cache.consensus.put(consensus) - - return state, consensus - - -def download_direct(hostname, port, flavor='microdesc'): +def download_direct(hostname, port, flavor=Flavor.MICRO): """Retrieve consensus via a direct HTTP connection. :param hostname: host name of the node from which to retrieve the consensus. :param port: port of the node from which to retrieve the consensus. :param flavor: flavour of the consensus to retrieve. - :param cache: if the retrieved consensus should put in the cache. """ - if flavor not in ['unflavored', 'microdesc']: - raise NotImplementedError( - 'Consensus flavor "{}" not supported.'.format(flavor)) - - endpoint = 'consensus-microdesc' if flavor == 'microdesc' else 'consensus' - uri = 'http://%s:%d/tor/status-vote/current/%s' % (hostname, port, endpoint) - - res = urllib.request.urlopen(uri) - cons = res.read() + cons_raw = download_raw(hostname, port, flavor) - ip = '%s:%d'%(hostname,port) - keys = get_signing_keys_info(ip) + keys = lnn.keys.fetch_and_parse_keys(hostname, port) - if flavor != 'microdesc': - if not lnn.signature.verify(cons.decode('utf-8'), keys): - raise RuntimeError('Consensus Verification Failed') + if flavor == Flavor.UNFLAVORED: + if not lnn.signature.verify(cons_raw, keys): + raise InvalidConsensus("Invalid signature.") - consensus, remaining = parse(cons, flavor=flavor) + consensus = Consensus.parse(cons_raw, flavor=flavor) - if consensus is None or remaining is None or not len(remaining) == 0: - raise RuntimeError('Unable to parse downloaded consensus!') - return consensus, keys -def download_raw(hostname, port, flavor='unflavored'): + +def download_raw(hostname, port, flavor=Flavor.UNFLAVORED): """Retrieve raw consensus via a direct HTTP connection. :param hostname: host name of the node from which to retrieve the consensus. :param port: port of the node from which to retrieve the consensus. :param flavor: flavour of the consensus to retrieve. """ - if flavor not in ['unflavored', 'microdesc']: - raise NotImplementedError( - 'Consensus flavor "{}" not supported.'.format(flavor)) - - endpoint = 'consensus-microdesc' if flavor == 'microdesc' else 'consensus' + endpoint = 'consensus-microdesc' if flavor == Flavor.MICRO else 'consensus' uri = 'http://%s:%d/tor/status-vote/current/%s' % (hostname, port, endpoint) res = urllib.request.urlopen(uri) - cons = res.read().decode('utf-8') + cons = res.read().decode('ASCII') return cons - -def load(file_name, cache=True): - """Load the consensus from a file - :param file_name: the name of the file in consensus_file - :param cache: if we cache the newly downloaded consensus - :return: the parsed consensus""" - - abs_path = "/vagrant/consensus_files/"+file_name - - if not os.path.exists(abs_path): - raise FileNotFoundError() - - if cache: - try: - return lnn.cache.consensus.get("unflavored") - except BaseException: - pass - - with open(abs_path, "r") as file: - answer = file.read() - - consensus, remaining = consume_routers(answer) - - if consensus is None or remaining is None or not len(remaining) == 0: - raise RuntimeError('Unable to parse downloaded consensus!') - - if cache: - lnn.cache.consensus.put(consensus) - - return consensus diff --git a/lightnion/create.py b/lightnion/create.py deleted file mode 100644 index 3ccb4c9..0000000 --- a/lightnion/create.py +++ /dev/null @@ -1,280 +0,0 @@ -import collections -import base64 -import queue -import time -import asyncio -import logging - -import nacl.public - -import lightnion as lnn - -class circuit(collections.namedtuple('circuit', ['id', 'material'])): - stream_windows = None # per-stream window (see onion._auto_sendme hack) - last_stream_id = 0 - destroyed = False - window = None # per-circuit window (see onion._auto_sendme hack) - reason = None - queue = None - - def put(self, payload): - return self.queue.put(payload) - - def get(self, block=True): - return self.queue.get(block=block) - - -async def fast_async(link): - """Use a CREATE_FAST cell to initiate a one-hop circuit. - - The expected transcript is: - - (... perform a proper link handshake here ...) - - Onion Proxy (client) Onion Router (server) - - / [ 7] :------ CREATE_FAST¹ -------> [8] - | [10] <------ CREATED_FAST -------: [9] - | - | Shared circuit key (via KDF-TOR²) - \ - - ¹The initiator picks an available circuit ID (CircID) with its most - significant bit equal to 1 (v4-or-higher links). - - :param link: a link.link object, see: link.initiate - - :returns: a onion.state object, see: onion.state - """ - - # Pick an available ID (link version > 3) - link.last_id += 1 - circuit_id = 0x80000000 + link.last_id - while circuit_id in link.circuits: - circuit_id += 1 - - # Sanity checks - try: - packed = lnn.cell.view.uint(4).write(value=circuit_id) - assert circuit_id == lnn.cell.view.uint(4).value(packed) - except (OverflowError, AssertionError): - link.last_id = 0 - raise RuntimeError('Erroneous circuit ID: {} ({})'.format( - circuit_id, packed)) - - # Send CREATE_FAST cell (contains OP material) - op_cell = lnn.cell.create_fast.pack(circuit_id) - await link.send_async(op_cell) - - # (register a dummy circuit first to reuse the circuit API) - dummy = circuit(circuit_id, None) - await link.register_async(dummy) - - # Receive CREATED_FAST cell (contains OR material and key confirmation) - try: - or_cell = lnn.cell.created_fast.cell(await link.get_async(dummy)) - except KeyError: - raise RuntimeError('Got DESTROY cell while creating circuit.') - - # (unregister the dummy circuit before validation/material confirmation) - await link.unregister_async(dummy) - if not or_cell.valid: - raise RuntimeError('Got invalid CREATED cell: {}'.format(or_cell.raw)) - - # Compute KDF-TOR on OP+OR materials - material = lnn.crypto.kdf_tor( - op_cell.create_fast.material + or_cell.created_fast.material) - - # Confirm shared derived material - if not material.key_hash == or_cell.created_fast.derivative: - raise RuntimeError( - 'Invalid CREATE_FAST, invalid KDF-TOR confirmation: '.format( - (material.key_hash, or_cell.created_fast.derivative))) - - # Register the real circuit - final = circuit(circuit_id, material) - await link.register_async(final) - - return lnn.onion.state(link, final) - - -def fast(link): - """Use a CREATE_FAST cell to initiate a one-hop circuit. - - The expected transcript is: - - (... perform a proper link handshake here ...) - - Onion Proxy (client) Onion Router (server) - - / [ 7] :------ CREATE_FAST¹ -------> [8] - | [10] <------ CREATED_FAST -------: [9] - | - | Shared circuit key (via KDF-TOR²) - \ - - ¹The initiator picks an available circuit ID (CircID) with its most - significant bit equal to 1 (v4-or-higher links). - - :param link: a link.link object, see: link.initiate - - :returns: a onion.state object, see: onion.state - """ - - # Pick an available ID (link version > 3) - link.last_id += 1 - circuit_id = 0x80000000 + link.last_id - while circuit_id in link.circuits: - circuit_id += 1 - - # Sanity checks - try: - packed = lnn.cell.view.uint(4).write(value=circuit_id) - assert circuit_id == lnn.cell.view.uint(4).value(packed) - except (OverflowError, AssertionError): - link.last_id = 0 - raise RuntimeError('Erroneous circuit ID: {} ({})'.format( - circuit_id, packed)) - - # Send CREATE_FAST cell (contains OP material) - op_cell = lnn.cell.create_fast.pack(circuit_id) - link.send(op_cell) - - # (register a dummy circuit first to reuse the circuit API) - dummy = circuit(circuit_id, None) - link.register(dummy) - - # Receive CREATED_FAST cell (contains OR material and key confirmation) - try: - or_cell = lnn.cell.created_fast.cell(link.get(dummy)) - except KeyError: - raise RuntimeError('Got DESTROY cell while creating circuit.') - - # (unregister the dummy circuit before validation/material confirmation) - link.unregister(dummy) - if not or_cell.valid: - raise RuntimeError('Got invalid CREATED cell: {}'.format(or_cell.raw)) - - # Compute KDF-TOR on OP+OR materials - material = lnn.crypto.kdf_tor( - op_cell.create_fast.material + or_cell.created_fast.material) - - # Confirm shared derived material - if not material.key_hash == or_cell.created_fast.derivative: - raise RuntimeError( - 'Invalid CREATE_FAST, invalid KDF-TOR confirmation: '.format( - (material.key_hash, or_cell.created_fast.derivative))) - - # Register the real circuit - final = circuit(circuit_id, material) - link.register(final) - - return lnn.onion.state(link, final) - - -def ntor_raw(link, payload, timeout=None): - # Pick an available ID (link version > 3) - link.last_id += 1 - circuit_id = 0x80000000 + link.last_id - while circuit_id in link.circuits: - circuit_id += 1 - - # Sanity checks - try: - packed = lnn.cell.view.uint(4).write(value=circuit_id) - assert circuit_id == lnn.cell.view.uint(4).value(packed) - except (OverflowError, AssertionError): - link.last_id = 0 - raise RuntimeError('Erroneous circuit ID: {} ({})'.format( - circuit_id, packed)) - - # Build a CREATE2 cell containing this first handshake part - handshake = lnn.cell.create2.pack(circuit_id, payload) - - # Change: Instead, the handshake data is send to the client with the handshake data. - return circuit_id, lnn.cell.pad(handshake) - - -def ntor_raw2(circuit_id, payload): - - # Build a CREATE2 cell containing this first handshake part - handshake = lnn.cell.create2.pack(circuit_id, payload) - - # The handshake data is send to the client. - return lnn.cell.pad(handshake) - - -# Was in the method above, before. -def ntor_handshake(link, circuit_id, handshake, timeout=None): - link.send(handshake) - - # (register a dummy circuit first to reuse the circuit API) - dummy = circuit(circuit_id, None) - link.register(dummy) - - # Receive answers - cell = None - try: - if timeout is None: - cell = lnn.cell.created2.cell(link.get(dummy)) - else: - for _ in range(10): - try: - cell = lnn.cell.created2.cell( - link.get(dummy, block=False)) - break - except queue.Empty: - time.sleep(timeout / 10) - if cell is None: - link.unregister(dummy) - raise RuntimeError('Got timeout while creating circuit.') - except KeyError: - raise RuntimeError('Got DESTROY cell while creating circuit.') - - # (unregister the dummy circuit before validation/material confirmation) - link.unregister(dummy) - if not cell.valid: - raise RuntimeError('Got invalid CREATED2 cell: {}'.format(cell.raw)) - - return cell.created2.data - - -async def ntor_async(link, descriptor): - identity = base64.b64decode(descriptor['router']['identity'] + '====') - onion_key = base64.b64decode(descriptor['ntor-onion-key'] + '====') - - # Perform the first part of our handshake - ephemeral_key, payload = lnn.crypto.ntor.hand(identity, onion_key) - - circuit_id, payload = await ntor_raw_async(link, payload) - - # Perform the last part of our handshake - material = lnn.crypto.ntor.shake(ephemeral_key, payload, - identity, onion_key, length=92) - - # Register the real circuit - final = circuit(circuit_id, lnn.crypto.ntor.kdf(material)) - await link.register_async(final) - - return lnn.onion.state(link, final) - - -def ntor(link, descriptor): - identity = base64.b64decode(descriptor['router']['identity'] + '====') - onion_key = base64.b64decode(descriptor['ntor-onion-key'] + '====') - - # Perform the first part of our handshake - ephemeral_key, payload = lnn.crypto.ntor.hand(identity, onion_key) - - circuit_id, handshake = ntor_raw(link, payload) - payload = ntor_handshake(link, circuit_id, handshake) - - # Perform the last part of our handshake - material = lnn.crypto.ntor.shake(ephemeral_key, payload, - identity, onion_key, length=92) - - # Register the real circuit - final = circuit(circuit_id, lnn.crypto.ntor.kdf(material)) - link.register(final) - - return lnn.onion.state(link, final) diff --git a/lightnion/descriptors.py b/lightnion/descriptors.py index e57959e..0eca7f5 100644 --- a/lightnion/descriptors.py +++ b/lightnion/descriptors.py @@ -1,356 +1,285 @@ +""" +Descriptors handlers. +""" + import base64 -import hashlib +import re +from datetime import datetime, timezone import logging import urllib.request +from stem.descriptor.server_descriptor import RelayDescriptor +from stem.descriptor.microdescriptor import Microdescriptor + import lightnion as lnn -from lightnion import consensus +from lightnion.consensus import Flavor -def compute_descriptor_digest(fields, descriptors, entry, flavor): - """ - (details of the parser – private API) +RE_ROUTERS_UNF = re.compile(r"^router ", re.M) +RE_ROUTERS_MIC = re.compile(r"^onion-key\n", re.M) - Plugs into our consumer to compute extra "digest" fields that expose - the (micro-)descriptor's (micro-)digest, enabling us to easily fetch - associated entries within a consensus. +RE_PEM = re.compile(r"""-----BEGIN [^-]+----- +([A-Za-z0-9+/=\n]+) +-----END [^-]+-----""") - :param list fields: "fields" accumulator used by the consumer - :param bytes descriptors: remaining input to be parsed by the consumer - :param bytes entry: last line being parsed by the consumer - :param str flavor: flavor used by the consumer +FLAVOR_STR_MIC = "microdesc" +FLAVOR_STR_UNF = "unflavored" - :returns: updated (or not) fields accumulator - """ +IDENTIFIERS_TYPES = ( + "ed25519", + "rsa1024" +) - if flavor == 'unflavored': - digest_name = 'digest' - pivot_field = 'router' - starts_hash = b'router ' - ends_hasher = b'router-signature' - base_offset = 1 - base_legacy = 0 - shalgorithm = hashlib.sha1 - # https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L602 - else: - digest_name = 'micro-digest' - pivot_field = 'onion-key' - starts_hash = b'onion-key' - ends_hasher = b'id ' - base_offset = 7 + 1 + 43 + 1 # 'ed25519 [identity]\n' - base_legacy = 7 + 1 + 27 + 1 # 'rsa1024 [identity]\n' - shalgorithm = hashlib.sha256 - # https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L3202 - - # 1. check if we're starting to parse a fresh entry before computing digest - if digest_name not in fields[-1] or ( - entry.startswith(starts_hash) and pivot_field in fields[-1]): - if pivot_field in fields[-1]: - fields.append(dict()) - - # 1.5 (extra sanity checks: double-check that we have what we need) - if not entry.startswith(starts_hash): - raise RuntimeError('Expecting {} to start the payload: {}'.format( - starts_hash, entry)) - if not ends_hasher in descriptors: - raise RuntimeError( - 'Expecting {} within: {}'.format(ends_hasher, descriptors)) - - try: - # 2. compute the offset to the ends what goes into the hash - sigoffset = descriptors.index(ends_hasher) - - # TODO: better support? - sigoffset += len(ends_hasher) + base_offset - if b'rsa1024' in descriptors[:sigoffset]: - sigoffset -= base_offset - sigoffset += base_legacy - - # 3. rebuild the original (including its first line being parsed) - full_desc = entry + b'\n' + descriptors[:sigoffset] - - # 4. compute the base64-encoded hash with the right algorithm - digest = base64.b64encode(shalgorithm(full_desc).digest()) - - # 5. strips the trailing '=' as specified - fields[-1][digest_name] = str(digest.rstrip(b'='), 'utf8') - except ValueError: - pass - - if not digest_name in fields[-1]: - raise RuntimeError('Was unable to generate proper sum.') - - return fields - -def consume_descriptors(descriptors, flavor='microdesc'): - if flavor not in ['microdesc', 'unflavored']: - raise NotImplementedError( - 'Consensus flavor "{}" not supported.'.format(flavor)) - - # TODO: check if family in microdesc are appropriate - if flavor == 'microdesc': - whitelist = [b'onion-key', b'ntor-onion-key', b'p', b'p6', b'id', - b'family'] - else: - whitelist = [b'router', b'identity-ed25519', b'master-key-ed25519', - b'platform', b'proto', b'published', b'fingerprint', b'uptime', - b'bandwidth', b'extra-info-digest', b'qkk', b'caches-extra-info', - b'onion-key', b'signing-key', b'onion-key-crosscert', - b'ntor-onion-key-crosscert', b'hidden-service-dir', b'contact', - b'ntor-onion-key', b'reject', b'accept', b'tunnelled-dir-server', - b'router-sig-ed25519', b'router-signature', b'ipv6-policy', - b'family', b'protocols', b'or-address', b'allow-single-hop-exits', - b'hibernating'] - aliases = {'p': 'policy', 'p6': 'ipv6-policy', 'id': 'identity'} - - def end_of_field(line): - if b' ' not in line: - line += b' ' - keyword, _ = line.split(b' ', 1) - return keyword not in whitelist - - fields = [dict()] - valid = False - while True: - descriptors, entry = consensus.scrap(descriptors, end_of_field) - if entry is None: - if not valid: - return descriptors, None - break - fields = compute_descriptor_digest(fields, descriptors, entry, flavor) - - valid = True - if b' ' not in entry: - entry += b' ' - - try: - entry = str(entry, 'utf8') - except: - continue - - keyword, content = entry.split(' ', 1) - if keyword == 'router': - nick, address, orport, socksport, dirport = content.split(' ', 4) - content = dict( - nickname=nick, - address=address, - orport=int(orport), - socksport=int(socksport), - dirport=int(dirport)) - - if keyword in ['platform', 'contact']: - pass # nothing to process - - if keyword in ['reject', 'accept']: - base = dict(type='exitpattern') - if 'policy' in fields[-1]: - base = fields[-1]['policy'] - if not base['type'] == 'exitpattern': - raise RuntimeError('Unknown policy: {}'.format(base)) - if 'rules' not in base: - base['rules'] = [] - - base['rules'].append(dict(type=keyword, pattern=content)) - fields[-1]['policy'] = base - continue - - if keyword == 'or-address': - base = [] - if 'or-address' in fields[-1]: - base = fields[-1]['or-address'] - - address, port, guess = consensus.parse_address(content) - content = [{'ip': address, 'port': port, 'type': guess}] - if len(base) > 0: - content[0]['ignored'] = True - - base += content - fields[-1]['or-address'] = base - continue - - if keyword == 'family': - content = content.split(' ') - - if keyword == 'proto': - content = consensus.parse_ranges(content) - - # The spec says 'New code should neither […] nor parse this line' - if keyword == 'protocols': - pass - - if keyword in ['allow-single-hop-exits', 'hibernating']: - content = True - - if keyword == 'published': - date, time, when = consensus.parse_time(content) - content = dict(date=date, time=time, stamp=when.timestamp()) - - if keyword == 'fingerprint': - content = consensus.parse_fingerprint(content) - - # Enrich 'router' with 'identity' fingerprint for convenience - if 'router' in fields[-1]: - identity = bytes.fromhex(content.replace(' ', '')) - identity = str(base64.b64encode(identity), 'utf8') - fields[-1]['router']['identity'] = identity.replace('=', '') - - if keyword == 'uptime': - content = int(content) - - if keyword == 'bandwidth': - avg, burst, observed = content.split(' ', 2) - content = dict( - avg=int(avg), burst=int(burst), observed=int(observed)) - - if keyword == 'extra-info-digest': - if ' ' in content: - sha1, sha256 = content.split(' ', 1) - sha256 = consensus.parse_base64(sha256) - content = dict(sha1=sha1, sha256=sha256) - else: - content = dict(sha1=content) - - if keyword in ['caches-extra-info', 'hidden-service-dir', - 'tunnelled-dir-server']: - content = True - - if keyword in ['onion-key', 'signing-key']: - if not content == '': - raise RuntimeError('Trailing content with {}: {}'.format( - keyword, content)) - - descriptors, pubkey = consensus.scrap_signature(descriptors, - fix=b'RSA PUBLIC KEY') - if pubkey is not None: - content = consensus.parse_base64(str(pubkey, 'utf8')) - - if keyword == 'onion-key-crosscert': - if not content == '': - raise RuntimeError('Trailing content with {}: {}'.format( - keyword, content)) - - descriptors, crosscrt = consensus.scrap_signature(descriptors, - fix=b'CROSSCERT') - if crosscrt is not None: - content = consensus.parse_base64(str(crosscrt, 'utf8')) - - if keyword == 'ntor-onion-key-crosscert': - bit = int(content) - - descriptors, edcert = consensus.scrap_signature(descriptors, - fix=b'ED25519 CERT') - if edcert is not None: - content = consensus.parse_base64(str(edcert, 'utf8')) - content = dict(bit=bit, cert=content) - - if keyword == 'ntor-onion-key': - content = consensus.parse_base64(content) - - if keyword in ['p', 'p6', 'ipv6-policy']: - policy_type, portlist = content.split(' ') - if not policy_type in ['accept', 'reject']: - raise RuntimeError('Unknown policy: {}'.format(policy_type)) - - portlist = consensus.parse_range_once(portlist, expand=False) - content = {'type': policy_type, 'PortList': portlist} - - if keyword == 'id': - id_type, data = content.split(' ') - if not id_type in ['rsa1024', 'ed25519']: - raise RuntimeError('Unknown id key type: {}'.format(id_type)) - - content = {'type': id_type, - 'master-key': consensus.parse_base64(data)} - - if keyword in ['router-sig-ed25519', 'router-signature']: - base = dict() - if 'router-signatures' in fields[-1]: - base = fields[-1]['router-signatures'] - - if keyword == 'router-sig-ed25519': - if 'router-signatures' in fields[-1]: - raise RuntimeError('Ed25519 must be first!') - if not 'identity' in fields[-1]: - raise RuntimeError('Need identity with {} here: {}'.format( - keyword, fields[-1])) - if not 'cert' in fields[-1]['identity']: - raise RuntimeError('Need cert. in identity: {}'.format( - fields[-1])) - base['ed25519'] = consensus.parse_base64(content) - - if keyword == 'router-signature': - descriptors, sig = consensus.scrap_signature(descriptors, - fix=b'SIGNATURE') - if sig is not None: - content = consensus.parse_base64(str(sig, 'utf8')) - base['rsa'] = content - - fields[-1]['router-signatures'] = base - continue - - if keyword in ['identity-ed25519', 'master-key-ed25519']: - base = dict() - if 'identity' in fields[-1]: - base = fields[-1]['identity'] - - if 'type' not in base: - base['type'] = 'ed25519' - if not base['type'] == 'ed25519': - raise RuntimeError('Invalid key type {} here:'.format(base)) - - if keyword == 'identity-ed25519': - if 'cert' in base: - raise RuntimeError('Extra cert. here: {}'.format(base)) - - descriptors, edcert = consensus.scrap_signature(descriptors, - fix=b'ED25519 CERT') - if edcert is not None: - base['cert'] = consensus.parse_base64(str(edcert, 'utf8')) - - if keyword == 'master-key-ed25519': - if 'master-key' in base: - raise RuntimeError('Extra master key: {}'.format(base)) - - base['master-key'] = consensus.parse_base64(content) - - # TODO: validation if both master-key & identity are present - fields[-1]['identity'] = base - continue - - if keyword in aliases: - keyword = aliases[keyword] - - if keyword in fields[-1]: - fields.append(dict()) - - fields[-1][keyword] = content - return descriptors, fields - - -def parse_descriptors(descriptors, flavor='microdesc'): - fields = dict(flavor=flavor) - nbdesc = descriptors.count(b'onion-key\n-----BEGIN') - - descriptors, http = consensus.consume_http(descriptors) - if http is not None: - fields['http'] = http - - descriptors, entries = consume_descriptors(descriptors, flavor) - if entries is None or len(entries) == 0: - entries = [] - fields['descriptors'] = entries - if not len(fields['descriptors']) == nbdesc: - raise RuntimeError( - 'Unexpected or corrupted descriptor? ({}/{} found)'.format( - len(fields['descriptors']), nbdesc)) +class InvalidDescriptor(Exception): + pass + + +class Descriptors: + + @staticmethod + def _search_re(string, regex): + # Convenience function to search for the first instance of the pattern. + match = regex.search(string) + if not match: + raise InvalidDescriptor("Invalid format.") + + groups = match.groups() + return groups + + + @staticmethod + def _findall_re(string, regex): + # Convenience function to search for all instances of the pattern. + groups = regex.findall(string) + if not groups: + raise InvalidDescriptor("Invalid format.") + + return groups + + + @staticmethod + def _date_from_datetime(dt): + date_dict = { + "date": "{:04d}-{:02d}-{:02d}".format(dt.year, dt.month, dt.day), + "time": "{:02d}:{:02d}:{:02d}".format(dt.hour, dt.minute, dt.second), + "stamp": dt.replace(tzinfo=timezone.utc).timestamp() + } + return date_dict + - # Add flavor for convenience - for idx in range(len(fields['descriptors'])): - fields['descriptors'][idx]['flavor'] = flavor + @staticmethod + def _parse_exit_policy(policy): + rules = list() + for rule_obj in policy: + rule_l = str(rule_obj).split(" ") + rule = { + "type": rule_l[0], + "pattern": rule_l[1] + } + rules.append(rule) - if descriptors == b'\n': - descriptors = b'' - return fields, descriptors + policy_dict = { + "type": "exitpattern", + "rules": rules + } + + return policy_dict + + + @staticmethod + def _parse_exit_policy_mic(policy): + + if not policy: + return None + + summary = policy.summary() + # something like 'reject 1-442, 444-1024' + + if summary == "reject 1-65535": + return None + + rules = list() + rule_type = summary[0:6] + ports_pairs = summary[7:].split(", ") + + for ports_pair in ports_pairs: + if "-" in ports_pair: + port_min, port_max = ports_pair.split("-") + else: + port_min = port_max = ports_pairs + + rules.append([int(port_min), int(port_max)]) + + policy_dict = { + "type": rule_type, + "PortList": rules + } + + return policy_dict + + + @staticmethod + def _parse_router_mic(string): + desc = Microdescriptor(string) + + identity = None + for identifier_type in IDENTIFIERS_TYPES: + if identifier_type in desc.identifiers: + identity = { + "type": identifier_type, + "master-key": desc.identifiers[identifier_type] + } + break + + if not identity: + raise InvalidDescriptor + + onion_key = Descriptors._search_re(desc.onion_key, RE_PEM)[0] + + microdescriptor = { + "micro-digest": desc.digest(), + "onion-key": onion_key.replace("\n", ""), + "ntor-onion-key": desc.ntor_onion_key, + "identity": identity, + "flavor": FLAVOR_STR_MIC + } + + policy = Descriptors._parse_exit_policy_mic(desc.exit_policy) + if policy: + microdescriptor["policy"] = policy + + policy = Descriptors._parse_exit_policy_mic(desc.exit_policy_v6) + if policy: + microdescriptor["ipv6-policy"] = policy + + return microdescriptor + + + @staticmethod + def _parse_router_unf(string): + desc = RelayDescriptor(string) + + router_id = base64.b64encode(bytes.fromhex(desc.fingerprint.replace(" ", ""))).replace(b"=", b"").replace(b"\n", b"") + + identity_cert = Descriptors._search_re(desc.ed25519_certificate, RE_PEM)[0].replace("\n", "") + + fingerprint = desc.fingerprint + fingerprint = " ".join([fingerprint[i:i+4] for i in range(0,len(fingerprint),4)]) + + onion_key = Descriptors._search_re(desc.onion_key, RE_PEM)[0].replace("\n", "") + signing_key = Descriptors._search_re(desc.signing_key, RE_PEM)[0].replace("\n", "") + onion_key_crosscert = Descriptors._search_re(desc.onion_key_crosscert, RE_PEM)[0].replace("\n", "") + ntor_onion_key_crosscert = Descriptors._search_re(desc.ntor_onion_key_crosscert, RE_PEM)[0].replace("\n", "") + rsa_signature = Descriptors._search_re(desc.signature, RE_PEM)[0].replace("\n", "") + + descriptor = { + "digest": desc.digest(hash_type='SHA1',encoding='BASE64'), + "router": { + "nickname": desc.nickname, + "address": desc.address, + "orport": desc.or_port, + "socksport": 0, + "dirport": desc.dir_port, + "identity": router_id.decode("ASCII") + }, + "identity": { + "type": "ed25519", + "cert": identity_cert, + "master-key": desc.ed25519_master_key + }, + "platform": desc.platform.decode("ASCII"), + "proto": desc.protocols, + "published": Descriptors._date_from_datetime(desc.published), + "fingerprint": fingerprint, + "uptime": desc.uptime, + "bandwidth": { + "avg": desc.average_bandwidth, + "burst": desc.burst_bandwidth, + "observed": desc.observed_bandwidth + }, + "extra-info-digest": { + "sha1": desc.extra_info_digest, + "sha256": desc.extra_info_sha256_digest + }, + "onion-key": onion_key, + "signing-key": signing_key, + "onion-key-crosscert": onion_key_crosscert, + "ntor-onion-key-crosscert": { + "bit": int(desc.ntor_onion_key_crosscert_sign), + "cert": ntor_onion_key_crosscert + }, + "hidden-service-dir": desc.is_hidden_service_dir, + "ntor-onion-key": desc.ntor_onion_key, + "tunnelled-dir-server": desc.allow_tunneled_dir_requests, + "router-signatures": { + "ed25519": desc.ed25519_signature, + "rsa": rsa_signature + }, + "flavor": FLAVOR_STR_UNF + } + + if desc.extra_info_cache: + descriptor["caches-extra-info"] = True + + if desc.exit_policy: + policy = Descriptors._parse_exit_policy(desc.exit_policy) + descriptor["policy"] = policy + + policy = Descriptors._parse_exit_policy_mic(desc.exit_policy_v6) + if policy: + descriptor["ipv6-policy"] = policy + + + if desc.contact: + contact = desc.contact.decode("ASCII") + + descriptor["contact"] = contact + + return descriptor + + + @staticmethod + def parse(descriptors_raw, flavor=Flavor.MICRO): + + # alias + raw = descriptors_raw + + if flavor == Flavor.MICRO: + flavor_str = FLAVOR_STR_MIC + router_func = Descriptors._parse_router_mic + routers_regex = RE_ROUTERS_MIC + elif flavor == Flavor.UNFLAVORED: + flavor_str = FLAVOR_STR_UNF + router_func = Descriptors._parse_router_unf + routers_regex = RE_ROUTERS_UNF + + routers = list() + + matches = routers_regex.finditer(descriptors_raw) + if not matches: + raise InvalidDescriptor("Invalid format.") + + match = next(matches) + + idx_0 = match.start() + + for match in matches: + idx_1 = match.start() + + router = router_func(raw[idx_0:idx_1]) + routers.append(router) + + idx_0 = idx_1 + + router = router_func(raw[idx_0:-1]) + routers.append(router) + + descriptors = { + "flavor": flavor_str, + "descriptors": routers + } + + return descriptors def batch_query(items, prefix, separator='-', fixed_max_length=4096-128): @@ -358,21 +287,29 @@ def batch_query(items, prefix, separator='-', fixed_max_length=4096-128): # https://github.com/plcp/tor-scripts/blob/master/torspec/dir-spec-4d0d42f.txt#L3392 query = '' + query_len = 0 + prefix_len = len(prefix) + sep_len = len(separator) + for item in items: - if len(item) + len(query) >= fixed_max_length: + item_len = len(item) + if query_len + item_len >= fixed_max_length: yield query query = '' + query_len = 0 - if len(query) == 0: - query += prefix + item - else: + if query: query += separator + item + query_len += item_len + sep_len + else: + query += prefix + item + query_len += item_len + prefix_len - if len(query) != 0: + if query: yield query -def filter_descriptors(descriptors, digests, flavor='unflavored'): +def filter_descriptors(descriptors, digests, flavor=Flavor.UNFLAVORED): """Filter out the invalid descriptors. :param descriptors: Descriptors to be filtered. :param digests: Digests from the consensus. @@ -383,7 +320,7 @@ def filter_descriptors(descriptors, digests, flavor='unflavored'): descriptors_d = dict() # Content depends on descriptor flavour. - if flavor == 'microdesc': + if flavor == Flavor.MICRO: for descriptor in descriptors: fingerprint = descriptor['micro-digest'] descriptor_digests.add(fingerprint) @@ -407,26 +344,19 @@ def filter_descriptors(descriptors, digests, flavor='unflavored'): return descriptors_valid -def download_direct(host, port, cons, flavor='unflavored'): - """Retrieve descriptor via a direct HTTP connection. - :param host: host from which to retrieve the descriptors. - :param port: port from which to retrieve the descriptors. - :param cons: consensus for which nodes a descriptor need to be retrieved. - """ +def download_direct(host, port, cons, flavor=Flavor.MICRO): - if flavor == 'microdesc': + if flavor == Flavor.MICRO: endpoint = '/tor/micro/d/' separator = '-' digests = [router['micro-digest'] for router in cons['routers']] - else: endpoint = '/tor/server/d/' separator = '+' digests = [base64.b64decode(router['digest'] + '====').hex() for router in cons['routers']] - descriptors = [] + descriptors = list() - # Retrieve descriptors not in the cache for query in batch_query(digests, endpoint, separator): uri = 'http://%s:%d%s' % (host, port, query) res = urllib.request.urlopen(uri) @@ -435,61 +365,28 @@ def download_direct(host, port, cons, flavor='unflavored'): raise RuntimeError('Unable to fetch descriptors.') # Rename parse to something sensible - new_batch, remaining = parse_descriptors(res.read(), flavor=flavor) - if new_batch is None or remaining is None or len(remaining) > 0: - raise RuntimeError('Unable to parse descriptors.') + new_batch = Descriptors.parse(res.read().decode("ASCII"), flavor=flavor) - if (len(new_batch['descriptors']) == 0): - raise RuntimeError('No descriptor listed. http={}.'.format(new_batch['http'])) + if not new_batch['descriptors']: + raise RuntimeError('No descriptors listed on {}:{}.'.format(host, port)) if new_batch is not None: descriptors += new_batch['descriptors'] descriptors = filter_descriptors(descriptors, digests, flavor=flavor) - if flavor == 'microdesc': + if flavor == Flavor.MICRO: return {d['micro-digest']: d for d in descriptors} else: return {d['digest']: d for d in descriptors} -def download_relay_descriptor(host='127.0.0.1', port=9051): - """Retrieve a relay's own descriptor. - """ - - uri = 'http://{}:{}/tor/server/authority'.format(host, port) - res = urllib.request.urlopen(uri) - - if res is None or res.getcode() != 200: - raise RuntimeError('Unable to fetch descriptors.') - - descriptors, _ = parse_descriptors(res.read(), flavor='unflavored') - - return descriptors['descriptors'][0] - - -def download_raw(host, port, cons, flavor='unflavored'): +def _download_raw_by_digests(host, port, digests, endpoint, separator): """Retrieve descriptor via a direct HTTP connection. - :param host: host from which to retrieve the descriptors. - :param port: port from which to retrieve the descriptors. - :param cons: consensus for which nodes a descriptor need to be retrieved. """ - - if flavor == 'microdesc': - endpoint = '/tor/micro/d/' - separator = '-' - digests = [router['micro-digest'] for router in cons['routers']] - - else: - endpoint = '/tor/server/d/' - separator = '+' - digests = [base64.b64decode(router['digest'] + '====').hex() for router in cons['routers']] - - - # Retrieve descriptors not in the cache desc = b"" for query in batch_query(digests, endpoint, separator): - uri = 'http://%s:%d%s' % (host, port, query) + uri = 'http://{}:{}{}'.format(host, port, query) res = urllib.request.urlopen(uri) if res is None or res.getcode() != 200: @@ -500,20 +397,6 @@ def download_raw(host, port, cons, flavor='unflavored'): return desc -def download_raw_by_digests_unflavored(host, port, digests_bytes): - """Retrieve descriptor via a direct HTTP connection. - :param host: host from which to retrieve the descriptors. - :param port: port from which to retrieve the descriptors. - :param digests: Digests (in a binary form) of the nodes for which a descriptor need to be retrieved. - """ - - digests = [digest.hex() for digest in digests_bytes] - endpoint = '/tor/server/d/' - separator = '+' - - return _download_raw_by_digests(host, port, digests, endpoint, separator) - - def download_raw_by_digests_micro(host, port, digests_bytes): """Retrieve descriptor via a direct HTTP connection. :param host: host from which to retrieve the descriptors. @@ -527,142 +410,31 @@ def download_raw_by_digests_micro(host, port, digests_bytes): return _download_raw_by_digests(host, port, digests, endpoint, separator) -def _download_raw_by_digests(host, port, digests, endpoint, separator): +def download_raw_by_digests_unflavored(host, port, digests_bytes): """Retrieve descriptor via a direct HTTP connection. + :param host: host from which to retrieve the descriptors. + :param port: port from which to retrieve the descriptors. + :param digests: Digests (in a binary form) of the nodes for which a descriptor need to be retrieved. """ - desc = b"" - for query in batch_query(digests, endpoint, separator): - uri = 'http://{}:{}{}'.format(host, port, query) - res = urllib.request.urlopen(uri) - - if res is None or res.getcode() != 200: - raise RuntimeError('Unable to fetch descriptors.') - - desc += res.read() - - return desc - - -def download(state, cons=None, flavor='microdesc', cache=True, fail_on_missing=False): - logging.warning('Use DEPRECATED method descriptor.download()!') - - if cons is None: - state, cons = consensus.download(state, flavor=flavor, cache=cache) - if cons is None: - return state, None - elif isinstance(cons, list): - cons = dict(routers=cons) - elif isinstance(cons, str): - digest_name = 'micro-digest' if flavor == 'microdesc' else 'digest' - cons = dict(routers={digest_name: cons}) - elif 'routers' not in cons and 'identity' in cons: - cons = dict(routers=[cons]) - if not isinstance(cons, dict): - raise RuntimeError('Expecting a dict for cons, got: {}'.format(cons)) - - digests = [] - if flavor == 'microdesc': - digests = [router['micro-digest'] for router in cons['routers']] - endpoint = '/tor/micro/d/' - separator = '-' - else: - digests = [router['digest'] for router in cons['routers']] - digests = [base64.b64decode(d + '====').hex() for d in digests] - endpoint = '/tor/server/d/' - separator = '+' - - # retrieve descriptors from cache - descriptors = [] - partial_digests = digests - if cache: - digest_name = 'micro-digest' if flavor == 'microdesc' else 'digest' - cached_digests = [] - for digest in digests: - try: - descriptor = lnn.cache.descriptors.get(flavor, digest) - descriptors.append(descriptor) - cached_digests.append(digest) - except BaseException: - pass - partial_digests = [d for d in digests if d not in cached_digests] - - for query in batch_query(partial_digests, endpoint, separator): - state, answer = lnn.hop.directory_query(state, query) - - if answer is None or len(answer) == 0: - continue - - new_batch, remaining = parse_descriptors(answer, flavor=flavor) - if new_batch is None or remaining is None or len(remaining) > 0: - raise RuntimeError('Unable to parse descriptors.') - - if (len(new_batch['descriptors']) == 0 - and not new_batch['http']['code'] == '404'): - raise RuntimeError( - 'No descriptor listed. http={}.'.format(new_batch['http'])) - - if new_batch is not None: - descriptors += new_batch['descriptors'] - - if flavor == 'microdesc': - obtained = [d['micro-digest'] for d in descriptors] - else: - obtained = [d['digest'] for d in descriptors] - obtained = [base64.b64decode(d + '====').hex() for d in obtained] - - invalid = [] - for digest in digests: - if digest in obtained: - obtained.remove(digest) - else: - invalid.append(digest) - - if not len(obtained) == 0: - raise RuntimeError('Mismatched digest afterward! {} vs {}'.format( - sorted(invalid), sorted(obtained))) - - if fail_on_missing and len(invalid) > 0: - raise RuntimeError('Missing {} digests in answer: {}'.format( - len(invalid), invalid)) - - if cache: - for descriptor in descriptors: - lnn.cache.descriptors.put(descriptor) - - return state, descriptors - - -def download_authority(state): - state, answer = lnn.hop.directory_query(state, '/tor/server/authority') - if answer is None or len(answer) == 0: - return state, None - - result, remain = parse_descriptors(answer, flavor='unflavored') - if not (len(remain) == 0 - and result is not None - and len(result['descriptors']) == 1): - raise RuntimeError('Unable to parse authority descriptor.') + digests = [digest.hex() for digest in digests_bytes] + endpoint = '/tor/server/d/' + separator = '+' - return state, result['descriptors'][0] + return _download_raw_by_digests(host, port, digests, endpoint, separator) -def download_authority_direct(host, port): - """Retrieve authority. - :param host: host from which to retrieve the authority. - :param port: port from which to retrieve the authority. - :return: Authority. +def download_relay_descriptor(host='127.0.0.1', port=9051): + """Retrieve a relay's own descriptor. """ - uri = 'http://%s:%d/tor/server/authority' % (host, port) + uri = 'http://{}:{}/tor/server/authority'.format(host, port) res = urllib.request.urlopen(uri) if res is None or res.getcode() != 200: - return None + raise RuntimeError('Unable to fetch descriptors.') - result, remain = parse_descriptors(res.read(), flavor='unflavored') + descriptors = Descriptors.parse(res.read().decode("ASCII"), flavor=Flavor.UNFLAVORED) - if not (len(remain) == 0 and result is not None and len(result['descriptors']) == 1): - raise RuntimeError('Unable to parse authority descriptor.') + return descriptors['descriptors'][0] - return result['descriptors'][0] diff --git a/lightnion/extend.py b/lightnion/extend.py deleted file mode 100644 index f73d967..0000000 --- a/lightnion/extend.py +++ /dev/null @@ -1,44 +0,0 @@ -import random -import base64 -import io - -import nacl.public - -import lightnion as lnn - -def circuit(state, descriptor): - onion_key = base64.b64decode(descriptor['ntor-onion-key'] + '====') - eidentity = descriptor['identity']['master-key'] # (assuming ed25519 here) - identity = base64.b64decode(descriptor['router']['identity'] + '====') - addr = descriptor['router']['address'] - port = descriptor['router']['orport'] - - eph_key, hdata = lnn.crypto.ntor.hand(identity, onion_key) - - payload = lnn.cell.relay.extend2.pack( - hdata, [(addr, port)], [identity, eidentity]) - - state = lnn.hop.send(state, - lnn.cell.relay.cmd.RELAY_EXTEND2, payload.raw, stream_id=0) - - state, cells = lnn.hop.recv(state, once=True) - if not len(cells) == 1: - raise RuntimeError('Expected exactly one cell, got: {}'.format(cells)) - - if not cells[0].relay.cmd == lnn.cell.relay.cmd.RELAY_EXTENDED2: - raise RuntimeError('Expected EXTENDED2, got {} here: {}'.format( - cells[0].relay.cmd, cell.relay.truncated)) - - payload = lnn.cell.relay.extended2.payload(cells[0].relay.data) - if not payload.valid: - raise RuntimeError('Invalid EXTENDED2 payload: {}'.format( - payload.truncated)) - - raw_material = lnn.crypto.ntor.shake(eph_key, payload.data, identity, - onion_key, length=92) - - material = lnn.crypto.ntor.kdf(raw_material) - extended = lnn.create.circuit(state.circuit.id, material) - - state.wrap(lnn.onion.state(state.link, extended)) - return state diff --git a/lightnion/hop.py b/lightnion/hop.py deleted file mode 100644 index 5797f95..0000000 --- a/lightnion/hop.py +++ /dev/null @@ -1,228 +0,0 @@ -import zlib -import time -import queue - -import lightnion as lnn - -def recv(state, block=True, once=False, auto_sendme=True): - '''Receive one or more RELAY{_EARLY,} cells from `state` attached circuit. - - :param state: a state object (see onion.state) - :param bool block: block while receiving? (default: True) - :param bool block: attempt only receiving once? (default: False) - - :returns: a tuple (updated state, received RELAY{_EARLY,} cells) - - Notes: - - returns an updated state that *MUST* be used afterwards. - - non-RELAY{_EARLY,} cells within the circuit *may be reordered.* - ''' - - while True: - try: - payload = state.link.get(circuit=state.circuit, block=block) - except queue.Empty: - return state, [] - except KeyError: - raise RuntimeError('Circuit got destroyed, reason: {}'.format( - state.circuit.reason)) - - header = lnn.cell.header(payload) - if header.cmd in [lnn.cell.cmd.RELAY, lnn.cell.cmd.RELAY_EARLY]: - break - - state.link.put(state.circuit, payload) - - cell_type = lnn.cell.relay.cell - if header.cmd is lnn.cell.cmd.RELAY_EARLY: - cell_type = lnn.cell.relay_early.cell - - cell = cell_type(payload) - #import pdb - #pdb.set_trace() - #if not cell.valid: - # raise RuntimeError( - # 'Got invalid (encrypted) RELAY cell: {}'.format(cell.raw)) - - state, cell = lnn.onion.peel(state, cell) - if not cell.valid: - raise RuntimeError( - 'Got invalid (decrypted) RELAY cell: {}'.format(cell.raw)) - - if auto_sendme: - state = _auto_sendme(state, cell) - - cells = [cell] - while not once: - state, new_cells = recv(state, block=False, once=True) - if len(new_cells) == 0: - break - cells += new_cells - return state, cells - -# TODO: better sendme handling -def _auto_sendme(state, cell): - if not cell.relay.cmd == lnn.cell.relay.cmd.RELAY_DATA: - return state - link, circuit, flow = state.link, state.circuit, lnn.constants.flow - - # Circuit-level sendme - # - if circuit.window is None: - circuit.window = flow.circuit.default - - circuit.window -= 1 - if circuit.window < flow.circuit.lowlimit: - circuit.window += flow.circuit.increment - state = send(state, lnn.cell.relay.cmd.RELAY_SENDME) - - # Stream-level sendme - # - if not cell.relay.stream_id > 0: - return state - - if circuit.stream_windows is None: - circuit.stream_windows = dict() - - if not cell.relay.stream_id in circuit.stream_windows: - circuit.stream_windows[cell.relay.stream_id] = flow.stream.default - - circuit.stream_windows[cell.relay.stream_id] -= 1 - if not circuit.stream_windows[cell.relay.stream_id] < flow.stream.lowlimit: - return state - - circuit.stream_windows[cell.relay.stream_id] += flow.stream.increment - state = send(state, lnn.cell.relay.cmd.RELAY_SENDME, - stream_id=cell.relay.stream_id) - - return state - -def send(state, command, payload=b'', stream_id=0): - '''Send one RELAY{_EARLY,} cell through `state` attached circuit. - - :param state: a state object (see onion.state) - :param str command: RELAY{_EARLY,} cell command (see cell.relay.cmd) - :param bytes payload: RELAY{_EARLY,} cell content (default: b'') - :param int stream_id: RELAY{_EARLY,} stream ID (default: 0) - - :returns: an updated state - - *Note: returns an updated state that *MUST* be used afterwards.* - ''' - - # We build our onion - state, cell = lnn.onion.build(state, command, payload, stream_id) - - # Then, we send the encrypted payload. - state.link.send(cell) - return state - -directory_request = '\r\n'.join(( - 'GET {query} HTTP/1.0', - 'Accept-Encoding: {compression}', - )) + '\r\n\r\n' - -def directory_query( - state, - query=None, - compression='deflate', - timeout=30, - **kwargs): - if compression not in ['identity', 'deflate', 'gzip']: - raise NotImplementedError( - 'Compression method "{}" not supported.'.format(compression)) - - if query is None: - query = '/tor/status-vote/current/consensus' - if not query.startswith('/tor/') or any([c in query for c in ' \r\n']): - raise RuntimeError('Invalid query: {}'.format(query)) - - state.circuit.last_stream_id += 1 - stream_id = state.circuit.last_stream_id - - state = send( - state, lnn.cell.relay.cmd.RELAY_BEGIN_DIR, stream_id=stream_id) - state, cells = recv(state) - - if not cells[0].relay.cmd == lnn.cell.relay.cmd.RELAY_CONNECTED: - raise RuntimeError('Expecting RELAY_CONNECTED after RELAY_BEGIN_DIR,' - + ' got {} in cell:'.format(cells[0].relay.cmd, cells[0].raw)) - - - http = directory_request.format(query=query, compression=compression) - - http = bytes(http, 'utf8') - width = lnn.cell.relay.payload_len - while len(http) > 0: - chunk, http = http[:width], http[width:] - state = send(state, lnn.cell.relay.cmd.RELAY_DATA, chunk, - stream_id=stream_id) - - # TODO: proper support for RELAY_END reasons - state, cells = recv(state) - if lnn.cell.relay.cmd.RELAY_END not in [c.relay.cmd for c in cells]: - candidates = [] - diff_time = time.time() - while True: - if time.time() - diff_time > timeout: - break - - state, new_cells = recv(state, block=False) - candidates = [c.relay.cmd for c in new_cells] - cells += new_cells - - if lnn.cell.relay.cmd.RELAY_END in candidates: - break - - if len(candidates) > 0: - diff_time = time.time() - - if time.time() - diff_time > timeout: - raise RuntimeError( - 'Timeout while expecting RELAY_END: {:.2f}s out of {}s'.format( - time.time() - diff_time, timeout)) - - # TODO: proper support for incoming RELAY_SENDME cells - cells = [c for c in cells if not (c.relay.stream_id == 0 - and c.relay.cmd == lnn.cell.relay.cmd.RELAY_SENDME)] - - # TODO: proper support for concurrent streams on the same circuit - if not all([c.relay.stream_id == stream_id for c in cells]): - raise RuntimeError('No proper support for multiple stream!') - - content = b'' - for cell in cells: - if not cell.relay.cmd == lnn.cell.relay.cmd.RELAY_DATA: - continue - content += cell.relay.data - - if compression in ['deflate', 'gzip']: - http_headers, compressed_data = content.split(b'\r\n\r\n', 1) - raw_data = zlib_decompress(compressed_data) - content = http_headers + b'\r\n\r\n' + raw_data - - if not content.startswith(b'HTTP/1.0'): - raise RuntimeError('Unexpected answer to query "{}": {}'.format(query, - content)) - - return state, content - -def zlib_decompress(compressed_data, min_bufsize=32): - data = b'' - buff = b'' - part = None - ilen = len(compressed_data) - olen = 0 - zobj = zlib.decompressobj() - while part is None or len(part) > 0: - buff = zobj.unconsumed_tail - if len(buff) < 1: - nlen = max((len(data) + ilen) // 2, min_bufsize) - buff = compressed_data[olen:nlen] - if len(buff) < 1: - break - - olen += len(buff) - part = zobj.decompress(buff, zlib.MAX_WBITS | 32) - data += part - return data diff --git a/lightnion/http/__init__.py b/lightnion/http/__init__.py deleted file mode 100644 index 1f3ebfe..0000000 --- a/lightnion/http/__init__.py +++ /dev/null @@ -1,109 +0,0 @@ -import collections -import requests -import json - -headers = {'Content-Type': 'application/json'} - -import lightnion as lnn -import lightnion.proxy - -from . import polling, websocket, ntor - -class channel(collections.namedtuple('channel', - ['id', 'guard', 'middle', 'exit'])): - pass - -def client(host, port=80, *, io, prefix='http', failures=5, **kwargs): - base_url = '{}://{}:{}{}'.format(prefix, host, port, lnn.proxy.base_url) - - guard = None - try: - code = 503 - fails = 0 - for _ in range(failures): - rq = requests.get(base_url + '/guard') - if not rq.status_code in [200, 503]: - raise RuntimeError('Error code: {}'.format(rq.status_code)) - - code = rq.status_code - if fails > failures or not code == 503: - break - - fails += 1 - - if code == 503: - raise RuntimeError('Too many failures!') - - guard = json.loads(rq.text) - - except BaseException as e: - raise RuntimeError( - 'Unable retrieve guard at endpoint {}, reason: {}'.format( - base_url + '/guard', e)) - - handshake, material, uid, path = (None, None, None, None) - try: - code = 503 - fails = 0 - for _ in range(failures): - handshake, material = ntor.hand(guard) - data = json.dumps(dict(ntor=handshake)) - - rq = requests.post(base_url + '/channels', - data=data, headers=headers) - if not rq.status_code in [201, 503]: - raise RuntimeError('Error code: {}'.format(rq.status_code)) - - code = rq.status_code - if fails > failures or not code == 503: - break - - fails += 1 - - if code == 503: - raise RuntimeError('Too many failures!') - - data = json.loads(rq.text) - uid, handshake, path = data['id'], data['ntor'], data['path'] - - except BaseException as e: - raise RuntimeError( - 'Unable create channel at endpoint {}, reason: {}'.format( - base_url + '/channels', e)) - - state = None - try: - try: - handshake = ntor.shake(handshake, material) - except TypeError: - raise RuntimeError('Invalid ntor cryptographic material?') - - io = io(endpoint=base_url + '/channels/' + uid, **kwargs) - link = lnn.link.link(io, version='http') - - circuit = lnn.create.circuit(lnn.proxy.fake_circuit_id, handshake) - link.register(circuit) - - state = lnn.onion.state(link, circuit) - - except BaseException as e: - raise RuntimeError( - 'Unable craft local state with {}, reason: {}'.format(io, e)) - - try: - state = lnn.extend.circuit(state, path[0]) - - except BaseException as e: - raise RuntimeError( - 'Unable extend the circuit to middle node {}, reason: {}'.format( - path[0]['router']['nickname'], e)) - - try: - state = lnn.extend.circuit(state, path[1]) - - except BaseException as e: - raise RuntimeError( - 'Unable extend the circuit to exit node {}, reason: {}'.format( - path[0]['router']['nickname'], e)) - - return state, channel(uid, guard, path[0], path[1]) diff --git a/lightnion/http/ntor.py b/lightnion/http/ntor.py deleted file mode 100644 index 8824f4b..0000000 --- a/lightnion/http/ntor.py +++ /dev/null @@ -1,24 +0,0 @@ -import lightnion as lnn - -import nacl.public - -import base64 - -def hand(guard, encode=True): - identity = base64.b64decode(guard['router']['identity'] + '====') - onion_key = base64.b64decode(guard['ntor-onion-key'] + '====') - - ephemeral_key, payload = lnn.crypto.ntor.hand(identity, onion_key) - - if encode: - payload = str(base64.b64encode(payload), 'utf8') - return payload, (onion_key, ephemeral_key, identity) - -def shake(payload, material): - payload = base64.b64decode(payload) - onion_key, ephemeral_key, identity = material - - material = lnn.crypto.ntor.shake(ephemeral_key, payload, - identity, onion_key, length=92) - - return lnn.crypto.ntor.kdf(material) diff --git a/lightnion/http/polling.py b/lightnion/http/polling.py deleted file mode 100644 index 3acd286..0000000 --- a/lightnion/http/polling.py +++ /dev/null @@ -1,114 +0,0 @@ -import threading -import requests -import base64 -import queue -import json -import time - -from .. import http -from .. import proxy - -class worker(threading.Thread): - def __init__(self, endpoint, period, max_queue=2048): - super().__init__() - self.endpoint = endpoint - self.period = period - - self.send_queue = queue.Queue(max_queue) - self.recv_queue = queue.Queue(max_queue) - - self.dead = False - - def close(self): - requests.delete(self.endpoint) - self.dead = True - - def die(self, e): - if self.dead: - return - - self.close() - raise e - - def send(self, cell, block=True): - try: - cell = cell.raw - except AttributeError: - pass - - cell = base64.b64encode(cell) - self.send_queue.put(cell, block) - - def recv(self, block=True): - payload = self.recv_queue.get(block=block) - payload = base64.b64decode(payload) - return payload - - def main(self): - try: - cells = [] - for _ in range(proxy.jobs.request_max_cells): - try: - cells.append(self.send_queue.get(block=False)) - except queue.Empty as e: - if len(cells) == 0: - raise e - - data = json.dumps( - dict(cells=[str(cell, 'utf8') for cell in cells])) - - rq = requests.post(self.endpoint, data=data, headers=http.headers) - if not rq.status_code == 201: - raise RuntimeError( - 'Got {} status (send)!'.format(rq.status_code)) - - answer = json.loads(rq.text) - for cell in answer['cells']: - self.recv_queue.put(cell) - - return - except queue.Empty: - pass - - data = json.dumps(dict(cells=[])) - rq = requests.post(self.endpoint, data=data, headers=http.headers) - if not rq.status_code == 201: - raise RuntimeError('Got {} status! (recv)'.format(rq.status_code)) - - answer = json.loads(rq.text) - for cell in answer['cells']: - self.recv_queue.put(cell) - - time.sleep(self.period) - - def run(self): - try: - while not self.dead: - self.main() - self.dead = True - except BaseException as e: - self.die(e) - -class io: - _join_timeout = 3 - - def __init__(self, endpoint, period=0.1, daemon=True, max_queue=2048): - self.worker = worker(endpoint, period, max_queue) - if daemon: - self.worker.daemon = True - - self.worker.start() - - @property - def dead(self): - return self.worker.dead - - def recv(self, block=True): - return self.worker.recv(block) - - def send(self, payload, block=True): - self.worker.send(payload, block=block) - - def close(self): - self.worker.close() - self.worker.join(self._join_timeout) diff --git a/lightnion/http/websocket.py b/lightnion/http/websocket.py deleted file mode 100644 index fe1d689..0000000 --- a/lightnion/http/websocket.py +++ /dev/null @@ -1,128 +0,0 @@ -import websockets -import threading -import logging -import asyncio -import queue - -from .. import http -from .. import proxy - -async def incoming(websocket, worker): - cell = None - while True: - try: - if cell is None: - cell = await websocket.recv() - worker.recv_queue.put_nowait(cell) - cell = None - - await asyncio.sleep(0) - continue - except (asyncio.QueueEmpty, queue.Full): - pass - - await asyncio.sleep(worker.period) - -async def outcoming(websocket, worker): - cell = None - while True: - try: - if cell is None: - cell = worker.send_queue.get_nowait() - await websocket.send(cell) - cell = None - - await asyncio.sleep(0) - continue - except (asyncio.QueueFull, queue.Empty): - pass - - await asyncio.sleep(worker.period) - -async def channel_handler(websocket, worker): - for task in [incoming, outcoming]: - worker.tasks.append(asyncio.ensure_future(task(websocket, worker))) - - done, pending = await asyncio.wait(worker.tasks, - return_when=asyncio.FIRST_COMPLETED) - - for task in pending: - task.cancel() - worker.dead = True - -async def client(worker): - async with websockets.connect(worker.endpoint) as websocket: - await channel_handler(websocket, worker) - -class worker(threading.Thread): - def __init__(self, endpoint, period, max_queue=2048): - super().__init__() - self.endpoint = endpoint - self.period = period - max_queue = max_queue // 2 - - self.send_queue = queue.Queue(max_queue) - self.recv_queue = queue.Queue(max_queue) - - self.send_async = asyncio.Queue(max_queue) - self.recv_async = asyncio.Queue(max_queue) - - self.tasks = [] - self.dead = False - - def close(self): - for task in self.tasks: - task.cancel() - self.dead = True - - def die(self, e): - if self.dead: - return - - self.close() - raise e - - def send(self, cell, block=True): - try: - cell = cell.raw - except AttributeError: - pass - - self.send_queue.put(cell, block) - - def recv(self, block=True): - payload = self.recv_queue.get(block=block) - return payload - - def run(self): - logging.getLogger(websockets.__name__).setLevel(logging.ERROR) - asyncio.set_event_loop(asyncio.new_event_loop()) - - asyncio.get_event_loop().run_until_complete(client(self)) - -class io: - _join_timeout = 3 - - def __init__(self, endpoint, period=0.1, daemon=True, max_queue=2048): - endpoint = endpoint.replace('http', 'ws') - endpoint = endpoint.replace(':4990/', ':8765/') # TODO: work same port - - self.worker = worker(endpoint, period, max_queue) - if daemon: - self.worker.daemon = True - - self.worker.start() - - @property - def dead(self): - return self.worker.dead - - def recv(self, block=True): - return self.worker.recv(block) - - def send(self, payload, block=True): - self.worker.send(payload, block=block) - - def close(self): - self.worker.close() - self.worker.join(self._join_timeout) diff --git a/lightnion/keys.py b/lightnion/keys.py new file mode 100644 index 0000000..8e76868 --- /dev/null +++ b/lightnion/keys.py @@ -0,0 +1,152 @@ +""" +Handle signing keys +""" + +import base64 +import hashlib +import re + +import requests + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.asymmetric.padding import PKCS1v15 +from cryptography.hazmat.primitives.serialization import load_pem_public_key + + +RE_FINGERPRINT = re.compile(r'fingerprint ([0-9A-Fa-f]+)') +RE_KEY = re.compile(r"""dir-signing-key +(-----BEGIN RSA PUBLIC KEY----- +[A-Za-z0-9+/=\n]+ +-----END RSA PUBLIC KEY-----) +""") +RE_SIGN = re.compile(r"""directory-signature ([0-9A-Fa-f]+) ([0-9A-Fa-f]+) +-----BEGIN SIGNATURE----- +([0-9A-Za-z+/=\n]+) +-----END SIGNATURE----- +""") + + +def fetch_and_parse_keys(host, port=None, tls=False): + """Convenience function to call getch_keys() then parse_keys() if needed.""" + + keys_raw = fetch_keys(host, port, tls) + if keys_raw: + keys = parse_keys(keys_raw) + else: + keys = dict() + + return keys + + +def fetch_keys(host, port=None, tls=False): + """Retrieve the public signing keys from the host.""" + protocol = 'https' if tls else 'http' + path = "tor/keys/all" + + if port: + url = "{}://{}:{}/{}".format(protocol, host, port, path) + else: + url = "{}://{}/{}".format(protocol, host, path) + + res = requests.get(url) + + if res.status_code == 200: + return res.text + + return None + + +def extract_key_params(key_pem): + """Extract the exponent and modulus from a key in PEM format.""" + + key_pem_b = key_pem.encode("ASCII") + public_key = load_pem_public_key(key_pem_b, backend=default_backend()) + public_numbers = public_key.public_numbers() + modulus = public_numbers.n + exponent = public_numbers.e + + params = { + "pem": key_pem, + "modulus": str(modulus), + "exponent": str(exponent) + } + + return params + + +def parse_keys(keys_raw): + """Parse raw keys.""" + + keys = dict() + + for key_raw in keys_raw.split("dir-key-certificate-version "): + + # Extract fingerprint. + fingerprint_match = RE_FINGERPRINT.search(key_raw) + if fingerprint_match: + fingerprint_groups = fingerprint_match.groups() + fingerprint = fingerprint_groups[0] + + # Extract signing key in PEM. + key_match = RE_KEY.search(key_raw) + if key_match: + key_groups = key_match.groups() + key_pem = key_groups[0] + + params = extract_key_params(key_pem) + + # Remember keys' parameters for each fingerprints. + keys[fingerprint] = params + + return keys + + +def verify_key_integrity(key_pem, digest_hex): + """Verify the integrity of a key.""" + # Parse the PEM. + key = base64.b64decode(key_pem[30, -28]) + sha1 = hashlib.sha1(key).digest() + digest_b = bytes.fromhex(digest_hex) + + return sha1 == digest_b + + +def verify_consensus_signature(consensus_content, signature, key_pem): + """Verify the signature of the consensus.""" + + #public_key = load_pem_public_key(key_pem, backend=default_backend()) + + # TODO Dummy check for now. + return True + + +def verify_consensus_integrity(consensus, keys, min_valid_signatures=3): + """Verify the signature of the consensus with the keys.""" + + valid_signatures_num = 0 + + signatures = [(s.start(), *(s.groups())) for s in RE_SIGN.finditer(consensus)] + sign_num = len(signatures) + + cons_end = signatures[0][0] + + # The first "directory-signature " is included in the signature [sic]. + # So 20 extra characters are needed. + cons_content = consensus[:(cons_end + 20)] + + for _, fingerprint, digest_hex, signature_pem in signatures: + + # Verify the integrity of the key. + key_pem = keys.get(fingerprint).get('pem').encode("ASCII") + key_valid = verify_key_integrity(key_pem, digest_hex) + + if not key_valid: + continue + + cons_valid = verify_consensus_signature(cons_content, signature_pem, key_pem) + + if cons_valid: + valid_signatures_num += 1 + + return valid_signatures_num >= min_valid_signatures + diff --git a/lightnion/link.py b/lightnion/link.py deleted file mode 100644 index b216777..0000000 --- a/lightnion/link.py +++ /dev/null @@ -1,220 +0,0 @@ -import logging -import socket -import queue -import ssl - -import lightnion as lnn - -class link: - """An established Tor link, send and receive messages in separate threads. - - :param io: socket.io instance that wraps the TLS/SSLv3 connection - :param int version: link version - - Usage:: - - >>> import lightnion as lnn - >>> link = lnn.link.initiate('127.0.0.1', 5000) - >>> link.version - 5 - >>> link.send(lnn.cell.create_fast.pack(2**31)) - >>> lnn.cell.created_fast.cell(link.get(circuit_id=2**31)).valid - True - >>> link.close() - """ - def __init__(self, io, version, circuits=[0], max_queue=2048): - self.max_queue = 2048 - self.version = version - self.last_id = 0 - self.io = io - - self.circuits = dict() - self.register(lnn.create.circuit(0, None)) - - def pull(self, block=True): - try: - payload = self.io.recv(block=block) - except queue.Empty: - return False - - # We know that receiver.get() will give you a cell with a well-formed - # header, thus we do not validate it one more time. - # - # We doesn't handle VERSIONS cells with shorter circuit_id. - # - header = lnn.cell.header(payload) - if not header.circuit_id in self.circuits: - raise RuntimeError('Got circuit {} outside {}, cell: {}'.format( - header.circuit_id, list(self.circuits), payload)) - - # TODO: property handle DESTROY cells - circuit = self.circuits[header.circuit_id] - if header.cmd is lnn.cell.cmd.DESTROY: - cell = lnn.cell.destroy.cell(payload) - if not cell.valid: - raise RuntimeError('Got invalid DESTROY cell: {}'.format( - cell.truncated)) - - self.put(circuit, payload) - circuit.destroyed = True - circuit.reason = cell.reason - self.unregister(circuit) - logging.debug('Circuit {} got destroyed, reason: {}'.format( - circuit.id, circuit.reason)) - return False - - self.put(circuit, payload) - return True - - def put(self, circuit, payload): - circuits_size = sum([c.queue.qsize() for _, c in self.circuits.items()]) - if circuits_size > self.max_queue: - raise RuntimeError( - 'Link circuit queues are full: {}'.format(circuits_size)) - - if circuit.id not in self.circuits: - raise RuntimeError('Got circuit_id {} outside {}, cell: {}'.format( - circuit.id, list(self.circuits), payload)) - - try: - payload = payload.raw - except AttributeError: - pass - - self.circuits[circuit.id].put(payload) - - def get(self, circuit, block=True): - while block and not self.io.dead: - try: - return self.circuits[circuit.id].get(block=False) - except queue.Empty: - pass - - self.pull() - while self.pull(block=False): - pass - else: - if not self.io.dead: - while self.pull(block=False): - pass - return self.circuits[circuit.id].get(block=False) - raise RuntimeError('Seems that link.io is dead!') - - def register(self, circuit): - if circuit.id in self.circuits: - raise RuntimeError('Circuit {} already registered.'.format( - circuit.id)) - - circuit.queue = queue.Queue(maxsize=self.max_queue) - self.circuits[circuit.id] = circuit - - def unregister(self, circuit): - del self.circuits[circuit.id] - - def recv(self, block=True): - return self.io.recv(block=block) - - def send(self, cell, block=True): - self.io.send(cell, block=block) - - def close(self): - self.io.close() - -def negotiate_version(peer, versions, *, as_initiator): - """Performs a VERSIONS negotiation - - :param peer: ssl.socket instance. - :param list versions: target link versions. - :param bool as_initiator: send VERSIONS cell first. - """ - if as_initiator: - lnn.cell.versions.send(peer, lnn.cell.versions.pack(versions)) - vercell = lnn.cell.versions.recv(peer) - - common_versions = list(set(vercell.versions).intersection(versions)) - if len(common_versions) < 1: - raise RuntimeError('No common supported versions: {} and {}'.format( - list(vercell.versions), versions)) - - version = max(common_versions) - if version < 4: - raise RuntimeError('No support for version 3 or lower, got {}').format( - version) - - if not as_initiator: - lnn.cell.versions.send(peer, lnn.cell.versions.pack(versions)) - return version - -def initiate(address='127.0.0.1', port=9050, versions=[4, 5]): - """Establish a link with the "in-protocol" (v3) handshake as initiator - - The expected transcript is: - - Onion Proxy (client) Onion Router (server) - - / [1] :-------- VERSIONS ---------> [2] - | [4] <-------- VERSIONS ---------: [3] - | - | Negotiated Version - | - | [4] <--------- CERTS -----------: [3] - | <----- AUTH_CHALLENGE ------: - | <-------- NETINFO ----------: - | - | OP don't need to - Link | authenticate - Protocol | - >= 3 | [5] :-------- NETINFO ----------> [6] - | - | Alternative: - | ( We (OR) authenticate ) - | ( ) - | ( [5] :--------- CERTS -----------> [6] ) - | ( :------ AUTHENTICATE -------> ) - | ( ^ ) - | ( (answers AUTH_CHALLENGE) ) - | ( ) - \ - - :param str address: remote relay address (default: 127.0.0.1). - :param int port: remote relay ORPort (default: 9050). - :param list versions: target link versions (default: [4, 5]). - - :returns: a link.link object - - """ - - # Setup context - peer = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - ctxt = ssl.SSLContext(ssl.PROTOCOL_TLS) - - # https://trac.torproject.org/projects/tor/ticket/28616 - ctxt.options |= ssl.OP_NO_TLSv1_3 - - # Establish connection - peer = ctxt.wrap_socket(peer) - peer.connect((address, port)) - - # VERSIONS handshake - version = negotiate_version(peer, versions, as_initiator=True) - - # Wraps with socket.io - peer = lnn.socket.io(peer) - - # Get CERTS, AUTH_CHALLENGE and NETINFO cells afterwards - certs_cell = lnn.cell.certs.cell(peer.recv()) - auth_cell = lnn.cell.challenge.cell(peer.recv()) - netinfo_cell = lnn.cell.netinfo.cell(peer.recv()) - - # Sanity checks - if not certs_cell.valid: - raise RuntimeError('Invalid CERTS cell: {}'.format(certs_cell.raw)) - if not auth_cell.valid: - raise RuntimeError('Invalid AUTH_CHALLENGE cell:{}'.format( - auth_cell.raw)) - if not netinfo_cell.valid: - raise RuntimeError('Invalid NETINFO cell: {}'.format(netinfo_cell.raw)) - - # Send our NETINFO to say "we don't want to authenticate" - peer.send(lnn.cell.netinfo.pack(address)) - return link(peer, version) diff --git a/lightnion/onion.py b/lightnion/onion.py deleted file mode 100644 index d102edb..0000000 --- a/lightnion/onion.py +++ /dev/null @@ -1,270 +0,0 @@ -import cryptography -import hashlib -import copy - -import lightnion as lnn - -class state: - '''Handle Tor onion-encryption cryptographic states. - - *For now, only handle cryptography as an initiator (as an OP to an OR).* - - TODO: add support for __init__(link, circuit, initiator={True,False}) - - Status Condition - - backward decryptor provided initiator=True - encryptor (none) initiator=False - digest provided - forward decryptor (none) initiator=False - encryptor provided initiator=True - digest provided - ''' - - def __init__(self, link, circuit, early_count=8): - '''Build a new onion-encryption state from a link and circuit. - - :params link: a link object (see link.link) - :params circuit: a circuit object (see create.circuit) - :params int early_count: first `early_count` cells will be RELAY_EARLY - ''' - self.circuit = circuit - self.link = link - - self._inner = None - self.early_count = early_count - - self._last_material = None - self._reset_digest(circuit.material) - self._reset_encryption(circuit.material) - - @property - def depth(self): - '''Number of inner layers in the onion.''' - if self._inner is None: - return 0 - return self._inner.depth + 1 - - @property - def early_count(self): - '''Number of remaining RELAY_EARLY cells before sending RELAY cells.''' - - if self._inner is None: - return self._early_count - return self._inner.early_count - - @early_count.setter - def early_count(self, value): - '''Setter for self.early_count.''' - - if self._inner is None: - self._early_count = value - else: - raise RuntimeError( - 'Unable to set RELAY_EARLY counter from the outer layers!') - - def wrap(self, inner): - '''Wraps an inner state w/ self as outer state (see lightnion.extend). - - Usage: - 1. A one-hop circuit is build with stateA. - 2. A key exchange is made through stateA to get stateB. - 3. Then, call stateA.wrap(stateB) to properly wrap the onion. - - Usage: - 1. A two-hop circuit is build with state{A,B}. - 2. A key exchange is made through state{A,B} to get stateC. - 3. Then, call statea.wrap(stateC) to properly wrap the onion. - - *Note: should not be called explicitly.* - ''' - if self._inner is None: - inner._early_count = self._early_count - self._inner = inner - else: - self._inner.wrap(inner) - - def _reset_encryption(self, material): - '''Initialize stateful stream cipher with cryptographic material. - - :params material: shared material w/ {forward,backward}_key - - *Note: should not be called explicitly.* - ''' - if self._last_material == material: - raise RuntimeError('Unsafe! Do NOT reset w/ same material!') - self._last_material = material - - from cryptography.hazmat.backends import default_backend - from cryptography.hazmat.primitives.ciphers import ( - algorithms, modes, Cipher - ) - - # Tor uses AES128-CTR with IV=0 as stream cipher - nonce_size = algorithms.AES.block_size // 8 - zeroed_ctr = modes.CTR(b'\x00' * nonce_size) - - # Initiate forward/backward encryption/decryption (as OP) TODO: add OR - self.forward_encryptor = Cipher( - algorithms.AES(material.forward_key), - zeroed_ctr, default_backend()).encryptor() - self.backward_decryptor = Cipher( - algorithms.AES(material.backward_key), - zeroed_ctr, default_backend()).decryptor() - - def _reset_digest(self, material): - '''Seed stateful 'running digests' used to authenticate payloads. - - :params material: shared material w/ {forward,backward}_key - - *Note: should not be called explicitly.* - ''' - self.forward_digest = hashlib.sha1(material.forward_digest) - self.backward_digest = hashlib.sha1(material.backward_digest) - - def _clone(self): - '''Non-recursive clone of current cryptographic state. - - Whenever it is required to rollback after an error, you can use this - function to give yourself a clone of the current state. - - *Note: does not clone inner cryptographic states.* - ''' - - child = state(self.link, self.circuit) - - # Clone digest state (use of hashlib's native hash copy) - child.forward_digest = self.forward_digest.copy() - child.backward_digest = self.backward_digest.copy() - - # Clone encryption state (use of python's ad-hoc copy) - child.forward_encryptor = copy.copy(self.forward_encryptor) - child.backward_decryptor = copy.copy(self.backward_decryptor) - - # Don't forget to propagate the RELAY_EARLY count - child._early_count = self._early_count - - # (note: we don't recursively clone inner layers of state) - child._inner = self._inner - - return child - -def core(state, command, payload=b'', stream_id=0): - '''Build a RELAY{_EARLY,} cell as an onion core (plaintext w/ `state`) - - :param state: a state object (see onion.state) - :param str command: RELAY{_EARLY,} cell command (see cell.relay.cmd) - :param bytes payload: RELAY{_EARLY,} cell content (default: b'') - :param int stream_id: RELAY{_EARLY,} stream ID (default: 0) - - :returns: a tuple (updated state, cell) - - *Note: should not be called explicitly.* - ''' - rollback = state._clone() - - # Send RELAY_EARLY cells first - relay_pack = lnn.cell.relay.pack - if rollback.early_count > 0: - rollback.early_count -= 1 - relay_pack = lnn.cell.relay_early.pack - - # Compute the cell with a zeroed 'digest' field. - cell = relay_pack( - circuit_id=state.circuit.id, - cmd=command, - data=payload, - stream_id=stream_id, - digest=b'\x00\x00\x00\x00') - - # Update the "running digest" - rollback.forward_digest.update(cell.relay.raw) - - # Write the "running digest" - full_digest = rollback.forward_digest.digest() - cell.relay.digest = full_digest[:cell.relay._view.digest.width()] - - # Encrypt the to-be-encrypted parts & build final cell - cell.relay.raw = rollback.forward_encryptor.update(cell.relay.raw) - - return rollback, cell - -def build(state, command, payload=b'', stream_id=0): - '''Build a RELAY{_EARLY,} cell. - - :param state: a state object (see onion.state) - :param str command: RELAY{_EARLY,} cell command (see cell.relay.cmd) - :param bytes payload: RELAY{_EARLY,} cell content (default: b'') - :param int stream_id: RELAY{_EARLY,} stream ID (default: 0) - - :returns: a tuple (updated state, cell) - - *Note: returns an updated state that MUST be used afterwards.* - ''' - if state.depth == 0: - return core(state, command, payload, stream_id) - rollback = state._clone() - - # Retrieve the inner layer of the onion - rollback._inner, cell = build(rollback._inner, command, payload, stream_id) - - # Wraps the layer with our outer layer of encryption - cell.relay.raw = rollback.forward_encryptor.update(cell.relay.raw) - - return rollback, cell - -def recognize(state, cell, backward=True): - '''Attempt to recognize a RELAY{_EARLY,} cell. - - :param state: a state object (see onion.state) - :param cell: a RELAY{_EARLY,} cell object (see cell.relay.cell) - :param bool backward: is it backward? or else forward? (default: True) - - :returns: a tuple (updated state, bool) - - *Note: returns an updated state that MUST be used afterwards.* - ''' - rollback = state._clone() - - # We expect the recognized field to be zeroed upon successful decryption - if not cell.relay.recognized == b'\x00\x00': - return state, False - - # We build a copy of the cell with a zeroed 'digest field' - cell_digest = cell.relay.digest - cell.relay.digest = b'\x00\x00\x00\x00' - - # Update the digest state accordingly (backward or forward) - digest = rollback.backward_digest if backward else rollback.forward_digest - digest.update(cell.relay.raw) - - # Check if the computed digest match the cell digest - if not cell_digest == digest.digest()[:cell.relay._view.digest.width()]: - return state, False - - # Update state iff the digests matched - return rollback, True - -def peel(state, cell): - '''Decrypt a RELAY{_EARLY,} cell using provided `state`. - - :param state: a state object (see onion.state) - :param cell: a RELAY{_EARLY,} cell object (see cell.relay.cell) - - :returns: a tuple (updated state, decrypted cell) - - *Note: returns an updated state that MUST be used afterwards.* - ''' - rollback = state._clone() - - cell.relay.raw = rollback.backward_decryptor.update(cell.relay.raw) - if rollback.depth == 0: - rollback, recognized = recognize(rollback, cell) - if not recognized: - raise RuntimeError( - 'Got an unrecognized RELAY cell: {}'.format(cell.raw)) - - return rollback, cell - - rollback._inner, cell = peel(rollback._inner, cell) - return rollback, cell diff --git a/lightnion/path_selection.py b/lightnion/path_selection.py index 762bc5d..edce55f 100644 --- a/lightnion/path_selection.py +++ b/lightnion/path_selection.py @@ -8,24 +8,6 @@ # So to test the proxy with Chutney, these checks needs to be disabled. check_different_subnets = False -def select_path(routers, state, testing=False): - """Handle the path selection - :params routers: list of the routers given by the consensus - :state: - :returns: updated state tuple (guard, middle, exit)""" - - logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) - - routers = [r for r in routers if obey_minimal_constraint(r)] - - state, exit_node = pick_good_exit(routers, state) - - state, guard = pick_good_entry(routers, state, exit_node, testing) - - state, middle = pick_good_middle(routers, state, exit_node, guard, testing) - - return state, guard, middle, exit_node - def select_guard_from_consensus(cons, descr, testing=False): """Handle the selection of the guard node @@ -120,48 +102,6 @@ def in_same_family(r0, r1, r2=None): return False -def keep_exit(router, state): - """Checks that the router is not a bad exit, is not down, is stable, - is valid, does not run an old TOR's version, has an available ed25519 - identity key and has an 'accept' exit policy - :params router: the router we want to check - :state: - :return: tuple (boolean that indicates if we keep it, new state, descriptor)""" - - logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) - - if not obey_minimal_constraint(router): - return False, state, None - - if 'Exit' not in router['flags']: - return False, state, None - - if 'BadExit' in router['flags']: - return False, state, None - - # Retrieve the descriptor - state, nhop = descriptors.download(state, cons=router, flavor='unflavored') - - if len(nhop) == 0: - return False, state, None - - nhop = nhop[0] - - if router['digest'] != nhop['digest']: - return False, state, None - - if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': - return False, state, None - - if 'policy' not in nhop: - return False, state, None - - for rule in nhop['policy']['rules']: - if rule['pattern'] == "*:*" and rule['type'] == 'accept': - return True, state, nhop - - return False, state, None - def keep_exit_with_descr(descr, router, guard): """Checks that the router is not a bad exit, is not down, is stable, is valid, does not run an old TOR's version, has an available ed25519 @@ -204,7 +144,6 @@ def keep_exit_with_descr(descr, router, guard): return False, None - def weighted_random_choice(list_of_possible): """Choose one of the candidates at random weighted by their (avg) bandwidth :params list_of_possible: list of descriptors of the candidates @@ -225,29 +164,6 @@ def weighted_random_choice(list_of_possible): raise RuntimeError("") -def pick_good_exit(routers, state): - """Choose the exit node - :param routers: the routers given by the consensus - :param state: the state - :return: the descriptor of the exit node""" - - logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) - - # Go through all routers and check if they meet the conditions of an exit node - candidates = [] - for router in routers: - keep, state, descriptor = keep_exit(router, state) - if keep: - candidates.append(descriptor) - - if candidates: - return state, weighted_random_choice(candidates) - - else: - # TODO: see if we select another policy here - raise ValueError('No exit is suitable') - - def pick_good_exit_from_routers(descr, routers, guard): """Choose the exit node :param routers: the routers given by the consensus @@ -269,53 +185,6 @@ def pick_good_exit_from_routers(descr, routers, guard): raise ValueError('No exit is suitable') - -def keep_guard(router, state, exit_node, testing): - """Checks that the given router has the properties to be a guard - :param router: the router that must be inspected - :param state: state - :param exit_node: the previously chosen node - :return: if the router can be kept, the updated state and the descriptor""" - - logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) - - flags = router['flags'] - - if not obey_minimal_constraint(router, exit_node, testing=testing): - return False, state, None - - if 'Guard' not in flags: - return False, state, None - - if 'Stable' not in flags: - return False, state, None - - if 'Fast' not in flags: - return False, state, None - - if 'V2Dir' not in flags: - return False, state, None - - # Retrieve the descriptor - state, nhop = descriptors.download(state, cons=router, flavor='unflavored') - - if len(nhop) == 0: - return False, state, None - nhop = nhop[0] - - if router['digest'] != nhop['digest']: - return False, state, None - - if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': - return False, state, None - - if in_same_family(nhop, exit_node): - return False, state, None - - return True, state, nhop - - - def keep_guard_with_descr(descr, router, testing): """Checks that the given router has the properties to be a guard :param descr: descriptor of the exit candidate. @@ -353,29 +222,6 @@ def keep_guard_with_descr(descr, router, testing): return True, nhop - -def pick_good_entry(routers, state, exit_node, testing): - """Simplified version of the Guard selection algorithm - :param routers: the routers of the consensus - :param state: the state - :return: updated state and the descriptor of the guard node""" - - logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) - - candidates = [] - for router in routers: - keep, state, descriptor = keep_guard(router, state, exit_node, testing) - if keep: - candidates.append(descriptor) - - if candidates: - return state, weighted_random_choice(candidates) - - else: - # TODO: see if we select another policy here - raise ValueError('No guard is suitable') - - def pick_good_entry_from_routers(descr, routers, testing): """Simplified version of the Guard selection algorithm :param routers: the routers of the consensus @@ -396,38 +242,6 @@ def pick_good_entry_from_routers(descr, routers, testing): raise ValueError('No guard is suitable') -def keep_middle(router, state, exit_node, guard, testing): - """Checks that the given router has the properties to be a middle node - :param router: the router that must be inspected - :param state: state - :param exit_node: the previously chosen exit node - :param guard: the previously chosen guard - :return: if the router can be kept, the updated state and the descriptor""" - - logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) - - if not obey_minimal_constraint(router, exit_node, guard, testing=testing): - return False, state, None - - # Retrieve the descriptor - state, nhop = descriptors.download(state, cons=router, flavor='unflavored') - - if len(nhop) == 0: - return False, state, None - nhop = nhop[0] - - if router['digest'] != nhop['digest']: - return False, state, None - - if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': - return False, state, None - - if in_same_family(nhop, guard, exit_node): - return False, state, None - - return True, state, nhop - - def keep_middle_with_descr(descr, router, exit_node, guard, testing): """Checks that the given router has the properties to be a middle node :param descr: descriptor of the exit candidate. @@ -455,29 +269,6 @@ def keep_middle_with_descr(descr, router, exit_node, guard, testing): return True, nhop -def pick_good_middle(routers, state, exit_node, guard, testing): - """Choose the middle node given the exit and the guard node - :param routers: the routers of the consensus - :param state: the state - :param exit_node: the previously chosen exit node - :param guard: the previously chosen guard node - :return: updated state and the descriptor of the guard node""" - - logging.warning('Use of DEPRECATED method %s()' % sys._getframe().f_code.co_name) - - candidates = [] - for router in routers: - keep, state, descriptor = keep_middle(router, state, exit_node, guard, testing) - if keep: - candidates.append(descriptor) - if candidates: - return state, weighted_random_choice(candidates) - - else: - # TODO: see if we select another policy here - raise ValueError('No middle node is suitable') - - def pick_good_middle_from_routers(descr, routers, exit_node, guard, testing): """Choose the middle node given the exit and the guard node :param routers: the routers of the consensus diff --git a/lightnion/proxy/__init__.py b/lightnion/proxy/__init__.py index 680f2b2..c6573dd 100644 --- a/lightnion/proxy/__init__.py +++ b/lightnion/proxy/__init__.py @@ -1,6 +1,6 @@ - fake_circuit_id = 0x80000000 api_version = 0.1 base_url = '/lightnion/api/v{}'.format(api_version) -from . import parts, auth, jobs, link + +from . import cell, parts, auth, jobs, link diff --git a/lightnion/proxy/cell.py b/lightnion/proxy/cell.py new file mode 100644 index 0000000..dfb35be --- /dev/null +++ b/lightnion/proxy/cell.py @@ -0,0 +1,243 @@ +""" +Cell handling classes. +""" + +import time +import secrets +import socket + +from enum import IntEnum + +ENDIANNESS = 'big' +PAYLOAD_SIZE_MAX = 509 + +class Command(IntEnum): + """Cell type.""" + PADDING = 0 + CREATE = 1 + CREATED = 2 + RELAY = 3 + DESTROY = 4 + CREATE_FAST = 5 + CREATED_FAST = 6 + VERSIONS = 7 + NETINFO = 8 + RELAY_EARLY = 9 + CREATE2 = 10 + CREATED2 = 11 + PADDING_NEGOTIAT = 12 + VPADDING = 128 + CERTS = 129 + AUTH_CHALLENGE = 130 + AUTHENTICATE = 131 + AUTHORIZE = 132 + + def is_variable_length(self): + """If the cell type indicate a cell of variable length.""" + return self.value == 7 or self.value > 127 + + + @classmethod + def from_bytes(cls, raw): + """Cell type from command byte.""" + return cls(int.from_bytes(raw, ENDIANNESS)) + + + def to_bytes(self): + """Byte representation.""" + return (self.value).to_bytes(1, ENDIANNESS) + + +class DestroyReason(IntEnum): + NONE = 0 + PROTOCOL = 1 + INTERNAL = 2 + REQUESTED = 3 + HIBERNATING = 4 + RESOURCELIMIT = 5 + CONNECTFAILED = 6 + OR_IDENTITY = 7 + OR_CONN_CLOSED = 8 + FINISHED = 9 + TIMEOUT = 10 + DESTROYED = 11 + NOSUCHSERVICE = 12 + + + @classmethod + def from_bytes(cls, raw): + """Cell type from command byte.""" + return cls(int.from_bytes(raw, ENDIANNESS)) + + + def to_bytes(self): + """Byte representation.""" + return (self.value).to_bytes(1, ENDIANNESS) + + +class Cell: + """Representation of a non-version, non-netinfo Tor cell.""" + + SIZE = 514 + + CIRCUIT_ID = 0 + CIRCUIT_ID_SIZE = 4 + CIRCUIT_ID_END = 4 + COMMAND = 4 + LENGTH = 5 + LENGTH_SIZE = 2 + LENGTH_END = 7 + PAYLOAD_BEGIN = 7 + + + @classmethod + def set_circuit_id(cls, cell_raw, circuit_id): + circuit_id_b = circuit_id.to_bytes(cls.CIRCUIT_ID_SIZE, ENDIANNESS) + cell = cell_raw[cls.CIRCUIT_ID_END:] + return circuit_id_b + cell + + + @classmethod + def circuit_id(cls, cell_raw): + return int.from_bytes(cell_raw[cls.CIRCUIT_ID:cls.CIRCUIT_ID_END], ENDIANNESS) + + + @classmethod + def command(cls, cell_raw): + return Command(cell_raw[cls.COMMAND]) + + + @classmethod + def length(cls, cell_raw): + return int.from_bytes(cell_raw[cls.LENGTH:cls.LENGTH_END], ENDIANNESS) + + + @classmethod + def raw_from_buffer(cls, buffer): + buf_len = len(buffer) + # len(cell_id + command + payload_size) == 7 + header_len = 7 + if buf_len < header_len: + return None, buffer + + cmd = cls.command(buffer) + + if cmd.is_variable_length(): + length = cls.length(buffer) + header_len + else: + length = cls.SIZE + + if buf_len < length: + return None, buffer + + return buffer[:length], buffer[length:] + + @classmethod + def pad(cls, cell_raw): + cell_len = len(cell_raw) + padding_size = cls.SIZE - cell_len + if padding_size > 0: + padding = secrets.token_bytes(padding_size) + else: + padding = b'' + + return cell_raw + padding + + +class CellVersion: + """Representation of a versions cell.""" + + CMD = Command.VERSIONS.to_bytes() + LENGTH = 3 + LENGTH_SIZE = 2 + LENGTH_END = 5 + VERSION_SIZE = 2 + + + def __init__(self, versions): + self.versions = versions + + + def payload_size(self): + return self.VERSION_SIZE * len(self.versions) + + + @classmethod + def length(cls, cell_raw): + return int.from_bytes(cell_raw[cls.LENGTH:cls.LENGTH_END], ENDIANNESS) + + + @classmethod + def from_bytes(cls, cell_raw): + versions = list() + for i in range(5, len(cell_raw), 2): + version = int.from_bytes(cell_raw[i:i+2], ENDIANNESS) + versions.append(version) + + return cls(versions) + + + def to_bytes(self): + size_b = self.payload_size().to_bytes(self.LENGTH_SIZE, ENDIANNESS) + cell_id = b'\x00\x00' + + cell = cell_id + self.CMD + size_b + + for version in self.versions: + cell += version.to_bytes(self.VERSION_SIZE, ENDIANNESS) + + return cell + + +class CellNetInfo: + """Representation of a netinfo cell.""" + + SIZE = 514 + CMD = Command.NETINFO.to_bytes() + + + @classmethod + def to_bytes(cls, host): + if host == 'localhost': + # Binary representation of 127.0.0.1 + addr = b'\x7f\x00\x00\x01' + else: + addr = socket.inet_aton(host) + + tstmp = int(time.time()).to_bytes(4, ENDIANNESS) + + addr_len = len(addr) + + if addr_len == 4: + addr_t = b'\x04' + else: + addr_t = b'\x06' + + addr_len_b = addr_len.to_bytes(1, ENDIANNESS) + + cell_len = 11 + addr_len + cell_id = b'\x00\x00\x00\x00' + + cell = cell_id + cls.CMD + tstmp + addr_t + addr_len_b + addr + + # padding with \x00 + cell += bytearray(cls.SIZE - cell_len) + + return cell + + +class CellDestroy: + SIZE = 514 + CMD = Command.DESTROY + + def __init__(self, circuit_id, reason): + self.circuit_id = circuit_id + self.reason = reason + + def to_bytes(self): + circuit_id_b = self.circuit_id.to_bytes(4, ENDIANNESS) + cmd = self.CMD.to_bytes() + reason = self.reason.to_bytes() + cell_len = 6 + padding = bytearray(self.SIZE - cell_len) + return circuit_id_b + cmd + reason + padding diff --git a/lightnion/proxy/forward.py b/lightnion/proxy/forward.py index a31fe2e..b7d1889 100644 --- a/lightnion/proxy/forward.py +++ b/lightnion/proxy/forward.py @@ -1,26 +1,24 @@ import asyncio -import base64 import logging import signal -import string import sys -import threading import time -from datetime import datetime, timedelta - import quart +import stem import websockets from quart_cors import cors +from stem.control import EventType, Controller +from stem.util.log import get_logger import lightnion as lnn import lightnion.path_selection import lightnion.proxy +import lightnion.keys -from tools.keys import get_signing_keys_info +from lightnion.consensus import Flavor -#from tools.keys import get_raw_signing_keys debug = True @@ -36,12 +34,15 @@ logger.setLevel(logging.WARNING) logger.addHandler(handler) +logger = get_logger() +logger.propagate = False -class clerk(): - def __init__(self, slave_node, control_port, dir_port, compute_path, auth_dir=None): +class Clerk(): + def __init__(self, slave_node, control_port, dir_port, controller, compute_path, auth_dir=None): #super().__init__() logging.info('Bootstrapping clerk.') self.crypto = lnn.proxy.parts.crypto() + self.dead = False self.auth = None @@ -58,7 +59,6 @@ def __init__(self, slave_node, control_port, dir_port, compute_path, auth_dir=No else: logging.debug('Auth dir is None.') - self.retrieved_consensus = False self.consensus = None self.descriptors = None @@ -67,13 +67,13 @@ def __init__(self, slave_node, control_port, dir_port, compute_path, auth_dir=No self.mic_consensus_raw = None self.mic_descriptors_raw = None + self.consensus_init = False + #self.consm = None - #self.descm = None + self.descm = None self.signing_keys = None #self.signing_keys_raw = None - self.timer_consensus = None - self.guard_node = None self.control_port = control_port @@ -85,8 +85,13 @@ def __init__(self, slave_node, control_port, dir_port, compute_path, auth_dir=No self.channel_manager = None self.websocket_manager = None + self.controller = controller + self.controller.add_event_listener(self.handle_new_guard, EventType.GUARD) + self.controller.add_event_listener(self.retrieve_consensus, EventType.NEWCONSENSUS) + def prepare(self): + self.retrieve_consensus() guard = self.get_guard() self.link = lnn.proxy.link.Link(guard) @@ -98,72 +103,42 @@ def prepare(self): self.websocket_manager.set_channel_manager(self.channel_manager) - def retrieve_consensus(self): - """Retrieve relays data with direct HTTP connection and schedule its future retrival.""" - - # We tolerate that the system clock can be up to a few seconds too early. - refresh_tolerance_delay = 2.0 - min_delay = 120.0 # 2 minutes - max_time_until_invalid = 900.0 # 15 minutes + def retrieve_consensus(self, event=None): + """Retrieve relays data with direct HTTP connection.""" host = self.slave_node[0] port = self.dir_port - # retrieve consensus and descriptors if self.compute_path: - cons,sg_keys = lnn.consensus.download_direct(host, port, flavor='unflavored') - desc = lnn.descriptors.download_direct(host, port, cons) + cons, sg_keys = lnn.consensus.download_direct(host, port, flavor=Flavor.UNFLAVORED) + desc = lnn.descriptors.download_direct(host, port, cons, flavor=Flavor.UNFLAVORED) self.consensus = cons self.signing_keys = sg_keys self.descriptors = desc - #self.consm,sg_keysm = lnn.consensus.download_direct(self.slave_node[0], self.dir_port) - #self.descm = lnn.descriptors.download_direct(self.slave_node[0], self.dir_port, self.consm, flavor='microdesc') + self.consm, sg_keysm = lnn.consensus.download_direct(self.slave_node[0], self.dir_port, flavor=Flavor.MICRO) + self.descm = lnn.descriptors.download_direct(self.slave_node[0], self.dir_port, self.consm, flavor=Flavor.MICRO) - self.consensus_raw = lnn.consensus.download_raw(host, port, flavor='unflavored') + self.consensus_raw = lnn.consensus.download_raw(host, port, flavor=Flavor.UNFLAVORED) digests = lnn.consensus.extract_nodes_digests_unflavored(self.consensus_raw) self.descriptors_raw = lnn.descriptors.download_raw_by_digests_unflavored(host, port, digests) - keys = get_signing_keys_info('{}:{}'.format(host, port)) - self.signing_keys = keys + self.signing_keys = lnn.keys.fetch_and_parse_keys(host, port, tls=False) #self.signing_keys_raw = get_raw_signing_keys('%s:%d'%(host, port)) - self.mic_consensus_raw = lnn.consensus.download_raw(host, port, flavor='microdesc') + self.mic_consensus_raw = lnn.consensus.download_raw(host, port, flavor=Flavor.MICRO) digests = lnn.consensus.extract_nodes_digests_micro(self.mic_consensus_raw) self.mic_descriptors_raw = lnn.descriptors.download_raw_by_digests_micro(host, port, digests) - try: - # Compute delay until retrival of the next consensus. - fresh_until = lnn.consensus.extract_date(self.consensus_raw, 'fresh-until') - now = datetime.utcnow() - delay = (fresh_until - now).total_seconds() + refresh_tolerance_delay - - if delay < min_delay: - valid_until = lnn.consensus.extract_date(self.consensus_raw, 'valid-until') - delay = (valid_until - now).total_seconds() - max_time_until_invalid - - delay = max(delay, min_delay) - - logging.debug('Delay until fetching next concensus: %f', delay) - - self.timer_consensus = threading.Timer(delay, clerk.retrieve_consensus, [self]) - self.timer_consensus.start() - self.retrieved_consensus = True - - except Exception as e: - logging.error(e) - raise e + self.consensus_init = True def wait_for_consensus(self): """Ensure a consensus is present in the clerk, and fetch a new one if it is not. """ - if not self.retrieved_consensus: - if self.timer_consensus is None: - self.retrieve_consensus() - while not self.retrieved_consensus: + while not self.consensus_init: logging.info('Wait for consensus...') time.sleep(1) @@ -179,14 +154,16 @@ def get_descriptor_unflavoured(self, router): return descriptor - def get_guard(self): + def handle_new_guard(self, event): + self.get_guard(renew=True) + + + def get_guard(self, renew=False): """Generate a guard :return: guard node """ - self.wait_for_consensus() - - if self.guard_node is None: + if renew or self.guard_node is None: # Use local node as the guard. #guard = lnn.path_selection.select_guard_from_consensus(self.consensus, self.descriptors) host = self.slave_node[0] @@ -197,7 +174,6 @@ def get_guard(self): #nickname = guard['router']['nickname'] #fingerprint = guard['fingerprint'] #entry = [fingerprint, nickname] - #guard = lnn.proxy.path.convert(entry, consensus=self.consensus, expect='list')[0] logging.info('New guard relay selected.') logging.debug(guard) @@ -256,7 +232,7 @@ async def get_consensus_raw(flavor): app.clerk.wait_for_consensus() cons = app.clerk.mic_consensus_raw if flavor == 'unflavored': - cons =app.clerk.consensus_raw + cons = app.clerk.consensus_raw return cons, 200 except Exception as e: @@ -302,34 +278,35 @@ async def create_channel(): logging.info('Create new channel.') #ntor = payload['ntor'] - auth = None - if 'auth' in payload: - auth = payload['auth'] - if app.clerk.auth is None: - quart.abort(400) + try: + auth = None + if payload and 'auth' in payload: + auth = payload['auth'] + if app.clerk.auth is None: + quart.abort(400) - select_path = False - if 'select_path' in payload: - if payload['select_path'] == "true": - select_path = True + select_path = False + if payload and 'select_path' in payload: + if payload['select_path'] == "true": + select_path = True - if not select_path: - app.clerk.wait_for_consensus() + if not select_path: + app.clerk.wait_for_consensus() - try: #data = app.clerk.create.perform(data) - ckt_info = app.clerk.channel_manager.create_channel( app.clerk.consensus, app.clerk.descriptors, select_path) + ckt_info = app.clerk.channel_manager.create_channel(app.clerk.consensus, app.clerk.descriptors, select_path) if auth is not None: # TODO the proxy pack the ntor key in a tor cell, this can be done client side. - ckt_info = app.clerk.auth.perform(auth,ckt_info) + ckt_info = app.clerk.auth.perform(auth, ckt_info) response = quart.jsonify(ckt_info) - return response, 201 # Created except Exception as e: logging.exception(e) quart.abort(503) + return response, 201 # Created + @app.route(url + '/channels/', methods=['DELETE']) async def delete_channel(uid): @@ -359,7 +336,6 @@ async def loop_signal_handler(signum, loop): """ logging.debug('Signal handler called.') - app.clerk.timer_consensus.cancel() await app.shutdown() await app.clerk.websocket_manager.stop() @@ -382,26 +358,29 @@ def main(port, slave_node, control_port, dir_port, compute_path, auth_dir=None): # from werkzeug import SharedDataMiddleware # app.wsgi_app = SharedDataMiddleware(app.wsgi_app, static_files) - app.clerk = clerk(slave_node, control_port, dir_port, compute_path, auth_dir) - logging.info('Bootstrapping HTTP server.') + with Controller.from_port(port=control_port) as controller: + controller.authenticate() - logging.getLogger(websockets.__name__).setLevel(logging.INFO) - asyncio.set_event_loop(asyncio.new_event_loop()) + app.clerk = Clerk(slave_node, control_port, dir_port, controller, compute_path, auth_dir) + logging.info('Bootstrapping HTTP server.') - app.clerk.prepare() + logging.getLogger(websockets.__name__).setLevel(logging.INFO) + asyncio.set_event_loop(asyncio.new_event_loop()) - loop = asyncio.get_event_loop() - for s in (signal.SIGHUP, signal.SIGTERM, signal.SIGINT): - loop.add_signal_handler(s, lambda s=s: asyncio.create_task(loop_signal_handler(s, loop))) + app.clerk.prepare() - loop.set_exception_handler(None) + loop = asyncio.get_event_loop() + for s in (signal.SIGHUP, signal.SIGTERM, signal.SIGINT): + loop.add_signal_handler(s, lambda s=s: asyncio.create_task(loop_signal_handler(s, loop))) - try: - loop.create_task(app.clerk.link.connection) - loop.create_task(app.clerk.websocket_manager.serve(loop)) - - app.run(host='0.0.0.0', port=port, debug=debug, loop=loop, use_reloader=False) - except Exception: - pass - finally: - loop.close() + loop.set_exception_handler(None) + + try: + loop.create_task(app.clerk.link.connection) + loop.create_task(app.clerk.websocket_manager.serve(loop)) + + app.run(host='0.0.0.0', port=port, debug=debug, loop=loop, use_reloader=False) + except Exception: + pass + finally: + loop.close() diff --git a/lightnion/proxy/jobs.py b/lightnion/proxy/jobs.py index d7adcf8..c5b96dd 100644 --- a/lightnion/proxy/jobs.py +++ b/lightnion/proxy/jobs.py @@ -8,7 +8,6 @@ import lightnion as lnn from . import parts, base_url, fake_circuit_id import lightnion.path_selection -import lightnion.utils class InvalidTokenException(Exception): @@ -156,14 +155,9 @@ def create_channel(self, consensus, descriptors, select_path): if self.link is None: raise LinkNotInitializedException() - #ntor_bin = base64.b64decode(ntor) - cid = self.link.gen_cid() token = self.gen_token_from_cid(cid) - #cell = lnn.create.ntor_raw2(cid, ntor_bin) - #cell = base64.b64encode(cell).decode('utf-8') - self.channels[cid] = Channel(token, cid) if not select_path: @@ -196,10 +190,9 @@ async def destroy_circuit_from_client(self, channel): # Send a cell to the link to delete the circuit in the relay. cid = channel.cid - reason = lnn.cell.destroy.reason.REQUESTED + reason = lnn.proxy.cell.DestroyReason.REQUESTED - cell = lnn.cell.destroy.pack(cid, reason) - cell_padded = lnn.cell.pad(cell) + cell_padded = lnn.proxy.cell.CellDestroy(cid, reason).to_bytes() await self.link.to_send.put(cell_padded) @@ -240,7 +233,7 @@ async def schedule_to_send(self, cell, cid): Scedule the data to be send to the correct channel. :param cell: cell to be send. """ - logging.debug('ChanMgr: Begin adding data to sending queue of channel {}.'.format(cid)) + logging.info('ChanMgr: Begin adding data to sending queue of channel {}.'.format(cid)) if cid not in self.channels.keys(): logging.warning('ChanMgr: Channel {} does not exists.'.format(cid)) @@ -255,19 +248,14 @@ async def schedule_to_send(self, cell, cid): #raise CircuitDoesNotExistException(cid) # If the cell command to delete the circuit, - header = lnn.cell.header(cell) - if header.cmd is lnn.cell.cmd.DESTROY: - cell_validation = lnn.cell.destroy.cell(cell) - logging.warning('ChanMgr: DESTROY cell received for channel {}, reason: {}.'.format(cid, cell_validation.reason)) - if not cell_validation.valid: - logging.debug('ChanMgr: Invalid DESTROY in channel {}.'.format(cid)) - #raise InvalidDestroyCellException() - else: - await self.destroy_circuit_from_link(channel) + cmd = lnn.proxy.cell.Cell.command(cell) + + if cmd == lnn.proxy.cell.Command.DESTROY: + #await self.destroy_circuit_from_link(channel) return - cell_padded = lnn.cell.pad(cell) + cell_padded = lnn.proxy.cell.Cell.pad(cell) await channel.to_send.put(cell_padded) @@ -276,10 +264,10 @@ async def schedule_to_send(self, cell, cid): class WebsocketManager: - prefix = base_url + '/channels/' + prefix = base_url + '/channel/' prefix_len = len(prefix) - def __init__(self, host='0.0.0.0', port=8765, timeout=60): + def __init__(self, host='127.0.0.1', port=8765, timeout=60): """ Websocket server :param host: host on which the websocket need to run. @@ -367,7 +355,7 @@ async def _send(self, ws, channel): try: cell = await channel.to_send.get() - cell = lnn.cell.pad(cell) + cell = lnn.proxy.cell.Cell.pad(cell) await ws.send(cell) self.cell_sent += 1 diff --git a/lightnion/proxy/link.py b/lightnion/proxy/link.py index f32e0ed..00f5ba6 100644 --- a/lightnion/proxy/link.py +++ b/lightnion/proxy/link.py @@ -4,8 +4,6 @@ import asyncio import lightnion as lnn -import lightnion.cell -import lightnion.utils from lightnion.proxy import fake_circuit_id @@ -30,6 +28,7 @@ class InvalidVersionCellException(Exception): class NoSupportedVersionException(Exception): pass + class Link: def __init__(self, guard, versions=(4,5)): """ @@ -105,34 +104,21 @@ async def schedule_to_send(self, cell_raw, channel): """ # Set correct circuit id. - cell = lnn.cell.header_view.write(cell_raw, circuit_id=channel.cid) - #cell = lnn.utils.cell_set_cid(cell_raw, channel.cid) - - header = lnn.cell.header(cell) - #cmd = lnn.utils.cell_get_cmd(cell) - #if cmd == 3: - # cell = lnn.utils.cell_pad_rnd(cell) - #else: - # cell = lnn.utils.cell_pad_null(cell) - - #if cmd == 4: - if header.cmd is lnn.cell.cmd.DESTROY: + cell = lnn.proxy.cell.Cell.set_circuit_id(cell_raw, channel.cid) + + cmd = lnn.proxy.cell.Cell.command(cell_raw) + if cmd == lnn.proxy.cell.Command.DESTROY: logging.debug('Link: channel {} asks for the circuit to be destroyed.'.format(channel.cid)) - cell_validation = lnn.cell.destroy.cell(cell) - #if not lnn.utils.cell_is_valid(cell): - if not cell_validation.valid: - logging.debug('Link: Channel {} attempted to send an invalid cell.'.format(channel.cid)) - return - #raise InvalidDestroyCellException() + + # TODO (improvement) Ensures cell is valid. # Mark the channel as destroyed if not channel.destroyed.is_set(): channel.destroyed.set() - cell_padded = lnn.cell.pad(cell) + cell_padded = lnn.proxy.cell.Cell.pad(cell) await self.to_send.put(cell_padded) - #await self.to_send.put(cell) logging.debug('Link: Scheduled data from channel {} to be send.'.format(channel.cid)) @@ -147,7 +133,7 @@ async def _recv(self, reader): """ while not reader.at_eof(): - data = await reader.read(65536) + data = await reader.read(4096) data = self.buffer + data @@ -156,45 +142,40 @@ async def _recv(self, reader): # Let the channel manager do the multiplexing. #logging.debug('Link: Received data\n{}'.format(data)) - (cell, data) = lnn.utils.cell_slice_old(data) + cell, data = lnn.proxy.cell.Cell.raw_from_buffer(data) - data_cells = b'' - cells = [] + #data_cells = b'' while cell is not None: - data_cells += cell - cells.append(cell) + #data_cells += cell logging.debug('Link: Spliced a cell. {}... {} bytes.'.format(cell[:20], len(cell))) # Analyse header to select correct channel. - header = lnn.cell.header(cell) - cid = header.circuit_id - #cid = lnn.utils.cell_get_cid(cell) + cid = lnn.proxy.cell.Cell.circuit_id(cell) if cid == 0: await self._handle_tor_cmd_cell(cell) else: # Replace the real circuit id by a dummy one. - cell_mut = lnn.cell.header_view.write(cell, circuit_id=fake_circuit_id) - #cell_mut = lnn.utils.cell_set_cid(cell, fake_circuit_id) + cell_mut = lnn.proxy.cell.Cell.set_circuit_id(cell, fake_circuit_id) self.cell_recv += 1 logging.info('cell {} recv by relay: {}'.format(self.cell_recv, cell[:20].hex())) await self.channel_manager.schedule_to_send(cell_mut, cid) - (cell, data) = lnn.utils.cell_slice_old(data) + cell, data = lnn.proxy.cell.Cell.raw_from_buffer(data) - data_cells = data_cells + data + #data_cells = data_cells + data - if data_cells != data_initial: - logging.warning('CELL SLICING MANGLE THE DATA') - logging.warning('INITIAL:\n{}'.format(data_initial.hex())) - logging.warning('CELLS:\n{}'.format(data_cells.hex())) - logging.warning('PREV BUFFER:\n{}'.format(self.buffer.hex())) - logging.warning('NEXT BUFFER:\n{}'.format(data.hex())) + #if data_cells != data_initial: + # logging.warning('CELL SLICING MANGLE THE DATA') + # logging.warning('INITIAL:\n{}'.format(data_initial.hex())) + # logging.warning('CELLS:\n{}'.format(data_cells.hex())) + # logging.warning('PREV BUFFER:\n{}'.format(self.buffer.hex())) + # logging.warning('NEXT BUFFER:\n{}'.format(data.hex())) - # At the end we keep the beginning of the next cell. + # At the end we keep the start of the next cell if needed. self.buffer = data @@ -227,54 +208,34 @@ async def _negociate_version(self, reader, writer, versions): logging.debug('Link: Begin version negociation.') # Ask the relay which versions it supports. - #payload = lnn.cell.versions.pack(versions) - payload = lnn.utils.cell_version_build(versions) - - #await lnn.cell.versions.send_async(writer, payload) - # Code from this method inlined here: - - #payload = payload.raw - - #vercell = lnn.cell.versions.cell(payload) - #if not vercell.valid: - # raise InvalidVersionCellException() + cell_version = lnn.proxy.cell.CellVersion(versions) + payload = cell_version.to_bytes() writer.write(payload) await writer.drain() - logging.debug('Link: Sent version cell: {}.'.format(payload)) + #logging.debug('Link: Sent version cell: {}.'.format(payload)) - #vercell = await lnn.cell.versions.recv_async(reader) - # Code from this method inlined here: - - #answer = await reader.read(lnn.cell.header_legacy_view.width()) answer = await reader.read(5) - #header = lnn.cell.header_legacy(answer) - #if not header.valid: - # raise InvalidCellHeaderException() - #if not header.cmd == lnn.cell.cmd.VERSIONS: - # raise InvalidVersionCellException() + # TODO (improvement) Ensures cell is valid. - #length = header.length - length = lnn.utils.cell_version_get_len(answer) + length = lnn.proxy.cell.CellVersion.length(answer) - if length > lnn.constants.max_payload_len: + if length > lnn.proxy.cell.PAYLOAD_SIZE_MAX: raise InvalidVersionCellException() answer += await reader.read(length) - #if not lnn.cell.versions.view.valid(answer): - # raise InvalidVersionCellException() - logging.debug('Link: Received version cell: {}'.format(answer)) + # TODO (improvement) Ensures cell is valid. + + #logging.debug('Link: Received version cell: {}'.format(answer)) - #vercell = lnn.cell.versions.cell(answer) - versions_res = lnn.utils.cell_version_get_versions(answer) + cell = lnn.proxy.cell.CellVersion.from_bytes(answer) - #common_versions = set(vercell.versions).intersection(versions) - common_versions = set(versions_res).intersection(versions) + common_versions = set(cell.versions).intersection(versions) - if len(common_versions) < 1: + if not common_versions: raise NoSupportedVersionException() max_version = max(common_versions) @@ -340,37 +301,15 @@ async def _handler(self, host, port, ctxt, versions): #logging.debug('Link: Received handshake cells:\n{}'.format(cells_raw)) - (cell, cells_raw) = lnn.utils.cell_slice(cells_raw) - #certs_cell = lnn.cell.certs.cell(cell) - certs_cell = cell - #logging.debug('Link: Certs cell:\n{}... {} bytes.'.format(certs_cell.raw[:20], len(certs_cell.raw))) - logging.debug('Link: Certs cell: {}... {} bytes.'.format(certs_cell[:20], len(certs_cell))) + certs_cell, cells_raw = lnn.proxy.cell.Cell.raw_from_buffer(cells_raw) + auth_cell, cells_raw = lnn.proxy.cell.Cell.raw_from_buffer(cells_raw) + netinfo_cell, cells_raw = lnn.proxy.cell.Cell.raw_from_buffer(cells_raw) - (cell, cells_raw) = lnn.utils.cell_slice(cells_raw) - #auth_cell = lnn.cell.challenge.cell(cell) - auth_cell = cell - #logging.debug('Link: Auth cell:\n{}... {} bytes.'.format(auth_cell.raw[:20], len(auth_cell.raw))) - logging.debug('Link: Auth cell: {}... {} bytes.'.format(auth_cell[:20], len(auth_cell))) - - (cell, cells_raw) = lnn.utils.cell_slice(cells_raw) - #netinfo_cell = lnn.cell.netinfo.cell(cell) - netinfo_cell = cell - #logging.debug('Link: Netinfo cell:\n{}... {} bytes.'.format(netinfo_cell.raw[:20], len(netinfo_cell.raw))) - logging.debug('Link: Netinfo cell: {}... {} bytes.'.format(netinfo_cell[:20], len(netinfo_cell))) - - # Validation of handshake cells given by the relay. - #if not certs_cell.valid: - # raise InvalidCertsCellException() - - #if not auth_cell.valid: - # raise InvalidAuthCellException() - - #if not netinfo_cell.valid: - # raise InvalidNetInfoCellException() + # TODO (improvement) Ensures cells are valid. # Send the NETINFO without doing any further authentication. - #netinfo_cell = lnn.cell.pad(lnn.cell.netinfo.pack(host)) - netinfo_cell = lnn.utils.cell_netinfo_build(host) + + netinfo_cell = lnn.proxy.cell.CellNetInfo.to_bytes(host) writer.write(netinfo_cell) await writer.drain() @@ -385,15 +324,6 @@ async def _handler(self, host, port, ctxt, versions): done, pending = await asyncio.wait(tasks, return_when=asyncio.FIRST_COMPLETED) - #while not reader.at_eof(): - # done, pending = await asyncio.wait(tasks, return_when=asyncio.FIRST_COMPLETED) - # if tasks[0].done() or tasks[0].cancelled(): - # tasks[0] = asyncio.create_task(self._recv(reader)) - # logging.debug('Link: New recv task created.') - # if tasks[1].done() or tasks[1].cancelled(): - # tasks[1] = asyncio.create_task(self._send(writer)) - # logging.debug('Link: New send task created.') - # Proper termination of communications. for task in tasks: if not task.cancelled(): diff --git a/lightnion/proxy/parts.py b/lightnion/proxy/parts.py index 46f1aee..075dbfb 100644 --- a/lightnion/proxy/parts.py +++ b/lightnion/proxy/parts.py @@ -4,7 +4,7 @@ from cryptography.hazmat.primitives.ciphers.aead import AESGCM as gcm from cryptography.exceptions import InvalidTag -import lightnion as lnn +#import lightnion as lnn class crypto: def __init__(self): @@ -12,7 +12,7 @@ def __init__(self): self.gcm = gcm(gcm.generate_key(bit_length=128)) def compute_token(self, circuit_id, binding): - circuit_id = lnn.cell.view.uint(4).write(b'', circuit_id) + circuit_id = circuit_id.to_bytes(4, 'big') nonce = secrets.token_bytes(12) token = self.gcm.encrypt(nonce, circuit_id, self.binding + binding) diff --git a/lightnion/proxy/path.py b/lightnion/proxy/path.py deleted file mode 100644 index 413dddb..0000000 --- a/lightnion/proxy/path.py +++ /dev/null @@ -1,265 +0,0 @@ -import multiprocessing -import threading -import logging -import atexit -import base64 -import queue -import time - -import stem -import stem.process -import stem.control - -# TODO: replace the whole content of this file with proper stuff! - -default_nb_worker = 2 - -class worker(threading.Thread): - def __init__(self, host, port, barrier, path_queue, batch_size): - super().__init__() - - self.mini_batch = batch_size // 8 if batch_size // 8 > 0 else 1 - self.batch_size = batch_size - self.path_queue = path_queue - self.barrier = barrier - self.count = 0 - self.finished = False - self.dead = False - self.port = port - self.host = host - - def run(self): - ctrl = stem.control.Controller.from_port(self.host, port=self.port) - ctrl.authenticate() - - first = self.barrier.wait() - if first == 0: - ctrl.drop_guards() - ctrl.signal(stem.Signal.NEWNYM) - self.barrier.wait() - - circs = [] - while not self.dead: - if self.count >= self.batch_size and not self.dead: - for circ in circs: - try: - ctrl.close_circuit(circ) - except (stem.ControllerError, ValueError): - pass - self.finished = True - self.count = 0 - - for _ in range(self.mini_batch): - if len(circs) > self.batch_size: - break - - try: - circs.append(ctrl.new_circuit()) - except stem.ControllerError as e: - pass - - fails = [] - for circ in circs: - try: - path = ctrl.get_circuit(circ).path - if len(path) == 3: - ctrl.close_circuit(circ) - self.path_queue.put(path) - self.count += 1 - else: - fails.append(circ) - except (stem.ControllerError, ValueError) as e: - pass - - circs = fails - self.barrier.wait() - - ctrl.close() - -_cached_tor = None -def get_tor(control_port=9051, socks_port=9050, msg_handler=None): - global _cached_tor - if _cached_tor is not None: - return _cached_tor - - tor = stem.process.launch_tor_with_config( - config={ - 'SocksPort': str(socks_port), - 'ControlPort': str(control_port), - 'PublishServerDescriptor': '0', - }, init_msg_handler=msg_handler) - atexit.register(tor.kill) - - _cached_tor = tor - -def emitter( - output_queue, - kill_queue, - control_host, - control_port, - batch=32, - target=1024, - nb_worker=default_nb_worker): - - # (shut up stem) - logging.getLogger(stem.__name__).setLevel(logging.ERROR) - - barrier = threading.Barrier(nb_worker) - path_queue = queue.Queue(maxsize=batch) - batch_size = target // nb_worker + 1 - - workers = [] - for _ in range(nb_worker): - workers.append( - worker( - control_host, - control_port, - barrier, - path_queue, - batch_size)) - - for w in workers: - w.start() - - guard, middle, exit = path_queue.get() - output_queue.put(guard) - output_queue.put((middle, exit)) - - while any([not w.finished for w in workers]): - new_guard, middle, exit = path_queue.get() - if new_guard != guard: - continue - - output_queue.put((middle, exit)) - if kill_queue.qsize() > 0: - for w in workers: - w.finished = True - - # (cleanup is useless as the process will die, but do it nonetheless) - barrier.abort() - for w in workers: - w.dead = True - - try: - for i in range(path_queue.qsize()): - path_queue.get_nowait() - except queue.Empty: - pass - - for w in workers: - w.join(0.1) - -class producer: - def __init__(self, process, path_queue, kill_queue, tor_process): - self.guard = path_queue.get() - self.process = process - self.path_queue = path_queue - self.kill_queue = kill_queue - self.tor_process = tor_process - - @property - def dead(self): - return not self.process.is_alive() - - @property - def empty(self): - return not (self.path_queue.qsize() > 0) - - def get(self): - return self.path_queue.get() - - def close(self): - try: - self.kill_queue.put_nowait([None]) - except queue.Full: - pass - - try: - self.path_queue.get_nowait() - except queue.Empty: - pass - -_default_tor = None -_default_socks_port = None -_default_control_port = None -def fetch( - batch=32, - target=1024, - nb_worker=2, - tor_process=None, - socks_port=None, - control_host='127.0.0.1', - control_port=None): - - global _default_tor, _default_socks_port, _default_control_port - if socks_port is None: - if _default_socks_port is None: - _default_socks_port = 9050 - socks_port = _default_socks_port - - if control_port is None: - if _default_control_port is None: - _default_control_port = 9051 - control_port = _default_control_port - - if tor_process is None: - if _default_tor is None: - _default_tor = get_tor( - socks_port=socks_port, - control_port=control_port, - msg_handler=None) - tor_process = _default_tor - - path_queue = multiprocessing.Queue(maxsize=batch) - kill_queue = multiprocessing.Queue(maxsize=1) - process = multiprocessing.Process(target=emitter, args=( - path_queue, - kill_queue, - control_host, - control_port, - batch, - target, - nb_worker)) - process.start() - - if not tor_process: - tor_process = None - - return producer(process, path_queue, kill_queue, tor_process) - -# TODO: check if this conversion fingerprint->descriptor is safe? -def convert(*entries, consensus, expect='fetch_format'): - if expect not in ['list', 'fetch_format']: - raise RuntimeError('Format unknown: {}'.format(expect)) - - if expect == 'fetch_format': - entries = [entries[0]] + [node for pair in entries[1] for node in pair] - guard, *paths = convert(*entries, consensus=consensus, expect='list') - paths = list(zip(paths[::2], paths[1::2])) - return guard, paths - - if expect == 'list': - pass - new_entries = [] - - by_identity = {r['identity']: r for r in consensus['routers']} - if len(by_identity) != len(consensus['routers']): - raise RuntimeError('Unsafe! Duplicates in the consensus!') - - for entry in entries: - fingerprint, nickname = entry - - as_identity = str(base64.b64encode(bytes.fromhex(fingerprint)), 'utf8') - as_identity = as_identity.replace('=', '') - - if as_identity not in by_identity: - raise RuntimeError('Unknown entity within consensus: {}'.format( - (entry, as_identity))) - - router = by_identity[as_identity] - if nickname != router['nickname']: - raise RuntimeError('Mismatched nickname: {} vs {}'.format(nickname, - router['nickname'])) - - new_entries.append(router) - return new_entries diff --git a/lightnion/signature.py b/lightnion/signature.py index b9aae43..f712000 100644 --- a/lightnion/signature.py +++ b/lightnion/signature.py @@ -17,8 +17,7 @@ def verify(raw_cons, keys, minimal=0.5): :param raw_cons: the consensus we want to verify :param keys: a dictionary of keys as retrieved by the function get_signing_keys_info of tools/keys.py - :param minimal: the minimal percentage of the authorities whose signatures must be verified in order to accept the - given consensus + :param minimal: the minimal percentage of the authorities whose signatures must be verified in order to accept the given consensus :return: true if at least the minimal number of signatures are verified """ assert 0 < minimal <= 1 diff --git a/lightnion/socket.py b/lightnion/socket.py deleted file mode 100644 index 43d379b..0000000 --- a/lightnion/socket.py +++ /dev/null @@ -1,211 +0,0 @@ -import lightnion as lnn - -import threading -import socket -import queue -import ssl - -# TODO: Better network handling? - -class _stat_peer: - def __init__(self, peer): - self.peer = peer - - self._kbout = 0 - self._kbin = 0 - - def disp(self): - print('Traffic: {:.2f} up {:.2f} down'.format( - self._kbout, self._kbin), end='\r') - - def recv(self, size): - data = self.peer.recv(size) - self._kbin += len(data) / 1000 - self.disp() - return data - - def send(self, data): - bytes_send = self.peer.send(data) - self._kbout += bytes_send / 1000 - self.disp() - return bytes_send - - def sendall(self, data): - bytes_send = self.peer.sendall(data) - self._kbout += bytes_send / 1000 - self.disp() - return bytes_send - - def get_channel_binding(self, *kargs): - return self.peer.get_channel_binding(*kargs) - - def close(self): - return self.peer.close() - -def cell_slice(payload, once=False): - cell_header = lnn.cell.header(payload) - if len(payload) < cell_header.width: # (payload too small, need data) - return [], payload, True - - if not cell_header.valid: - raise RuntimeError('Invalid cell header: {}'.format(cell_header.raw)) - - length = cell_header.width + lnn.constants.payload_len - if not cell_header.cmd.is_fixed: - cell_header = lnn.cell.header_variable(payload) - if len(payload) < cell_header.width: # (payload too small, need data) - return [], payload, True - - if not cell_header.valid: - raise RuntimeError( - 'Invalid variable cell header: {}'.format(cell_header.raw)) - - length = cell_header.width + cell_header.length - - if length > lnn.constants.max_payload_len: - raise RuntimeError('Invalid cell length: {}'.format(length)) - - if len(payload) < length: - return [], payload, True - - cells = [payload[:length]] - payload = payload[length:] - celling = False - - if once: - return cells, payload, celling - - while not celling and len(payload) > 0: - new_cells, payload, celling = cell_slice(payload, once=True) - cells += new_cells - return cells, payload, celling - -class worker(threading.Thread): - def __init__(self, peer, max_fails=32, max_queue=2048, buffer_size=4096): - super().__init__() - - self.buffer_size = buffer_size - self.max_queue = max_queue - self.max_fails = max_fails - self.peer = peer - - self.cell_queue = queue.Queue(max_queue) - self.send_queue = queue.Queue(max_queue) - self.recv_queue = queue.Queue(max_queue) - self.sending = b'' - self.recving = b'' - self.celling = False - self.fails = 0 - self.dead = False - - def close(self): - self.peer.close() - self.dead = True - - def die(self, e): - if self.dead: - return - - self.close() - raise e - - def send(self, cell, block=True): - self.send_queue.put(lnn.cell.pad(cell), block=block) - - def recv(self, block=True): - return self.cell_queue.get(block=block) - - def main(self): - if self.fails > self.max_fails: - cells, _, _ = cell_slice(self.recving) - for cell in cells: - self.cell_queue.put(cell) - self.die(RuntimeError('Too many fails, is the socket dead?')) - - try: - if len(self.sending) < 1: - self.sending = self.send_queue.get(block=False) - except queue.Empty: - pass - - try: - if len(self.sending) > 0: - nbytes = self.peer.send(self.sending) - self.fails = self.fails + 1 if nbytes == 0 else 0 - self.sending = self.sending[nbytes:] - return - except (socket.timeout, ssl.SSLError, BlockingIOError): - pass - - try: - payload = self.peer.recv(self.buffer_size) - self.fails = self.fails + 1 if len(payload) == 0 else 0 - self.recv_queue.put(payload) - if self.recv_queue.qsize() < self.max_queue // 4: - return - except (socket.timeout, ssl.SSLError, BlockingIOError): - pass - - try: - if ((len(self.recving) < 1 or self.celling) - and len(self.recving) <= lnn.constants.max_payload_len): - self.recving += self.recv_queue.get(block=False) - self.celling = False - except queue.Empty: - pass - - if len(self.recving) > 0 and not self.celling: - cells, self.recving, self.celling = cell_slice(self.recving) - for cell in cells: - self.cell_queue.put(cell) - - def run(self): - try: - while not self.dead: - self.main() - self.dead = True - except BaseException as e: - self.die(e) - -class io: - _join_timeout = 3 - - def __init__(self, - peer, - daemon=True, - period=0.01, - max_fails=32, - max_queue=2048, - buffer_size=4096): - peer.settimeout(period) - # peer = _stat_peer(peer) # uncomment for extra statistics - - self.worker = worker(peer, max_fails, max_queue, buffer_size) - if daemon: - self.worker.daemon = True - - self.worker.start() - self.peer = peer - - @property - def dead(self): - return self.worker.dead - - @property - def pending(self): - return self.worker.cell_queue.qsize() - - def recv(self, block=True): - return self.worker.recv(block) - - def send(self, payload, block=True): - self.worker.send(payload, block=block) - - def binding(self): - return self.peer.get_channel_binding() - - def close(self): - self.peer.close() - - self.worker.close() - self.worker.join(self._join_timeout) diff --git a/lightnion/tests/path_selection_test.py b/lightnion/tests/path_selection_test.py deleted file mode 100644 index 1f95d4c..0000000 --- a/lightnion/tests/path_selection_test.py +++ /dev/null @@ -1,63 +0,0 @@ -import random - -import pytest - -from lightnion import cache -from lightnion import consensus -from lightnion import create -from lightnion import link -from lightnion import path_selection as ps - - -@pytest.fixture() -def get_chutney_consensus(): - """Get chutney's consensus""" - cache.purge() - lk = link.initiate(port=5000) - state = create.fast(lk) - state, cons = consensus.download(state, flavor='unflavored') - - dict_cons = {} - for router in cons['routers']: - dict_cons[router['nickname']] = router - - return state, dict_cons - - -def test_keep_exit_works_with_suitable_router(get_chutney_consensus): - state, cons = get_chutney_consensus - - keep, state, descriptor = ps.keep_exit(cons['test006r'], state) - - assert keep and descriptor is not None - - -def test_keep_exit_works_with_reject_exit_policy(get_chutney_consensus): - state, cons = get_chutney_consensus - - keep, state, descriptor = ps.keep_exit(cons['test002a'], state) - - assert not keep and descriptor is None - - -def test_pick_good_exit_returns_a_router(get_chutney_consensus): - state, cons = get_chutney_consensus - routers = cons.values() - - state, exit_node = ps.pick_good_exit(routers, state) - - assert exit_node is not None - - -def test_path_selection_works(get_chutney_consensus): - state, cons = get_chutney_consensus - routers = cons.values() - - ps.select_path(routers, state, testing=True) - - -def test_obey_minimal_constraint_with_one_router(get_chutney_consensus): - state, cons = get_chutney_consensus - - assert not ps.obey_minimal_constraint(cons['test005r'], cons['test005r']) - diff --git a/lightnion/tests/test_consensus_chutney.py b/lightnion/tests/test_consensus_chutney.py deleted file mode 100644 index 276af92..0000000 --- a/lightnion/tests/test_consensus_chutney.py +++ /dev/null @@ -1,26 +0,0 @@ -import lightnion as lnn - - -def test_download_unflavored(): - addr, port = '127.0.0.1', 5000 - - link = lnn.link.initiate(address=addr, port=port) - endpoint = lnn.create.fast(link) - - # Downloading unflavored consensus - endpoint, unflavored = lnn.consensus.download(endpoint, - flavor='unflavored') - - assert True - - -def test_download_microdesc(): - addr, port = '127.0.0.1', 5000 - - link = lnn.link.initiate(address=addr, port=port) - endpoint = lnn.create.fast(link) - - # Downloading microdesc consensus - endpoint, microdesc = lnn.consensus.download(endpoint, flavor='microdesc') - - assert True diff --git a/lightnion/tests/test_create_chutney.py b/lightnion/tests/test_create_chutney.py deleted file mode 100644 index d48682b..0000000 --- a/lightnion/tests/test_create_chutney.py +++ /dev/null @@ -1,36 +0,0 @@ -import lightnion as lnn - - -def test_fast(): - addr, port = '127.0.0.1', 5000 - - link = lnn.link.initiate(address=addr, port=port) - - # Simple creation of one-hop circuits with CREATE_FAST cells: - # - no public keys involved (only exchanging randomness through TLS). - # - used in Tor to connects to the guard (the first hop) to reduce load. - # Creating 10 one-hop circuits with CREATE_FAST cells - for i in range(10): - state = lnn.create.fast(link) - - assert True - - -def test_ntor(): - addr, port = '127.0.0.1', 5000 - - link = lnn.link.initiate(address=addr, port=port) - endpoint = lnn.create.fast(link) - - # Retrieve cryptographic material through fast circuit - endpoint, authority = lnn.descriptors.download_authority(endpoint) - - # Perform "ntor" handshake with authority['router']['nickname'] - endpoint = lnn.create.ntor(link, authority) - - # Attempt to use the "ntor" circuit - endpoint, descriptor = lnn.descriptors.download_authority(endpoint) - - assert descriptor['digest'] == authority['digest'], \ - 'Descriptor digest: {}\n'.format(descriptor['digest']) + \ - 'Authority digest; {}\n'.format(authority['digest']) diff --git a/lightnion/tests/test_descriptors_chutney.py b/lightnion/tests/test_descriptors_chutney.py deleted file mode 100644 index 7fa0daa..0000000 --- a/lightnion/tests/test_descriptors_chutney.py +++ /dev/null @@ -1,39 +0,0 @@ -import lightnion as lnn - - -def test_download_microdesc(): - addr, port = '127.0.0.1', 5000 - - link = lnn.link.initiate(address=addr, port=port) - endpoint = lnn.create.fast(link) - - # Downloading descriptors - endpoint, descriptors = lnn.descriptors.download(endpoint, - flavor='microdesc') - - assert True - - -def test_download_unflavored(): - addr, port = '127.0.0.1', 5000 - - link = lnn.link.initiate(address=addr, port=port) - endpoint = lnn.create.fast(link) - - # Downloading descriptors - endpoint, undescriptors = lnn.descriptors.download(endpoint, - flavor='unflavored') - - assert True - - -def test_download_authority(): - addr, port = '127.0.0.1', 5000 - - link = lnn.link.initiate(address=addr, port=port) - endpoint = lnn.create.fast(link) - - # Asking politely for our OR's descriptor - endpoint, authority = lnn.descriptors.download_authority(endpoint) - - assert True diff --git a/lightnion/tests/test_extend_chutney.py b/lightnion/tests/test_extend_chutney.py deleted file mode 100644 index 0d95231..0000000 --- a/lightnion/tests/test_extend_chutney.py +++ /dev/null @@ -1,68 +0,0 @@ -import lightnion as lnn - - -def test_circuit(): - import random - - addr, port = '127.0.0.1', 5000 - - link = lnn.link.initiate(address=addr, port=port) - endpoint = lnn.create.fast(link) - - # Download our first hop's descriptor - endpoint, authority = lnn.descriptors.download_authority(endpoint) - - # Download a consensus - endpoint, cons = lnn.consensus.download(endpoint, flavor='unflavored') - - # Randomly pick few nodes (!! NOT a sane behavior, only to showcase API !!) - further_hops = [] - circuit_length = random.randint(2, 7) # (random circuit length to showcase) - - random.shuffle(cons['routers']) - for router in cons['routers']: - if len(further_hops) == circuit_length: - break - - # Skip our first node & already picked ones (no loop) - if router['digest'] == authority['digest']: - continue - if router['digest'] in [h['digest'] for h in further_hops]: - continue - - # Skip nodes that are not 'Fast' and 'Stable' - if 'Fast' not in router['flags'] or 'Stable' not in router['flags']: - continue - - # Skip nodes with old Tor versions - if not router['version'].startswith('Tor 0.3.'): - continue - - # Retrieve its descriptor - endpoint, nhop = lnn.descriptors.download( - endpoint, cons=router, flavor='unflavored') - nhop = nhop[0] # (expect only one entry with a matching digest) - - # Skip the entry if digests do not match (note: double-check here) - if router['digest'] != nhop['digest']: - continue - - # Skip if no ed25519 identity key available - if 'identity' not in nhop or nhop['identity']['type'] != 'ed25519': - continue - - # Keep the descriptor for later (to build the circuit) - further_hops.append(nhop) - - # Create a brand new circuit (to have spare RELAY_EARLY to extend it) - endpoint = lnn.create.fast(link) - - for nhop in further_hops: - # Extending to nhop['router']['nickname']: - # - remaining RELAY_EARLY: endpoint.early_count - endpoint = lnn.extend.circuit(endpoint, nhop) - - endpoint, authority = lnn.descriptors.download_authority(endpoint) - endpoint, ncons = lnn.consensus.download(endpoint, cache=False) - - assert True diff --git a/lightnion/tests/test_hop_chutney.py b/lightnion/tests/test_hop_chutney.py deleted file mode 100644 index 175e525..0000000 --- a/lightnion/tests/test_hop_chutney.py +++ /dev/null @@ -1,19 +0,0 @@ -import lightnion as lnn - - -def test_directory_query(): - addr, port = '127.0.0.1', 5000 - - link = lnn.link.initiate(address=addr, port=port) - endpoint = lnn.create.fast(link) - endpoint = lnn.hop.send(endpoint, lnn.cell.relay.cmd.RELAY_DROP) - - # Download the full consensus without compression - endpoint, full_answer = lnn.hop.directory_query(endpoint, - '/tor/status-vote/current/consensus', compression='identity') - - # Download the microdesc consensus with compression - endpoint, full_answer = lnn.hop.directory_query(endpoint, - '/tor/status-vote/current/consensus-microdesc') - - assert True diff --git a/lightnion/tests/test_link_chutney.py b/lightnion/tests/test_link_chutney.py deleted file mode 100644 index 21cba5c..0000000 --- a/lightnion/tests/test_link_chutney.py +++ /dev/null @@ -1,10 +0,0 @@ -import lightnion as lnn - - -def test_initiate(): - addr, port = '127.0.0.1', 5000 - - link = lnn.link.initiate(addr, port) - link.close() - - assert True diff --git a/lightnion/tests/test_path_selection_chutney.py b/lightnion/tests/test_path_selection_chutney.py deleted file mode 100644 index a870b73..0000000 --- a/lightnion/tests/test_path_selection_chutney.py +++ /dev/null @@ -1,16 +0,0 @@ -import lightnion as lnn - - -def test_select_path(): - addr, port = '127.0.0.1', 5000 - - # Download the consensus - lnn.cache.purge() - link = lnn.link.initiate(address=addr, port=port) - state = lnn.create.fast(link) - state, cons = lnn.consensus.download(state, flavor='unflavored') - - state, guard, middle, exit_node = lnn.path_selection.select_path( - cons['routers'], state, testing=True) - - assert True diff --git a/lightnion/utils.py b/lightnion/utils.py deleted file mode 100644 index 35caf1c..0000000 --- a/lightnion/utils.py +++ /dev/null @@ -1,229 +0,0 @@ -import lightnion as lnn -import socket -import time -import os - -class InvalidCellHeaderException(Exception): - def __init__(self, header): - super().__init__('Invalid cell header: {}'.format(header)) - -class InvalidCellLengthException(Exception): - pass - - -cell_cmd_to_string = { - 0: "PADDING", - 1: "CREATE", - 2: "CREATED", - 3: "RELAY", - 4: "DESTROY", - 5: "CREATE_FAST", - 6: "CREATED_FAST", - 7: "VERSIONS", - 8: "NETINFO", - 9: "RELAY_EARLY", - 10: "CREATE2", - 11: "CREATED2", - 12: "PADDING_NEGOTIATE", - 128: "VPADDING", - 129: "CERTS", - 130: "AUTH_CHALLENGE", - 131: "AUTHENTICATE", - 132: "AUTHORIZE" -} - -def cell_to_str(cell): - return cell[:20].hex() - -def cell_get_cid(cell): - return int.from_bytes(cell[0:4], 'big') - - -def cell_set_cid(cell, cid): - return cid.to_bytes(4, 'big') + cell[4:] - - -def cell_get_cmd(cell): - return cell[4] - - -def cell_version_get_cmd(cell): - return cell[2] - - -def cell_get_len(cell): - return int.from_bytes(cell[5:7], 'big') - - -def cell_version_get_len(cell): - return int.from_bytes(cell[3:5], 'big') - - -def cell_pad_rnd(cell): - if cell_is_variable_length(cmd): - cell_len = 7 + cell_get_len(payload) - else: - cell_len = 514 - - if cell_len > len(cell): - return cell + os.urandom(cell_len - len(cell)) - else: - return cell - - -def cell_pad_null(cell): - if cell_is_variable_length(cmd): - cell_len = 7 + cell_get_len(payload) - else: - cell_len = 514 - - if cell_len > len(cell): - return cell + bytearray(cell_len - len(cell)) - else: - return cell - - -def cell_is_valid(cell): - cmd = cell_get_cmd(cell) - if cmd in cell_cmd_to_string.keys(): - return False - - cell_len = cell_get_len(cell) - if cell_len != len(cell): - return False - - # TODO: add some checks. - - return True - - -def cell_is_variable_length(cmd): - return cmd >= 128 or cmd == 7 - - -def cmd_to_str(cmd): - if cmd in cell_cmd_to_string.keys(): - return cell_cmd_to_string[cmd] - - return 'UNKNOWN ({})'.format(cmd) - - -def cell_version_build(versions): - cell = b'\x00\x00\x07' + (len(versions)*2).to_bytes(2, 'big') - - for version in versions: - cell += version.to_bytes(2, 'big') - - return cell - - -def cell_version_is_valid(cell): - cmd = cell_version_get_cmd(cell) - if cmd != 7: - return False - - cell_len = cell_version_get_len(cell) - if cell_len != len(cell): - return False - - # TODO: add some checks. - - return True - - -def cell_version_get_versions(cell): - return [int.from_bytes(cell[i:i+2], 'big') for i in range(5, len(cell), 2)] - - -def cell_netinfo_build(host): - tstmp = int(time.time()).to_bytes(4, 'big') - if host == 'localhost': - addr = b'\x7f\x00\x00\x01' - else: - addr = socket.inet_aton(host) - - addr_len = len(addr) - - if addr_len == 4: - addr_t = b'\x04' - else: - addr_t = b'\x06' - - cell = b'\x00\x00\x00\x00\x08' + tstmp + addr_t + addr_len.to_bytes(1, 'big') + addr - - # padding - cell += bytearray(514 - len(cell)) - - return cell - - -def cell_slice(payload): - """Retrieve the next cell from the payload and truncate that one. - :param payload: bytearray - """ - payload_len = len(payload) - if payload_len < 7: # (payload too small, need data) - return None, payload - - cmd = cell_get_cmd(payload) - - if cell_is_variable_length(cmd): - cell_len = 7 + cell_get_len(payload) - else: - cell_len = 514 - - if payload_len < cell_len: - return None, payload - - cell = payload[:cell_len] - - return cell, payload[cell_len:] - - -#def cell_version_slice(payload): -# payload_len = len(payload) -# if payload_len < 5: # (payload too small, need data) -# return None, payload -# -# cell_len = 5 + cell_version_get_len(payload) -# -# if payload_len < cell_len: -# return None, payload -# -# cell = payload[:cell_len] -# -# return cell, payload[cell_len:] - - -def cell_slice_old(payload): - """Retrieve the next cell from the payload and truncate that one. - :param payload: bytearray - """ - cell_header = lnn.cell.header(payload) - if len(payload) < cell_header.width: # (payload too small, need data) - return None, payload - - if not cell_header.valid: - raise InvalidCellHeaderException(cell_header.raw) - - length = cell_header.width + lnn.constants.payload_len - if not cell_header.cmd.is_fixed: - cell_header = lnn.cell.header_variable(payload) - if len(payload) < cell_header.width: # (payload too small, need data) - return None, payload - - if not cell_header.valid: - raise InvalidCellHeaderException(cell_header.raw) - - length = cell_header.width + cell_header.length - - if length > lnn.constants.max_payload_len: - raise InvalidCellLengthException() - - if len(payload) < length: - return None, payload - - cell = payload[:length] - - return cell, payload[length:] - diff --git a/requirements-proxy.txt b/requirements-proxy.txt deleted file mode 100644 index 215b8cd..0000000 --- a/requirements-proxy.txt +++ /dev/null @@ -1,6 +0,0 @@ -cryptography -websockets -requests -asyncio -quart -Quart-CORS diff --git a/requirements.txt b/requirements.txt index 540742f..693f300 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,9 @@ -pynacl +Quart-CORS +asyncio +cryptography pycryptodome +pynacl +quart +requests +stem +websockets diff --git a/stem b/stem deleted file mode 120000 index 48c2475..0000000 --- a/stem +++ /dev/null @@ -1 +0,0 @@ -stem-client/stem \ No newline at end of file diff --git a/stem-client b/stem-client deleted file mode 160000 index b48ce68..0000000 --- a/stem-client +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b48ce682ef1a5fc1d4237d106700ec929f49246b diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_consensus.py b/tests/test_consensus.py new file mode 100644 index 0000000..5475c56 --- /dev/null +++ b/tests/test_consensus.py @@ -0,0 +1,35 @@ +import json + +from dictdiffer import diff + +import lightnion as lnn +from lightnion.consensus import Consensus, Flavor + + +def test_micro_consensus_parsing(): + with open("data/consensus_micro_raw.txt", "r") as consensus_fd: + consensus_raw = consensus_fd.read() + + with open("data/consensus_micro_parsed.txt", "r") as consensus_fd: + consensus_expected = json.load(consensus_fd) + + consensus_parsed = Consensus.parse(consensus_raw, Flavor.MICRO) + print(list(diff(consensus_expected, consensus_parsed))) + assert consensus_expected == consensus_parsed + + +def test_consensus_parsing(): + with open("data/consensus_raw.txt", "r") as consensus_fd: + consensus_raw = consensus_fd.read() + + with open("data/consensus_parsed.txt", "r") as consensus_fd: + consensus_expected = json.load(consensus_fd) + + consensus_parsed = Consensus.parse(consensus_raw, Flavor.UNFLAVORED) + print(list(diff(consensus_expected, consensus_parsed))) + assert consensus_expected == consensus_parsed + + +if __name__ == "__main__": + test_micro_consensus_parsing() + test_consensus_parsing() diff --git a/tests/test_descriptors.py b/tests/test_descriptors.py new file mode 100644 index 0000000..337f2cb --- /dev/null +++ b/tests/test_descriptors.py @@ -0,0 +1,35 @@ +import json + +from dictdiffer import diff + +import lightnion as lnn +from lightnion.descriptors import Descriptors, Flavor + + +def test_micro_descriptors_parsing(): + with open("data/descriptors_micro_raw.txt", "r") as descriptors_fd: + descriptors_raw = descriptors_fd.read() + + with open("data/descriptors_micro_parsed.txt", "r") as descriptors_fd: + descriptors_expected = json.load(descriptors_fd) + + descriptors_parsed = Descriptors.parse(descriptors_raw, Flavor.MICRO) + print(list(diff(descriptors_expected, descriptors_parsed))) + assert descriptors_expected == descriptors_parsed + + +def test_descriptors_parsing(): + with open("data/descriptors_raw.txt", "r") as descriptors_fd: + descriptors_raw = descriptors_fd.read() + + with open("data/descriptors_parsed.txt", "r") as descriptors_fd: + descriptors_expected = json.load(descriptors_fd) + + descriptors_parsed = Descriptors.parse(descriptors_raw, Flavor.UNFLAVORED) + print(list(diff(descriptors_expected, descriptors_parsed))) + assert descriptors_expected == descriptors_parsed + + +if __name__ == "__main__": + test_micro_descriptors_parsing() + test_descriptors_parsing() diff --git a/tools/.extra/asyncio.py b/tools/.extra/asyncio.py deleted file mode 100644 index c1d64fd..0000000 --- a/tools/.extra/asyncio.py +++ /dev/null @@ -1,221 +0,0 @@ -# https://docs.python.org/3/library/asyncio-protocol.html - -# -# 1st draft (see below for 2nd draft) -# - -# perform handshake (as client) -> lnn.accept(handler) as server -async with lnn.link(host, port, *, ssl, transport=lnn.io.link) as link: - await link.write(*cells) # sends all cells provided - - async with link.fast(*, transport=lnn.io.circuit) as circuit: - async with link.ntor(descriptor, transport=lnn.io.circuit) as circuit: - circuit.write(*payloads) # sends all payloads provided (add header) - - # extend the circuit to target nodes - await circuit.extend(*descriptors) - - async with circuit.raw(*, transport=lnn.io.stream) as raw: - raw.write(*payloads) # sends all payloads provided (add header) - - # receive RELAY payloads - async for payload in raw: - # perform work - - async with circuit.dir(query, *, transport=lnn.io.stream) as request: - request.{headers,data,text, ...} # (query already performed) - - # returns the protocol - async with circuit.tcp(host, port, *, - protocol=lnn.io.socket, transport=lnn.io.stream) as socket: - - # socket-like interface - socket.send(data) - socket.recv() - -# class custom(lnn.io.{link,circuit,stream}): -# # custom control (or non-"relay_data") cells handling -# async def perform_control(self, cells): # (cells is an async generator) -# async for cell in super().perform_control(cells): -# # ... do some work ... -# if condition: -# yield cell # cells not yielded are hidden in lower layers - -# -# 2nd draft (see below for stack summary) -# - -async with lnn.link(host, port, handler=None, *, ssl, transport=lnn.t.link) as link: - # note that explicitly ssl=None must be stated to disable ssl cert. auth. - # (a context can be provided either way) - # - # if (handler == None), defaults to lnn.lp.initiator (if lnn.link) - # or lnn.lp.responder (if lnn.accept) - # - # (inherit from lnn.lp.basic) - # (context manager can only be used if (handler == None) here) - # - # See link.fast below for handler-related behaviors. - # - # - # lnn.link is a convenience wrapper around: - # lnn.create_link(lnn.io.ssl, lnn.lp.initiator, *kargs, * - # transport=lnn.t.link, loop=None) - # lnn.accept is a convenience wrapper around: - # lnn.create_link(lnn.io.ssl, lnn.lp.responder, *kargs, *, - # transport=lnn.t.link, loop=None) - # - # (where internally lnn.io.ssl is build using given lnn.lp, kargs & loop) - # - # - # They all have extra callbacks: - # raw(self, data) (called with raw incoming payloads) - # ready(self) (called when the link is ready) - # early(self, cell) (called before each cell is handled) - # control(self, cell) (called with control cells not handled) - # - # And expose: - # fast - # ntor - - async with link.fast(handler=None, *, transport=lnn.t.circuit) as circuit: - # if (handler == None), defaults to lnn.cp.fast (if link.fast) - # or lnn.cp.ntor (if link.ntor) - # (inherit from lnn.cp.basic) - # (context manager can only be used if (handler == None) here) - # - # - # link.fast is a convenience wrapper around: - # lnn.create_circuit(lnn.cp.fast, link, *kargs, *, - # transport=lnn.t.circuit) - # - # link.ntor is a convenience wrapper around: - # lnn.create_circuit(lnn.cp.ntor, link, *kargs, *, - # transport=lnn.t.circuit) - # - # (where protocol is build using link and *kargs) - # - # - # They all have extra callbacks: - # ready(self) (called when the circuit is ready) - # early(self, cell) (called before each cell is handled) - # control(self, cell) (called with control cells not handled) - # destroyed(self, reason) (called when a DESTROY cell comes) - # - # And expose: - # raw - # dir - # tcp - - # if handler is a callable, the transport is passed as: - async with link.fast(handler=None, *, transport=lnn.io.circuit) as circuit: - await handler(circuit) - - # thus expected call is: - asyncio.ensure_future(link.fast(handler)) - -# pre-build transports: -# lnn.t.link for lightnion.transports.link -# lnn.t.circuit for lightnion.transports.circuit -# lnn.t.stream for lightnion.transports.stream - -# pre-build protocols: -# lnn.lp for lightnion.link_protocols -# lnn.lp.basic -# lnn.lp.initiator -# lnn.lp.responder -# lnn.cp for lightnion.circuit_protocols -# lnn.cp.basic -# lnn.cp.raw -# lnn.cp.fast -# lnn.cp.ntor -# lnn.sp for lightnion.stream_protocols -# lnn.sp.basic -# lnn.sp.raw -# lnn.sp.dir -# lnn.sp.tcp -# lnn.dp for lightnion.data_protocols -# lnn.dp.basic -# lnn.dp.socket - -# stack summary -# -# · lnn.link -# | ~ lnn.create_link -# | -# | io -# | lnn.transports.link -# | lnn.link_protocols.{initiator, responder} (responder NOT implemented) -# | -# · link.{raw, fast, ntor} -# | ~ lnn.create_circuit -# | -# | lnn.transports.circuit -# | lnn.circuit_protocols.{raw, fast, ntor} -# | -# · circuit.{raw, dir, tcp} -# | ~ lnn.create_stream -# | -# | lnn.transports.stream -# | lnn.stream_protocols.{raw, dir, tcp} -# @ - -# raw protocols gives direct access to cell reader/writer -async with circuit.raw() as stream: - reader, writer = stream.get_transports() - -def handler(reader, writer): - pass - -asyncio.ensure_future(circuit.raw(handler)) - -# tcp also gives direct access, but to data reader/writer -async with circuit.tcp(host, port) as stream: - reader, writer = stream.get_transports() - -def handler(reader, writer): - pass - -asyncio.ensure_future(circuit.tcp(handler)) - -# dir is just like tcp, but sends a BEGIN_DIR instead - -# providing a lnn.adapters.socket(circuit) can be fun -# - returns an object that exposes main socket modules functions -# create_connection -# -# close -# getblocking -# gettimeout -# recv -# recvfrom -# recv_into -# send -# sendall -# sendfile -# setblocking -# settimeout -# -# # goals: -# # - have python native ssl module working -# # - have asyncio.get_event_loop().create_connection(sock=) working -# -# providing a lnn.adapters.requests(circuit) can be fun -# - returns an object that exposes main requests module functions -# -# adapters.HTTPAdapter (must work for both HTTP & HTTPs) -# Session (builds a session object, but with the right adapters) -# -# request -# head -# get -# post -# put -# patch -# delete -# -# providing a lnn.adapters.directory(circuit) can be fun -# - same a lnn.adapters.requests, but create dir streams instead -# -# adapters.HTTPAdapter (but building dir streams) -# diff --git a/tools/.extra/oldread.md b/tools/.extra/oldread.md deleted file mode 100644 index f97e042..0000000 --- a/tools/.extra/oldread.md +++ /dev/null @@ -1,262 +0,0 @@ -lightnion: Tor portable to the browser -===================================== - -**Note: lightlor is still at its early stages of development, do NOT use it for -anonymity.** - -This is an old `README.md` written during a long, sad – drunken – night… -or is it? In short, don't take any word here for granted. - -Content -------- - - - [Introduction](#introduction) - - [Quick Setup](#quick-setup) - - [Requirements](#requirements) - - [Frequently Asked Questions](#frequently-asked-questions) - - [Contribute](#contribute) - - [Contact](#contact) - - [License](#license) - -Introduction ------------- - -Kids these days worry about a lot of things: - - users wanting services designed with privacy in mind. - - users not wanting to download more than a webpage. - - users not wanting latency and high resources usage. - -**Lightnion** enables kids to build such applications in a world made of -browsers that are not the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en). - -It provides the following components: - - a lightweight client that can be easily embedded within a webpage. - - a forward proxy that does some heavy-lifting for clients. - - a reverse proxy that does the rest of the heavy-lifting. - -**Lightnion** lightweight client is a library that your javascript uses to talk -through Tor. Its forward proxy removes raw TCP between sandboxed code and onion -routers. Its reverse proxy removes the need of running TLS or HTTPS within a -webpage. - -It is also **not** production ready. - -Checkout [Frequently Asked Questions](#frequently-asked-question) for more -details. - -Quick setup ------------ - -Clone the repository and add it to your `PYTHONPATH`: -```sh -git clone --recurse-submodules https://github.com/spring-epfl/lightnion -cd lightnion -virtualenv venv -source venv/bin/activate -pip install -r requirements.txt -export PYTHONPATH="$PWD" -``` - -There is no online documentation for now. You'll find some examples under -`./examples`. - - -Requirements ------------- - -We do recommend using `chutney`, you'll find some instructions -within `./tools/chutney`. - -**Tested with `Python 3.6.5` against -`Tor version 0.3.3.6 (git-7dd0813e783ae16e)`.** - -If you need support for an older python or a newer Tor, please open an issue. - -Frequently Asked Questions --------------------------- - -If you have some questions, please open an issue starting with -`[FAQ] ` to get an answer or [contact us](#contact). - -You'll find below some answers to some frequently asked questions: - - - [Are you attempting to replace the Tor Browser?](#are-you-attempting-to-replace-the-tor-browser) - - [What can I expect lightnion to do for me?](#what-can-i-expect-lightnion-to-do-for-me) - - [How are you going to do that?](#how-are-you-going-to-do-that) - - [Why doing things in a browser?](#why-doing-things-in-a-browser) - - [Why javascript? Is is then unsafe?](#why-javascript-is-is-then-unsafe) - - [Does it protects me if I disable javascript?](#does-it-protects-me-if-i-disable-javascript) - - [Why not hacking the official Tor client?](#why-not-hacking-the-official-tor-client) - - [Why are you not using stem to do that?](#why-are-you-not-using-stem-to-do-that) - - [Why are you not using a pluggable transport to do that?](#why-are-you-not-using-a-pluggable-transport-to-do-that) - -### Are you attempting to replace the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en)? - -_No._ - -If you are an user worried about your privacy, using the Tor Browser is a [good -starting point](https://www.torproject.org/docs/faq.html.en#WhatIsTor). - -If you do not use the Tor Browser but -[still care](https://www.torproject.org/docs/faq.html.en#TBBOtherBrowser) -about privacy, you may someday enjoy web services that uses lightnion. - -If you are trying to build a web service designed with privacy in mind -and that works on any browser, lightnion may -[help you](#what-can-i-expect-lightnion-to-do-for-me). - -### What can I expect lightnion to do for me? - -_Not much if you are not building a web-based application._ - -First, start by reading: -[Are you attempting to replace the Tor Browser?](#are-you-attempting-to-replace-the-tor-browser). - -Now, if you are the one trying to build such privacy-enabled service, there is -not much that you can do against -[traffic analysis](https://www.torproject.org/about/overview.html.en#whyweneedtor). -Most chooses to tell their privacy-minded and tech-savvy users to get the Tor -Browser and leave other kinds of users aside. - -**Lightnion brings a different compromise into the picture:** your -privacy-minded and tech-savvy users will still be able to protect themselves, -however the other kinds will also interact with you through Tor and will have -some form of protection. - -The trick is that you will not be able to distinguish privacy-minded users from -other kinds of users. Thus, even getting few users to run signed software that -checks if your service does not misbehave can provide good incentives to remain -honest. - -To sum up, if you build such "privacy by default" service with lightnion, all -your users talk to you through Tor, get some protection and can at least trust -your reputation against the permanent scrutiny of anonymous privacy-minded -users hiding in the crowd. - -**Note that lightnion is still in the early stages of its development and need -more work to enforce those properties.** - -### How are you going to do that? - -_No idea, yet._ - -Lightnion is first and foremost a research project, its whole job is to figure -out how to achieve its goals. - -Please open an issue or [contact us](#contact) if you spot problems, have some -criticism or want to [contribute](#contribute). - -### Why doing things in a browser? - -_Because it is useful._ - -There is the [Tor Browser](https://www.torproject.org/projects/torbrowser.html.en) -and [several](https://www.torproject.org/docs/faq.html.en#TBBSocksPort) -[other](https://guardianproject.info/apps/orbot/) -[ways](https://tails.boum.org/) to use the Tor network and its capabilities as -an user. - -Lightnion aims to bring Tor to users with nothing more than loading a webpage. -Hence yes: it does things in a browser. - -### Why javascript? Is is then unsafe? - -_Because browsers. Not more than running any web-based application._ - -The full answer is closely related to: - - [Why doing things in a browser?](#why-doing-things-in-a-browser) - - [What can I expect lightnion to do for me?](#what-can-i-expect-lightnion-to-do-for-me) - -Lightnion targets mostly web-based applications where the user only open a -webpage to use Tor. It can not afford nice things such as native clients, -extensions or the Tor Browser itself: the only way to go was to embed some -javascript in the webpage. - -As an user of a web-based service, you already put some trust in your service -that delivers nice code with no malicious intent. Lightnion only adds to this -code a tiny library that gives a way for the service to interact with its -servers through Tor. - -Lightnion is only as small step towards an ecosystem that brings privacy to the -masses. It does provide few other components that may help users to protect -themselves, however it will not prevent design mistakes in applications or some -malpractices. - -### Does it protects me if I disable javascript? - -_Lightnion does not provide any kind of protection before it is executed._ - -This question is best answered through a case study: imagine that lightnion is -integrated into an instant messaging client written in javascript. You first -download the webpage, then the client kicks in and send/receive all messages -through the Tor network. - -Every user that keeps its browser tab open for a long time starts to look the -same, providing some form of anonymity. However, if you disabled javascript in -the first place, you never were an user of this instant messaging service in -the first place. - -### Why not hacking the official Tor client? - -_Because it may have been counterproductive._ - -Lightnion was build with a side task of understanding in details what can be/can -not be done within the Tor protocol, and what needed to be implemented in -order to get the thing into a browser. This implementation acts as a -side-effect of such work. - -Note that some components of the official client are used or planned to be -used, mostly for the sensitive parts. - -### Why are you not using [stem](http://stem.torproject.org/) to do that? - -_Because lightnion started before stem gained more client capabilities._ - -Closely related to: -[Why not hacking the official Tor client?](#why-not-hacking-the-official-tor-client) - -Note that some components of stem have been previously used and some are still -used. - -### Why are you not using a [pluggable transport](https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt) to do that? - -_For now._ - -Implementing a proper pluggable transport can enable lightnion to be more easily -integrated within the existing Tor ecosystem. However building such pluggable -transport is for now not a priority, lightnion needs more work to get to this -point. - ---- - -Contribute ----------- - -Feel free to contribute! - -If you want to make your time worth, do not hesitate to [contact us](#contact) -and to tell us what you want to do. - -Contact -------- - -Feel free to contact us: -``` - - carmela [dot] troncoso [at] epfl [dot] ch - - wouter [dot] lueks [at] epfl [dot] ch - - matthieu [at] daumas [dot] me -``` - -If you have bug reports or feature suggestions, please open an issue. - -License -------- - -This software is licensed under -[some license](LICENSE.txt_REPLACE_BEFORE_FIRST_RELEASE). -© 2018 Spring Lab (EPFL) and contributors. - -Note that the aforementioned `some license` mention should have been replaced -before the distribution of the project. If you are able to read this, please -[contact us](#contact) to report the issue or to obtain a copy of the license -we choose for the project. diff --git a/tools/.extra/spec.txt b/tools/.extra/spec.txt deleted file mode 100644 index dc7ab59..0000000 --- a/tools/.extra/spec.txt +++ /dev/null @@ -1,209 +0,0 @@ - -Summary: - - Can be used as proxy or pluggable transport. - - Add some headers during websocket UPGRADE handshake. - - Upon successful negotiation, gives access to a circuit. - - Upon failure, acts as if there is no websocket listener. - - Returns negotiation results in handshake answer. - -Notes: - - this "spec" is only notes, i.e. "brain farts". - - python websockets provides everything we need to bind unholy handshakes. - - -------------- -original file -------------- - -Some notes about anything I can think of in term of features and implementation -that can be included in lightnion. Note that here we assume that lightnion -provides no path selection mechanism -- also note that a client can recover at -any time a consensus or descriptors by doing an attempt without X-PNN-IDENTITY -and further perform signature validation and path selection locally. - -No mechanism for feature negotiation is provided to avoid trivial probing, note -that both PNN-OTP-SEED and PNN-HTTP-PROXY should be set to avoid active probes -(assuming a proper implementation of the lightnion proxy) - -lightnion config, only read once during startup: - PNN-LISTEN host:port (required) - incoming connections host:port - if lightnion is started as a plug. transport, host:port are overridden - PNN-ORPORT host:port:fast (required) - parent Tor node - if lightnion is started as a plug. transport, host:port are overridden - if :fast is omitted, attempts without X-PNN-NTOR will be unrecognized. - if :fast is present, lightnion circuit creation defaults to CREATE_FAST - whenever X-PNN-NTOR is omitted in the attempt. - PNN-PER-LINK nb (optional) - set the number of channel allocated per link, i.e. number of circuits - created before rotating a link. - (defaults to 16) - PNN-MAX-LINK nb (optional) - set the number of links that can exists in parallel. - (destroying oldest links first whenever needed) - (defaults to 64) - PNN-EXPIRACY seconds (optional) - number of seconds of inactivity before destroying channel. - (defaults to 600) - PNN-TIMEOUT seconds (optional) - number of seconds before timeout during circuit creation. - (defaults to 10) - PNN-SSL-CERT path (recommended) - if present, PNN-SSL-KEY must be set. - if present, lightnion will only accept TLS connections and will use the - certificate at the given path. - if not present, lightnion will not recognize attempts w/o X-PNN-NTOR. - PNN-SSL-KEY path (recommended) - if present, PNN-SSL-CERT must be set. - if present, lightnion will only accept TLS connections and will use the - key material at the given path. - if not present, lightnion will not recognize attempts w/o X-PNN-NTOR. - PNN-NTOR-AUTH hex/path (optional) - if present and either PNN-SSL-CERT or PNN-SSL-KEY is not set, lightnion - will not recognize attempts without a X-PNN-AUTH header. - if present, lightnion will accept X-PNN-AUTH headers if its value can - be interpreted as a valid x25519 key (either 32 hex-encoded bytes or a - path as described below). - if present and is not 64 hexadecimal digits, lightnion will interpret - the given value as the path of a PEM-encoded file and will take the - last 32 bytes of its base64-encoded material as key. - (effectively ignoring plausible x25519 ASN.1 headers) - if not present and either PNN-SSL-CERT or PNN-SSL-KEY is not present, - lightnion fails. - PNN-HTTP-PROXY protocol:host:port (experimental) - if not present, any unrecognized attempt will fail with no content, no - extra header and a status code of 400. - if present, any unrecognized attempt of opening a channel will be - forwarded as-is to the specified host:port and the answer, status code - and headers will be returned as-is to the client -- note that protocol - can only take "http" and "https" as value and that lightnion will - return a status code 500 without content nor extra header if it is - unable to complete the request. - PNN-OTP-SEED hex (experimental) - if present, lightnion will not recognize any attempt of opening any - channel without a valid X-PNN-OTP header and the hex-encoded seed - will be used to check validity. - (the seed must contain at least 32 bytes of uniform randomness and thus - lightnion will reject any seed shorter than 32 bytes) - PNN-MIN-POISSON milliseconds (experimental) - if not present, lightnion will not recognize any attempt that provides - a X-PNN-POISSON header. - if present, lightnion will not recognize any attempts that set a - X-PNN-POISSON header value below the value set here. - (should approximate PNN-LINK-POISSON * PNN-PER-LINK) - (recommended to 256) - PNN-LINK-POISSON milliseconds (experimental) - if present and PNN-MIN-POISSON not present, lightnion fails. - (defaults to 16) - -1. the client arrives, begin a websocket handshake providing extra headers: - - X-PNN-IDENTITY base64 (recommended) - target Tor node identity, must be the first X-PNN prefixed header and - must be equal to the parent Tor node identity to recognize the attempt. - if not present, defaults to the parent Tor node identity. - (can be used to implement header-based reverse proxies) - - X-PNN-NTOR base64 (recommended) - if present, a CREATE2 cell is send during circuit creation instead of a - CREATE_FAST cell, effectively performing a ntor handshake with parent - Tor node. - if present, lightnion will set X-PNN-NTORED header with the server - base64-encoded part of the handshake: - either a full identity+onionkey+pubkey - either a short only-pubkey - if X-PNN-NTOR is short, identity+onionkey used are of parent Tor node - - X-PNN-AUTH base64 (optional) - if present, it must be 32 base64-encoded bytes that represents an - x25519 public key. - if present, lightnion will perform a ntor handshake between the given - x25519 X-PNN-AUTH public key, the ntor onion key provided by - PNN-NTOR-AUTH and the identity set to parent Tor node's identity and - will only set X-PNN-DONE and X-PNN-AUTHED headers in the answer, - respectively to all X-PNN prefixed headers that should have been set - without X-PNN-AUTH in the attempt as a base64-encoded encrypted payload - and to the server base64-encoded part of the handshake. - (encryption uses here as key the first 32 bytes of the key material - issued during the handshake and as nonce the next 24 bytes) - - X-PNN-OTP hex (experimental) - if present, must be the last X-PNN prefixed header of the attempt. - if present and the server doesn't have PNN-OTP-SEED set, the attempt - will be unrecognized. - if not present and the server does have PNN-OTP-SEED set, the attempt - will be unrecognized. - if present and the server does have PNN-OTP-SEED set, the attempt will - be recognized if and only if X-PNN-OTP hex value is 128 digits (64 - bytes) and equal to TOTP with key set to all X-PNN prefixed headers - as set in the attempt except for X-PNN-OTP set to PNN-OTP-SEED, - separated by a new line and ordered as in the attempt, using the - default TOTP parameters and sha512 as hash function. - - X-PNN-POISSON milliseconds (experimental) - if present, lightnion will queue cells in both directions, each queue - emptying itself at intervals drawn from an exponential distribution - with an average set to the given milliseconds. - note that whenever a backward queue (from node to client) is empty, - a DROP cell is generated then queued. - note that each forward queue (from client to node) empties itself in - a common link queue that empties itself at intervals draw from an - exponential distribution with an average set to PNN-LINK-POISSON - milliseconds. - note that whenever a link queue is empty, a DROP cell is generated - then queued. - (DROP cells neither tags circuits nor links as active) - -2. the server creates a channel and its associated circuit for the client: - - a channel creation attempt can be either recognized or unrecognized, it - is recognized if all constraints put on X-PNN prefixed headers of the - attempt are filled. - - unrecognized channel creation attempts gives either 400 status codes with - no content and no extra headers or are forwarded as-is to PNN_HTTP_PROXY - if it was set during lightnion startup. - - circuit creation is attempted if and only if the attempt is recognized - and must be the last step performed during channel creation. - - if circuit creation timeouts, the channel creation failed and a status - code HTTP 503 is returned. - - every channel that does not receive messages from a client for more than - PNN-EXPIRACY is destroyed together with its circuit. - - whenever a link have no channel alive and is not the last link alive, it - is destroyed. - - after creating PNN-PER-LINK circuits for a link, a new link is created - and used for further circuits. - - the server attributes the circuit id used during creation to the channel - and will not use it again. - -3. the server gives an answer to the handshake and set several headers: - - X-PNN-IDENTITY base64 - target Tor node identity used as guard in this context, set whenever - X-PNN-DONE is not present - - X-PNN-NTORED base64 - set whenever X-PNN-NTOR was provided in the channel creation attempt, - except if X-PNN-DONE is present - - X-PNN-EXPIRACY seconds - set whenever PNN-EXPIRACY is different from its default value, - except if X-PNN-DONE is present - - X-PNN-DONE base64 - set whenever X-PNN-AUTH was provided in the channel creation attempt - - X-PNN-AUTHED base64 - set whenever X-PNN-DONE is present, see X-PNN-AUTH - - X-PNN-OTP-STAMP seconds - set as an integer equal to the unix timestamp as used during TOTP - whenever X-PNN-OTP was provided in the channel creation attempt, - except if X-PNN-DONE is present - -4. the server will forward binary data in both directions between the client - and the parent Tor node: - - every cell going from the client to the parent node will be dropped - whenever its circuit id is different from 0x80000000 or whenever its - command is different from 0x03 (RELAY cell). - - every cell going from the client to the parent node will see its circuit - id replaced by the id of the circuit id attached to the channel. - - every cell going from the parent node to the client will be dropped if - its command is different from 0x03 (RELAY cell). - - every cell going from the parent node to the client will see its circuit - id replaced by 0x80000000. - - if for any reason, the circuit attached to the channel is destroyed, the - channel is destroyed and its connection closed. - -Whenever encryption that are not explicitly required by the Tor protocol is -performed by lightnion or its client, we use xsalsa20-poly1305 authenticated -encryption as implemented by nacl via secretbox. This case is for now only used -whenever X-PNN-DONE is set. diff --git a/tools/authority_signing_keys.json b/tools/authority_signing_keys.json deleted file mode 100644 index ee92ef8..0000000 --- a/tools/authority_signing_keys.json +++ /dev/null @@ -1 +0,0 @@ -{"A678F6F1F0AC64A0EDA394CA68C285C44A44A2D7": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAwd1uWVB62CLKAbSTmSnfBsWbYejL9FZHNxiV0UQmwrhd8aUu3wQ+\nXT3IbMhxa4rcApS6UoGSdJoUNbML4oTNyS70RwXohltZAQVhOoQj/4YnR5Fy9YMl\nQSXqnG2qwdGmuF8zZ/11BN6wpkN8AexIQCAseHNJEJwqgZLthFOvTKuVy91EEo2J\nEmE3JGcGw5BIXuKijiDZjFaLBj36r6hTesdDwntClXjFAxFSQKiL3a+KFEBiyJVj\nDePi1dNMKE59uzC+zSoLA+JFi6t/OyFIc2z3YW+Q3iYKZCp1txvakwflFfAcM/GJ\nd8rpXGcloBmILmDQnwRLuBOxMpBAmkmbkQIDAQAB\n-----END RSA PUBLIC KEY-----", "modulus": "24473184578997799380402320362520187170612739189449528191775883638006496297849520872842377613691272309268459058635815529816764967185520546708444388216733043376788087566041075770984179055741817154219703106079928281471402838683252605731123470652599857578630740156093578904108905251312805989471221655961291109670934043787090316196859522741244001046419412803093345507398016794786012490957476861789129226942849266768863110976701686486494738396792435154645682080689874094795663866459211160559276467461264031656831030819263686722244482520353380765625674851310384557514651874434405782148747548998939007362576116154638721981329", "exponent": "65537"}, "264792573EE7B00055E858E701CD4999810C6245": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAphIwD4SYeaxNfvFjF4ETzolNU4rGU3rV1r+5skTaZBnKRXBaW16b\nCSp4KR+ZBhh7zb7cfN3F3gP6Z57TA5oB4Pf63GNr8mnmDh1/3KKjuNcRkPp0njVC\n9c2jWZAUrKb7F4drHYk3Uy1uWiYbS776fGbnTDep6ZQwGE1W4xmQMwHxOreqr1E7\nWSfmVyogY0lE2siOE/Z5IVhTi+kzhmV8bVUsKPsnOHQOD6jX3wHYIDda1c4fSzQp\n35l4Q9t9HJNPfiHJ1D0arlm4C9yJ7BhLPmoq478Qygu5XAHNW108bZKo9j3C1T1G\nyXYqVGlPY5nyPMBF0inTXXzvxElNcA0wXQIDAQAB\n-----END RSA PUBLIC KEY-----", "modulus": "20964527331642786625155753917780094334551719951352991458374196095381555724370709182443183958805627483991831411916979068452164921046705001544982496576097614601549169205085515343506076901591690637353094496110955161034814704134042997557903008293299090418571370466947553409752223504101682415304068953524853238676335788348708835518736503713338589848771791946942000072011849376973711551831007041139794493306770421269443011049620035609370885805641364823285812879360900871956992902302098754710365594473825824947161434659024694384644376211539983996335840623643245273712313899347313672847112390263693744907344677333217787588701", "exponent": "65537"}, "8224080532B17CA055166541855981A00DDD757A": {"pem": "-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAuKhq7IEkj76YwHUZd+SUL3mUi6uLCDww3JAEoAtzl4oLb3CMMSs0\ngOwkzFczhACjHK+94NRr+X4zKKfoN/72jXyExKUs0PTUF/Yqv4LFtCp48ceEBis5\nWzGu9Mkos92Yw7h5RbvW1+lqebd0F3JEtD2N+K9h5J0asAR1sHaqgN+xfxBW3cyu\njVrGylVaN65eN7F9rG4EIdONsFLyeU8kDf4yFsLaD07cplmWEKnlAX1Ymde9RLLR\nlwTjmM0l87tC9jC6XUfo+YSZEpLU3aL3YGdZAHXhnufKXPJt2EEqZV6X0yYS3MVn\nxUbgNm866pveO4UmEI4tMAzLw2l/Ei0mLQIDAQAB\n-----END RSA PUBLIC KEY-----", "modulus": "23310897962769138579530152326984562325999560215117116919129440886711631616239421300051714984835221930637795748389388036883601867877727008937328098826789130648279058326197062730716900487679687074313249610539228941163039858132813382657896505476586242145526041067207939446105310645771615256817614938009928594448348184476836859457134806325264462938528057758565791649219667722068645137308602013243524623394038775533144406797285850118421769403100576832578919437294038109209727358762994648125083085984821064177287312130548098407133002465283265664620338393496658934130687942521913412195806448326412827524314091955207243900461", "exponent": "65537"}} \ No newline at end of file diff --git a/tools/keys.py b/tools/keys.py deleted file mode 100644 index 2a65506..0000000 --- a/tools/keys.py +++ /dev/null @@ -1,148 +0,0 @@ -import os -import random -import requests -from Crypto.PublicKey import RSA -import json as js -import re - -# Those are the IP's addresses of the 9 authorities -ips = ['171.25.193.9:443', '86.59.21.38', '199.58.81.140', '204.13.164.118','66.111.2.131:9030', - '131.188.40.189', '128.31.0.34:9131', '154.35.175.225','193.23.244.244','194.109.206.212'] - - -def download_signing_keys(ip): - """Download the signing keys from the one of the authorities, parse the file and returns a dictionary - of identity digest and keys - :return: dictionary or none if there is a problem during the request""" - url = "http://{}/tor/keys/all".format(ip) - rq = requests.get(url) - - if rq.status_code == 200: - return parse_signing_keys(rq.text) - else: - return None - - -def parse_signing_keys(raw): - """Parse a raw file into a dictionary of fingerprint and keys - :param raw: the raw file - :return: dictionary mapping the fingerprints to a RSA key in pem format""" - - assert raw is not None - - lines = raw.split('\n') - count = 0 - keys = {} - next_fingerprint = None - - while count < len(lines): - if lines[count].startswith('fingerprint'): - if next_fingerprint is not None: - raise ValueError("File has not the expected format") - else: - next_fingerprint = lines[count].split(" ")[1] - - elif lines[count] == 'dir-signing-key': - count += 1 - key = lines[count] + '\n' - count += 1 - while lines[count] != '-----END RSA PUBLIC KEY-----': - key += lines[count] + '\n' - count += 1 - key += '-----END RSA PUBLIC KEY-----' - keys[next_fingerprint] = key - next_fingerprint = None - - count += 1 - - return keys - - -def get_signing_keys_info(ip = None, path = "./tools/authority_signing_keys.json"): - """ - Get the information of the authority router keys and save it to a json file. - - - :param path: where we want to save the json - """ - if ip is None: - ip = random.choice(ips) - - - keys_dict = download_signing_keys(ip) - if keys_dict is None: - raise ValueError("Error occurred during download of the keys") - - return to_json(keys_dict, path) - -def get_raw_signing_keys(ip = None): - """ - Get the information of the authority router keys and save it to a json file. - - - :param path: where we want to save the json - """ - if ip is None: - ip = random.choice(ips) - - url = "http://{}/tor/keys/all".format(ip) - rq = requests.get(url) - - if rq.status_code == 200: - return rq.text - else: - return None - -def get_chutney_keys_info(saving_path="./tools/chutney_authority_signing_keys.json"): - """ - This function scrap the chutney's authority keys - :param saving_path: where we want to save the json - """ - #change to your chutney dir. - rootdir = "/home/vagrant/chutney/net/nodes" - keys = "" - for d in os.listdir(rootdir): - pattern = re.compile('\d*a') - if pattern.match(d) is not None: - subdir = rootdir + "/" + d - with open(subdir + "/keys/authority_certificate", "r") as file2: - keys += file2.read() - keys = parse_signing_keys(keys) - return to_json(keys, saving_path) - - -def to_json(keys_dict, path): - """ - This function saves a mapping from fingerprint to PEM format keys on disk as a json where each key is saved as: - fingerprint:{ - pem: key_pem //the key in pem format - modulus: modulus //the modulus of the key - exponent: exponent //the exponent of the key - } - - :param keys_dict: - :param path: - :return: - """ - info = {} - for fingerprint in keys_dict.keys(): - key_pem = keys_dict[fingerprint] - key = RSA.importKey(key_pem) - modulus = key.n - exponent = key.e - - sub_dict = { - "pem": key_pem, - "modulus": str(modulus), - "exponent": str(exponent) - } - - info[fingerprint] = sub_dict - - info_json = js.dumps(info) - with open(path, "w") as file: - file.write(info_json) - - print("{} keys have been saved to {}".format(len(keys_dict.keys()), path)) - - return info