Compare commits
47 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9d547d3af1 | ||
![]() |
c76a3fc3c9 | ||
![]() |
925c75e503 | ||
![]() |
00fcecd433 | ||
![]() |
9e083993f9 | ||
![]() |
b5ceecfbbe | ||
![]() |
dc064d7bbc | ||
![]() |
634a9381b6 | ||
![]() |
0aa9d29596 | ||
![]() |
d4774e5f48 | ||
![]() |
ea92df5139 | ||
![]() |
ebab97391b | ||
![]() |
05c0b208b2 | ||
![]() |
33b84b37fd | ||
![]() |
641c43e18f | ||
![]() |
ae02786a6d | ||
![]() |
bab594b946 | ||
![]() |
76ce876a7a | ||
![]() |
7c44e83cc7 | ||
![]() |
b6ed42d1b4 | ||
![]() |
36862ac93c | ||
![]() |
156496b844 | ||
![]() |
2d8f59cba5 | ||
![]() |
0ea5620a12 | ||
![]() |
a031e0c8d8 | ||
![]() |
288391fe7f | ||
![]() |
9a3975e701 | ||
![]() |
c90dab0c24 | ||
![]() |
c082625327 | ||
![]() |
aae39fb032 | ||
![]() |
559ff8d6a1 | ||
![]() |
7178a36457 | ||
![]() |
bb4f06c1ab | ||
![]() |
ed8830d6e1 | ||
![]() |
92e041c09b | ||
![]() |
719644d70d | ||
![]() |
d00032b4f5 | ||
![]() |
cf1ea06e17 | ||
![]() |
4f6f36d7e1 | ||
![]() |
5bde61e309 | ||
![]() |
400c385f2e | ||
![]() |
eb16fa5dfc | ||
![]() |
cd09f62554 | ||
![]() |
51d394a1dc | ||
![]() |
f46a33f961 | ||
![]() |
1f13b8ed33 | ||
![]() |
639fa37561 |
13
.gitignore
vendored
13
.gitignore
vendored
@@ -1,6 +1,15 @@
|
||||
i2pfirefox
|
||||
i2pfox
|
||||
ifox
|
||||
i2p-fox
|
||||
i2pfirefox.exe
|
||||
i2pfirefox-darwin
|
||||
i2pfirefox-variant
|
||||
i2pfirefox-variant.exe
|
||||
i2pfirefox-variant-darwin
|
||||
firefox/*
|
||||
i2p-zero/*
|
||||
*.tar.bz2
|
||||
i2pd.conf
|
||||
i2pd/
|
||||
i2pd.tar.gz
|
||||
tunnels.conf
|
||||
.i2cp.conf
|
||||
|
129
Makefile
129
Makefile
@@ -6,61 +6,104 @@ VERSION=0.73
|
||||
SNOW_VERSION=0.2.2
|
||||
UMAT_VERSION=1.25.2
|
||||
UBLO_VERSION=1.4.0
|
||||
LAUNCH_VERSION=$(VERSION).04
|
||||
NOSS_VERSION=11.0.23
|
||||
ZERO_VERSION=v1.16
|
||||
LAUNCH_VERSION=$(VERSION).092
|
||||
|
||||
build: setup assets.go
|
||||
go build
|
||||
GO_COMPILER_OPTS = -a -tags netgo -ldflags '-w -extldflags "-static"'
|
||||
|
||||
assets: clean setup assets.go
|
||||
build:
|
||||
go build $(GO_COMPILER_OPTS)
|
||||
|
||||
assets.go:
|
||||
go run -tags generate gen.go
|
||||
assets: fmt lib/assets.go
|
||||
|
||||
clean:
|
||||
rm -rf ifox i2pfirefox* assets.go i2pfox i2p-fox
|
||||
gen:
|
||||
go run $(GO_COMPILER_OPTS) -tags generate gen.go extensions.go
|
||||
|
||||
clean: fmt
|
||||
rm -f i2pfirefox*
|
||||
|
||||
fmt:
|
||||
gofmt -w -s *.go
|
||||
gofmt -w -s \
|
||||
lib/firefox.go \
|
||||
lib/pure.go \
|
||||
lib/pureextensions.go \
|
||||
lib/variant.go \
|
||||
lib/variantextensions.go
|
||||
|
||||
setup: i2ppb snowflake ublock umatrix
|
||||
|
||||
i2ppb: ifox/i2ppb@eyedeekay.github.io.xpi
|
||||
snowflake: ifox/snowflake@torproject.org.xpi
|
||||
ublock: ifox/uBlock0@raymondhill.net.xpi
|
||||
umatrix: ifox/uMatrix@raymondhill.net.xpi
|
||||
|
||||
ifox:
|
||||
mkdir -p ifox
|
||||
|
||||
ifox/i2ppb@eyedeekay.github.io.xpi: ifox
|
||||
wget -c -O ifox/i2ppb@eyedeekay.github.io.xpi https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/download/$(VERSION)/i2ppb@eyedeekay.github.io.xpi
|
||||
|
||||
ifox/snowflake@torproject.org.xpi: ifox/{b11bea1f-a888-4332-8d8a-cec2be7d24b9}.xpi
|
||||
|
||||
ifox/{b11bea1f-a888-4332-8d8a-cec2be7d24b9}.xpi: ifox
|
||||
wget -c -O 'ifox/{b11bea1f-a888-4332-8d8a-cec2be7d24b9}.xpi' https://addons.mozilla.org/firefox/downloads/file/3519836/snowflake-0.2.2-fx.xpi
|
||||
|
||||
ifox/uBlock0@raymondhill.net.xpi: ifox
|
||||
wget -c -O ifox/uBlock0@raymondhill.net.xpi https://addons.mozilla.org/firefox/downloads/file/3521827/ublock_origin-$(UBLO_VERSION)-an+fx.xpi
|
||||
|
||||
ifox/uMatrix@raymondhill.net.xpi: ifox
|
||||
wget -c -O ifox/uMatrix@raymondhill.net.xpi https://addons.mozilla.org/firefox/downloads/file/3396815/umatrix-$(UMAT_VERSION)-an+fx.xpi
|
||||
|
||||
sums: setup
|
||||
sum:
|
||||
sha256sum ifox/i2ppb@eyedeekay.github.io.xpi
|
||||
sha256sum 'ifox/{b11bea1f-a888-4332-8d8a-cec2be7d24b9}.xpi'
|
||||
sha256sum ifox/uBlock0@raymondhill.net.xpi
|
||||
sha256sum ifox/uMatrix@raymondhill.net.xpi
|
||||
#sha256sum 'ifox/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi'
|
||||
|
||||
all: setup assets.go
|
||||
GOOS=windows go build -o i2pfirefox.exe
|
||||
GOOS=darwin go build -o i2pfirefox-darwin
|
||||
GOOS=linux go build -o i2pfirefox
|
||||
all: pure variant
|
||||
|
||||
pure: fmt lib/assets.go windows osx linux
|
||||
|
||||
windows: fmt
|
||||
GOOS=windows go build $(GO_COMPILER_OPTS) -o i2pfirefox.exe
|
||||
|
||||
osx: fmt
|
||||
GOOS=darwin go build $(GO_COMPILER_OPTS) -o i2pfirefox-darwin
|
||||
|
||||
linux: fmt
|
||||
GOOS=linux go build $(GO_COMPILER_OPTS) -o i2pfirefox
|
||||
|
||||
variant: fmt assets.go vwindows vosx vlinux
|
||||
|
||||
vwindows: fmt
|
||||
GOOS=windows go build $(GO_COMPILER_OPTS) -tags variant -o i2pfirefox-variant.exe
|
||||
|
||||
vosx: fmt
|
||||
GOOS=darwin go build $(GO_COMPILER_OPTS) -tags variant -o i2pfirefox-variant-darwin
|
||||
|
||||
vlinux: fmt
|
||||
GOOS=linux go build $(GO_COMPILER_OPTS) -tags variant -o i2pfirefox-variant
|
||||
|
||||
sumwindows=`sha256sum i2pfirefox.exe`
|
||||
sumlinux=`sha256sum i2pfirefox`
|
||||
sumdarwin=`sha256sum i2pfirefox-darwin`
|
||||
sumvwindows=`sha256sum i2pfirefox-variant.exe`
|
||||
sumvlinux=`sha256sum i2pfirefox-variant`
|
||||
sumvdarwin=`sha256sum i2pfirefox-variant-darwin`
|
||||
|
||||
check:
|
||||
echo "$(sumwindows)"
|
||||
echo "$(sumlinux)"
|
||||
echo "$(sumdarwin)"
|
||||
echo "$(sumvwindows)"
|
||||
echo "$(sumvlinux)"
|
||||
echo "$(sumvdarwin)"
|
||||
|
||||
release:
|
||||
gothub release -p -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -n "Launchers" -d "A self-configuring launcher for mixed I2P and clearnet Browsing with Firefox"
|
||||
gothub upload -R -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -n "i2pfirefox.exe" -f "i2pfirefox.exe"
|
||||
gothub upload -R -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -n "i2pfirefox-darwin" -f "i2pfirefox-darwin"
|
||||
gothub upload -R -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -n "i2pfirefox" -f "i2pfirefox"
|
||||
|
||||
linux-release:
|
||||
gothub release -p -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -n "Launchers" -d "A self-configuring launcher for mixed I2P and clearnet Browsing with Firefox"; true
|
||||
gothub upload -R -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -n "i2pfirefox" -f "i2pfirefox"
|
||||
upload:
|
||||
gothub upload -R -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -l "$(sumwindows)" -n "i2pfirefox.exe" -f "i2pfirefox.exe"
|
||||
gothub upload -R -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -l "$(sumdarwin)" -n "i2pfirefox-darwin" -f "i2pfirefox-darwin"
|
||||
gothub upload -R -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -l "$(sumlinux)" -n "i2pfirefox" -f "i2pfirefox"
|
||||
|
||||
upload-variant:
|
||||
gothub upload -R -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -l "$(sumvwindows)" -n "i2pfirefox-variant.exe" -f "i2pfirefox-variant.exe"
|
||||
gothub upload -R -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -l "$(sumvdarwin)" -n "i2pfirefox-variant-darwin" -f "i2pfirefox-variant-darwin"
|
||||
gothub upload -R -u eyedeekay -r "i2pfirefox" -t $(LAUNCH_VERSION) -l "$(sumvlinux)" -n "i2pfirefox-variant" -f "i2pfirefox-variant"
|
||||
|
||||
upload-all: upload upload-variant
|
||||
|
||||
release-all: release upload-all
|
||||
|
||||
release-pure:
|
||||
make pure
|
||||
make release; true
|
||||
make upload
|
||||
|
||||
release-variant:
|
||||
make variant
|
||||
make release; true
|
||||
make upload-variant
|
||||
|
||||
clean-release: clean release-pure release-variant
|
||||
|
||||
|
66
README.md
66
README.md
@@ -1,7 +1,65 @@
|
||||
I2P Profile Configuring Launcher for Firefox, Multiplatform
|
||||
===========================================================
|
||||
|
||||
Configures a Firefox profile in the working directory with extensions and
|
||||
configuration settings for I2P. At this time, it is configured for mixed I2P
|
||||
and clearnet browsing via my browser plugin. In the near future, other plugins
|
||||
may be configured as well as additional settings in user.js
|
||||
Configures a Firefox profile for use with I2P Sites, I2P applications, and
|
||||
I2P configuration. Provides a bundled I2P Router and a pre-configured
|
||||
browser. Notably, it is completely compatible with any pre-installed router
|
||||
while also not requiring a pre-installed I2P router, which means that it
|
||||
can be used as a one-click introduction to I2P use for beginners while *also*
|
||||
being a convenient, automatic way to configure I2P Browsing for I2P users
|
||||
who have been around for years. It is a project to minimize I2P browsing
|
||||
misconfiguration and explore options to improve our response to various
|
||||
threat models, in a way similar to Tor Browser did but with the ability to
|
||||
fulfill I2P's specific needs.
|
||||
|
||||
If you're a beginner, who uses this and is interested in learning more about
|
||||
I2P, I advise you to install a fully-featured I2P router by following my
|
||||
detailed install guide here: https://github.com/eyedeekay/Install-Java-And-I2P-on-Windows.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
This is very experimental software right now. Use it at your own
|
||||
risk.
|
||||
|
||||
It should 'just work' if you download the executable from the releases page
|
||||
and double-click it, but expect some rough still, especially on Windows. I
|
||||
would advise you to check the sha256sum against the sha256sum in the release
|
||||
description.
|
||||
|
||||
```Bash
|
||||
# Linux
|
||||
wget -O i2pfirefox-darwin https://github.com/eyedeekay/i2pfirefox/releases/download/0.73.091/i2pfirefox
|
||||
|
||||
# Windows
|
||||
wget -O i2pfirefox-darwin https://github.com/eyedeekay/i2pfirefox/releases/download/0.73.091/i2pfirefox.exe
|
||||
|
||||
# OSX
|
||||
wget -O i2pfirefox-darwin https://github.com/eyedeekay/i2pfirefox/releases/download/0.73.091/i2pfirefox-darwin
|
||||
```
|
||||
|
||||
Go developers with at least go 1.14 installed can build it from source with:
|
||||
|
||||
```Go
|
||||
go get -u github.com/eyedeekay/i2pfirefox
|
||||
```
|
||||
|
||||
What things does it do?
|
||||
-----------------------
|
||||
|
||||
- It manages a Firefox profile, and a whole Firefox browser on Linux. It falls back to Chrome if Firefox is not
|
||||
available.
|
||||
- It makes sure an I2P router is ready to work for I2P browsing, including launching an embedded I2P Zero router if an I2P router is
|
||||
not available to start.
|
||||
- It installs browser extensions in Firefox.
|
||||
- It embeds its own HTTP Proxy for browsing inside I2P
|
||||
- Easily integrate Go and Webassembly based web applications as well enhance Java I2P apps
|
||||
|
||||
It *can eventually*
|
||||
-------------------
|
||||
|
||||
- Also browse Tor, use Tor as an outproxy
|
||||
- Embed web applications(Like webtorrent, webIRC), under human-readable domain-like aliases
|
||||
- Bring along TLS certificates for those domain-like aliases
|
||||
- Update itself via bittorrent
|
||||
|
||||
|
7
chromium.go
Normal file
7
chromium.go
Normal file
@@ -0,0 +1,7 @@
|
||||
package main
|
||||
|
||||
import "github.com/eyedeekay/I2P-Configuration-for-Chromium/lib"
|
||||
|
||||
func chromiumMain() {
|
||||
i2pchrome.ChromiumMain()
|
||||
}
|
9
extensions.go
Normal file
9
extensions.go
Normal file
@@ -0,0 +1,9 @@
|
||||
//+build generate
|
||||
|
||||
package main
|
||||
|
||||
var VERSION = "0.75"
|
||||
var SNOW_VERSION = "0.2.2"
|
||||
var UMAT_VERSION = "1.25.2"
|
||||
var UBLO_VERSION = "1.4.0"
|
||||
var NOSS_VERSION = "11.0.23"
|
7
firefox.go
Normal file
7
firefox.go
Normal file
@@ -0,0 +1,7 @@
|
||||
package main
|
||||
|
||||
import "github.com/eyedeekay/i2pfirefox/lib"
|
||||
|
||||
func firefoxMain() {
|
||||
i2pfirefox.FirefoxMain()
|
||||
}
|
237
gen.go
237
gen.go
@@ -2,10 +2,243 @@
|
||||
|
||||
package main
|
||||
|
||||
import "github.com/zserge/lorca"
|
||||
import (
|
||||
"crypto/sha256"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
//"os/exec"
|
||||
"time"
|
||||
|
||||
"github.com/zserge/lorca"
|
||||
)
|
||||
|
||||
var x = `<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity type="win32" name="Microsoft.VC140.CRT" version="1.0.0.0"></assemblyIdentity>
|
||||
</dependentAssembly>
|
||||
</dependency>`
|
||||
|
||||
var manifest = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns:asm.v3="urn:schemas-microsoft-com:asm.v3" xmlns="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0">
|
||||
<assemblyIdentity
|
||||
version="0.0.0.1"
|
||||
name="i2pfirefox.exe"
|
||||
type="win32"/>
|
||||
<description>I2P Browsing Bundle</description>
|
||||
</assembly>
|
||||
`
|
||||
|
||||
var pureExtensions = `// +build !variant
|
||||
|
||||
package main
|
||||
|
||||
var EXTENSIONS = []string{
|
||||
"i2ppb@eyedeekay.github.io.xpi",
|
||||
"uBlock0@raymondhill.net.xpi",
|
||||
"uMatrix@raymondhill.net.xpi",
|
||||
}
|
||||
var EXTENSIONHASHES = []string{
|
||||
`
|
||||
|
||||
var variantExtensions = `// +build variant
|
||||
|
||||
package main
|
||||
|
||||
var NOM = "variant"
|
||||
|
||||
var EXTENSIONS = []string{
|
||||
"i2ppb@eyedeekay.github.io.xpi",
|
||||
"{b11bea1f-a888-4332-8d8a-cec2be7d24b9}.xpi",
|
||||
"uBlock0@raymondhill.net.xpi",
|
||||
"uMatrix@raymondhill.net.xpi",
|
||||
}
|
||||
var EXTENSIONHASHES = []string{
|
||||
`
|
||||
|
||||
var i2ppbHash = ""
|
||||
var snowflakeHash = ""
|
||||
var ublockHash = ""
|
||||
var umatrixHash = ""
|
||||
|
||||
var i2ppb = []string{
|
||||
"i2ppb@eyedeekay.github.io.xpi",
|
||||
"https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/download/",
|
||||
VERSION,
|
||||
}
|
||||
var snowflake = []string{
|
||||
"{b11bea1f-a888-4332-8d8a-cec2be7d24b9}.xpi",
|
||||
"https://addons.mozilla.org/firefox/downloads/file/3519836/",
|
||||
SNOW_VERSION,
|
||||
"snowflake",
|
||||
}
|
||||
var noscript = []string{
|
||||
"{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi",
|
||||
"https://addons.mozilla.org/firefox/downloads/file/3534184/",
|
||||
NOSS_VERSION,
|
||||
"noscript_security_suite",
|
||||
}
|
||||
var umatrix = []string{
|
||||
"uMatrix@raymondhill.net.xpi",
|
||||
"https://addons.mozilla.org/firefox/downloads/file/3396815/",
|
||||
UMAT_VERSION,
|
||||
"umatrix",
|
||||
}
|
||||
var ublock = []string{
|
||||
"uBlock0@raymondhill.net.xpi",
|
||||
"https://addons.mozilla.org/firefox/downloads/file/3521827/",
|
||||
UBLO_VERSION,
|
||||
"ublock",
|
||||
}
|
||||
|
||||
func variantFile() error {
|
||||
value := variantExtensions
|
||||
value += "\t\"" + i2ppbHash + "\",\n"
|
||||
value += "\t\"" + snowflakeHash + "\",\n"
|
||||
value += "\t\"" + ublockHash + "\",\n"
|
||||
value += "\t\"" + umatrixHash + "\",\n"
|
||||
value += "}\n"
|
||||
return ioutil.WriteFile("variantextensions.go", []byte(value), 0644)
|
||||
}
|
||||
|
||||
func pureFile() error {
|
||||
value := pureExtensions
|
||||
value += "\t\"" + i2ppbHash + "\",\n"
|
||||
value += "\t\"" + ublockHash + "\",\n"
|
||||
value += "\t\"" + umatrixHash + "\",\n"
|
||||
value += "}\n"
|
||||
return ioutil.WriteFile("pureextensions.go", []byte(value), 0644)
|
||||
}
|
||||
|
||||
func sha256sum(path string) (string, error) {
|
||||
bytes, err := ioutil.ReadFile("ifox/" + path)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
sum := sha256.Sum256(bytes)
|
||||
var s []byte
|
||||
for _, c := range sum {
|
||||
s = append(s, c)
|
||||
}
|
||||
log.Println(fmt.Sprintf("%x", sum))
|
||||
return fmt.Sprintf("%x", sum), nil
|
||||
}
|
||||
|
||||
func fetch() error {
|
||||
if err := get(i2ppb); err != nil {
|
||||
return err
|
||||
}
|
||||
if tmp, err := sha256sum(i2ppb[0]); err != nil {
|
||||
return err
|
||||
} else {
|
||||
i2ppbHash = tmp
|
||||
}
|
||||
if err := get(snowflake); err != nil {
|
||||
return err
|
||||
}
|
||||
if tmp, err := sha256sum(snowflake[0]); err != nil {
|
||||
return err
|
||||
} else {
|
||||
snowflakeHash = tmp
|
||||
}
|
||||
/*
|
||||
// if err := get(noscript); err != nil {
|
||||
// return err
|
||||
// }
|
||||
// if tmp, err := sha256sum(noscript[0]); err != nil {
|
||||
// return err
|
||||
// }else{
|
||||
// i2ppbHash = tmp
|
||||
// }
|
||||
*/
|
||||
if err := get(umatrix); err != nil {
|
||||
return err
|
||||
}
|
||||
if tmp, err := sha256sum(umatrix[0]); err != nil {
|
||||
return err
|
||||
} else {
|
||||
umatrixHash = tmp
|
||||
}
|
||||
if err := get(ublock); err != nil {
|
||||
return err
|
||||
}
|
||||
if tmp, err := sha256sum(ublock[0]); err != nil {
|
||||
return err
|
||||
} else {
|
||||
ublockHash = tmp
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func determinate(path string) error {
|
||||
t := time.Date(1970, time.January, 1, 1, 0, 0, 0, time.UTC)
|
||||
if err := os.Chtimes("ifox/"+path, t, t); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func download(path string, url string) error {
|
||||
if _, err := os.Stat("ifox/" + path); os.IsNotExist(err) {
|
||||
os.MkdirAll("ifox", 0755)
|
||||
log.Println("fetching", path, "from", url)
|
||||
// Get the data
|
||||
resp, err := http.Get(url)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
// Create the file
|
||||
out, err := os.Create("ifox/" + path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer out.Close()
|
||||
// Write the body to file
|
||||
_, err = io.Copy(out, resp.Body)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func get(extension []string) error {
|
||||
if len(extension) == 3 {
|
||||
path := extension[1] + extension[2] + "/" + extension[0]
|
||||
err := download(extension[0], path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return determinate(extension[0])
|
||||
} else if len(extension) == 4 {
|
||||
path := extension[1] + extension[3] + extension[2] + "-an+fx.xpi"
|
||||
err := download(extension[0], path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return determinate(extension[0])
|
||||
}
|
||||
return fmt.Errorf("Error fetching extension for build.")
|
||||
}
|
||||
|
||||
func main() {
|
||||
//os.RemoveAll("ifox")
|
||||
//ioutil.WriteFile("i2pfirefox.manifest", []byte(manifest), 0644)
|
||||
//if err := exec.Command("rsrc", "-manifest", "i2pfirefox.manifest", "-o", "rsrc.syso").Run(); err != nil {
|
||||
//log.Fatal(err)
|
||||
//}
|
||||
if err := fetch(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := pureFile(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := variantFile(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
// You can also run "npm build" or webpack here, or compress assets, or
|
||||
// generate manifests, or do other preparations for your assets.
|
||||
lorca.Embed("main", "assets.go", "ifox/")
|
||||
lorca.Embed("i2pfirefox", "lib/assets.go", "ifox/")
|
||||
}
|
||||
|
16
go.mod
16
go.mod
@@ -3,7 +3,19 @@ module github.com/eyedeekay/i2pfirefox
|
||||
go 1.14
|
||||
|
||||
require (
|
||||
github.com/eyedeekay/checki2cp v0.0.12
|
||||
github.com/eyedeekay/go-fpw v0.0.01
|
||||
github.com/akavel/rsrc v0.9.0 // indirect
|
||||
github.com/eyedeekay/GingerShrew v0.0.0-20200702210346-bb2ed34c11fb
|
||||
github.com/eyedeekay/I2P-Configuration-for-Chromium v0.0.0-20200802063209-8973270c836e
|
||||
github.com/eyedeekay/checki2cp v0.0.17
|
||||
github.com/eyedeekay/go-ccw v0.0.0-20200403222455-d0e01222fd2a
|
||||
github.com/eyedeekay/go-fpw v0.0.0-20200512022837-c8b4dcdc74d4
|
||||
github.com/eyedeekay/httptunnel v0.0.0-20200116022455-631ab90f707d
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200804040541-f28536b381d0
|
||||
github.com/klauspost/compress v1.10.10 // indirect
|
||||
github.com/klauspost/pgzip v1.2.4 // indirect
|
||||
github.com/pierrec/lz4/v3 v3.3.2 // indirect
|
||||
github.com/zserge/lorca v0.1.9
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381 // indirect
|
||||
)
|
||||
|
||||
replace github.com/zserge/lorca => github.com/eyedeekay/lorca v0.1.9-0.20200403221704-ea2ffcadfc1b
|
||||
|
545
go.sum
545
go.sum
@@ -1,13 +1,558 @@
|
||||
bazil.org/fuse v0.0.0-20180421153158-65cc252bf669/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8=
|
||||
cloud.google.com/go v0.16.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||
code.cloudfoundry.org/bytefmt v0.0.0-20190710193110-1eb035ffe2b6/go.mod h1:wN/zk7mhREp/oviagqUXY3EwuHhWyOvAdsn5Y4CzOrc=
|
||||
crawshaw.io/littleboss v0.0.0-20190317185602-8957d0aedcce/go.mod h1:TIbCAHgttUfOKudw59Il7Z0XIlitzo228/mtwMe4vPM=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJx2zgh7AcNke4w=
|
||||
github.com/RoaringBitmap/roaring v0.4.17/go.mod h1:D3qVegWTmfCaX4Bl5CrBE9hfrSrrXIr8KVNvRsDi1NI=
|
||||
github.com/RoaringBitmap/roaring v0.4.18/go.mod h1:D3qVegWTmfCaX4Bl5CrBE9hfrSrrXIr8KVNvRsDi1NI=
|
||||
github.com/RoaringBitmap/roaring v0.4.21/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo=
|
||||
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
|
||||
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
|
||||
github.com/akavel/rsrc v0.9.0 h1:HwUDC0+tMFWqN4D5G+o5siGD4oVsC3jn6zM8ocjc3nY=
|
||||
github.com/akavel/rsrc v0.9.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
|
||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/alexflint/go-arg v1.1.0/go.mod h1:3Rj4baqzWaGGmZA2+bVTV8zQOZEjBQAPBnL5xLT+ftY=
|
||||
github.com/alexflint/go-arg v1.2.0/go.mod h1:3Rj4baqzWaGGmZA2+bVTV8zQOZEjBQAPBnL5xLT+ftY=
|
||||
github.com/alexflint/go-scalar v1.0.0/go.mod h1:GpHzbCOZXEKMEcygYQ5n/aa4Aq84zbxjy3MxYW0gjYw=
|
||||
github.com/anacrolix/dht v0.0.0-20180412060941-24cbf25b72a4/go.mod h1:hQfX2BrtuQsLQMYQwsypFAab/GvHg8qxwVi4OJdR1WI=
|
||||
github.com/anacrolix/dht/v2 v2.0.1/go.mod h1:GbTT8BaEtfqab/LPd5tY41f3GvYeii3mmDUK300Ycyo=
|
||||
github.com/anacrolix/dht/v2 v2.2.1-0.20191103020011-1dba080fb358/go.mod h1:d7ARx3WpELh9uOEEr0+8wvQeVTOkPse4UU6dKpv4q0E=
|
||||
github.com/anacrolix/dht/v2 v2.3.2-0.20200103043204-8dce00767ebd/go.mod h1:cgjKyErDnKS6Mej5D1fEqBKg3KwFF2kpFZJp3L6/fGI=
|
||||
github.com/anacrolix/dht/v2 v2.5.1-0.20200317023935-129f05e9b752/go.mod h1:7RLvyOjm+ZPA7vgFRP+1eRjFzrh27p/nF0VCk5LcjoU=
|
||||
github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c=
|
||||
github.com/anacrolix/envpprof v1.0.0/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c=
|
||||
github.com/anacrolix/envpprof v1.0.1/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4=
|
||||
github.com/anacrolix/envpprof v1.1.0/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4=
|
||||
github.com/anacrolix/go-libutp v0.0.0-20180522111405-6baeb806518d/go.mod h1:beQSaSxwH2d9Eeu5ijrEnHei5Qhk+J6cDm1QkWFru4E=
|
||||
github.com/anacrolix/go-libutp v1.0.2/go.mod h1:uIH0A72V++j0D1nnmTjjZUiH/ujPkFxYWkxQ02+7S0U=
|
||||
github.com/anacrolix/log v0.0.0-20180412014343-2323884b361d/go.mod h1:sf/7c2aTldL6sRQj/4UKyjgVZBu2+M2z9wf7MmwPiew=
|
||||
github.com/anacrolix/log v0.3.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
|
||||
github.com/anacrolix/log v0.3.1-0.20190913000754-831e4ffe0174/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
|
||||
github.com/anacrolix/log v0.3.1-0.20191001111012-13cede988bcd/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
|
||||
github.com/anacrolix/log v0.4.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
|
||||
github.com/anacrolix/log v0.5.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
|
||||
github.com/anacrolix/log v0.6.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
|
||||
github.com/anacrolix/log v0.7.0/go.mod h1:s5yBP/j046fm9odtUTbHOfDUq/zh1W8OkPpJtnX0oQI=
|
||||
github.com/anacrolix/missinggo v0.0.0-20180522035225-b4a5853e62ff/go.mod h1:b0p+7cn+rWMIphK1gDH2hrDuwGOcbB6V4VXeSsEfHVk=
|
||||
github.com/anacrolix/missinggo v0.0.0-20180725070939-60ef2fbf63df/go.mod h1:kwGiTUTZ0+p4vAz3VbAI5a30t2YbvemcmspjKwrAz5s=
|
||||
github.com/anacrolix/missinggo v0.2.1-0.20190310234110-9fbdc9f242a8/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
|
||||
github.com/anacrolix/missinggo v1.1.0/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
|
||||
github.com/anacrolix/missinggo v1.1.2-0.20190815015349-b888af804467/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
|
||||
github.com/anacrolix/missinggo v1.2.1/go.mod h1:J5cMhif8jPmFoC3+Uvob3OXXNIhOUikzMt+uUjeM21Y=
|
||||
github.com/anacrolix/missinggo/perf v1.0.0/go.mod h1:ljAFWkBuzkO12MQclXzZrosP5urunoLS0Cbvb4V0uMQ=
|
||||
github.com/anacrolix/missinggo/v2 v2.2.0/go.mod h1:o0jgJoYOyaoYQ4E2ZMISVa9c88BbUBVQQW4QeRkNCGY=
|
||||
github.com/anacrolix/missinggo/v2 v2.2.1-0.20191103010835-12360f38ced0/go.mod h1:ZzG3/cc3t+5zcYWAgYrJW0MBsSwNwOkTlNquBbP51Bc=
|
||||
github.com/anacrolix/missinggo/v2 v2.3.0/go.mod h1:ZzG3/cc3t+5zcYWAgYrJW0MBsSwNwOkTlNquBbP51Bc=
|
||||
github.com/anacrolix/missinggo/v2 v2.3.1/go.mod h1:3XNH0OEmyMUZuvXmYdl+FDfXd0vvSZhvOLy8CFx8tLg=
|
||||
github.com/anacrolix/missinggo/v2 v2.4.1-0.20200227072623-f02f6484f997/go.mod h1:KY+ij+mWvwGuqSuecLjjPv5LFw5ICUc1UvRems3VAZE=
|
||||
github.com/anacrolix/mmsg v0.0.0-20180515031531-a4a3ba1fc8bb/go.mod h1:x2/ErsYUmT77kezS63+wzZp8E3byYB0gzirM/WMBLfw=
|
||||
github.com/anacrolix/mmsg v1.0.0/go.mod h1:x8kRaJY/dCrY9Al0PEcj1mb/uFHwP6GCJ9fLl4thEPc=
|
||||
github.com/anacrolix/multiless v0.0.0-20191223025854-070b7994e841/go.mod h1:TrCLEZfIDbMVfLoQt5tOoiBS/uq4y8+ojuEVVvTNPX4=
|
||||
github.com/anacrolix/stm v0.1.0/go.mod h1:ZKz7e7ERWvP0KgL7WXfRjBXHNRhlVRlbBQecqFtPq+A=
|
||||
github.com/anacrolix/stm v0.1.1-0.20191106051447-e749ba3531cf/go.mod h1:zoVQRvSiGjGoTmbM0vSLIiaKjWtNPeTvXUSdJQA4hsg=
|
||||
github.com/anacrolix/stm v0.2.0/go.mod h1:zoVQRvSiGjGoTmbM0vSLIiaKjWtNPeTvXUSdJQA4hsg=
|
||||
github.com/anacrolix/sync v0.0.0-20171108081538-eee974e4f8c1/go.mod h1:+u91KiUuf0lyILI6x3n/XrW7iFROCZCG+TjgK8nW52w=
|
||||
github.com/anacrolix/sync v0.0.0-20180611022320-3c4cb11f5a01/go.mod h1:+u91KiUuf0lyILI6x3n/XrW7iFROCZCG+TjgK8nW52w=
|
||||
github.com/anacrolix/sync v0.0.0-20180808010631-44578de4e778/go.mod h1:s735Etp3joe/voe2sdaXLcqDdJSay1O0OPnM0ystjqk=
|
||||
github.com/anacrolix/sync v0.2.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DCOj/I0g=
|
||||
github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw=
|
||||
github.com/anacrolix/tagflag v0.0.0-20180605133421-f477c8c2f14c/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw=
|
||||
github.com/anacrolix/tagflag v0.0.0-20180803105420-3a8ff5428f76/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw=
|
||||
github.com/anacrolix/tagflag v1.0.0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw=
|
||||
github.com/anacrolix/tagflag v1.0.1/go.mod h1:gb0fiMQ02qU1djCSqaxGmruMvZGrMwSReidMB0zjdxo=
|
||||
github.com/anacrolix/torrent v0.0.0-20180622074351-fefeef4ee9eb/go.mod h1:3vcFVxgOASslNXHdivT8spyMRBanMCenHRpe0u5vpBs=
|
||||
github.com/anacrolix/torrent v1.7.1/go.mod h1:uvOcdpOjjrAq3uMP/u1Ide35f6MJ/o8kMnFG8LV3y6g=
|
||||
github.com/anacrolix/torrent v1.9.0/go.mod h1:jJJ6lsd2LD1eLHkUwFOhy7I0FcLYH0tHKw2K7ZYMHCs=
|
||||
github.com/anacrolix/torrent v1.11.0/go.mod h1:FwBai7SyOFlflvfEOaM88ag/jjcBWxTOqD6dVU/lKKA=
|
||||
github.com/anacrolix/torrent v1.15.2/go.mod h1:sJtcAZtlGaZLo7wCXT/EZV+hATsq0Bg6pVhhzACY0E0=
|
||||
github.com/anacrolix/upnp v0.1.1/go.mod h1:LXsbsp5h+WGN7YR+0A7iVXm5BL1LYryDev1zuJMWYQo=
|
||||
github.com/anacrolix/utp v0.0.0-20180219060659-9e0e1d1d0572/go.mod h1:MDwc+vsGEq7RMw6lr2GKOEqjWny5hO5OZXRVNaBJ2Dk=
|
||||
github.com/andybalholm/brotli v0.0.0-20190621154722-5f990b63d2d6/go.mod h1:+lx6/Aqd1kLJ1GQfkvOnaZ1WGmLpMpbprPuIOOZX30U=
|
||||
github.com/andybalholm/brotli v1.0.0 h1:7UCwP93aiSfvWpapti8g88vVVGp2qqtGyePsSuDafo4=
|
||||
github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
|
||||
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
|
||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
|
||||
github.com/benbjohnson/immutable v0.2.0/go.mod h1:uc6OHo6PN2++n98KHLxW8ef4W42ylHiQSENghE1ezxI=
|
||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
|
||||
github.com/boreq/friendlyhash v0.0.0-20190522010448-1ca64b3ca69e h1:2q8XPjAYhXX8H71AoAPdgBrCUA3HPhC4ax8XHrTsY6I=
|
||||
github.com/boreq/friendlyhash v0.0.0-20190522010448-1ca64b3ca69e/go.mod h1:y80zLCg0QS5u3fJKeF2rwpezcyZuCpZpbFcWv6Pn98w=
|
||||
github.com/bradfitz/gomemcache v0.0.0-20170208213004-1952afaa557d/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60=
|
||||
github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo=
|
||||
github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo=
|
||||
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8/go.mod h1:spo1JLcs67NmW1aVLEgtA8Yy1elc+X8y5SRW1sFW4Og=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/d5/tengo v1.24.3/go.mod h1:VhLq8Q2QFhCIJO3NhvM934qOThykMqJi9y9Siqd1ocQ=
|
||||
github.com/danfragoso/thdwb v0.0.0-20191106005607-18cfeb88e782/go.mod h1:IXu355OpbfEz78+tgu81vte3YA/MEWQKBu/dXod4NM0=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
||||
github.com/dsnet/compress v0.0.1 h1:PlZu0n3Tuv04TzpfPbrnI0HW/YwodEXDS+oPKahKF0Q=
|
||||
github.com/dsnet/compress v0.0.1/go.mod h1:Aw8dCMJ7RioblQeTqt88akK31OvO8Dhf5JflhBbQEHo=
|
||||
github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780/go.mod h1:Lj+Z9rebOhdfkVLjJ8T6VcRQv3SXugXy999NBtR9aFY=
|
||||
github.com/dustin/go-humanize v0.0.0-20180421182945-02af3965c54e/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
|
||||
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
|
||||
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
|
||||
github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
|
||||
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
|
||||
github.com/elliotchance/orderedmap v1.2.0/go.mod h1:8hdSl6jmveQw8ScByd3AaNHNk51RhbTazdqtTty+NFw=
|
||||
github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw=
|
||||
github.com/eyedeekay/GingerShrew v0.0.0-20200702210346-bb2ed34c11fb h1:tUfxSHBVabVBpX0Rcupybxr7pBfG2E+p3N7EX4p9sc0=
|
||||
github.com/eyedeekay/GingerShrew v0.0.0-20200702210346-bb2ed34c11fb/go.mod h1:PY7znvZ1ZF1QG5/4j9u769EX49l49z2rCdE0o4z8fMw=
|
||||
github.com/eyedeekay/I2P-Configuration-for-Chromium v0.0.0-20200802060059-8ed0bfff2fe9 h1:TPJAkbZebNUAoSLhhGKOI1u8y3R7f1yeLvcwgSohp/M=
|
||||
github.com/eyedeekay/I2P-Configuration-for-Chromium v0.0.0-20200802060059-8ed0bfff2fe9/go.mod h1:XchhjbeZKhEszN64SHavfaLGP2lFhWeO0ipH4cyBq5o=
|
||||
github.com/eyedeekay/I2P-Configuration-for-Chromium v0.0.0-20200802063209-8973270c836e h1:oEoiXkil4L/ahtVlljDwz5LXbE1qBsJqvC3/utNrKe4=
|
||||
github.com/eyedeekay/I2P-Configuration-for-Chromium v0.0.0-20200802063209-8973270c836e/go.mod h1:XchhjbeZKhEszN64SHavfaLGP2lFhWeO0ipH4cyBq5o=
|
||||
github.com/eyedeekay/checki2cp v0.0.0-20200403213308-750ce7e6d81f h1:rpkO9pKHoNxoUAH2dY9gtIRt+vDCS3t2VUq5V7ZalXA=
|
||||
github.com/eyedeekay/checki2cp v0.0.0-20200403213308-750ce7e6d81f/go.mod h1:ZilEsKkjp1K0e9qfUUdrHnz8teb1LU70L8JQzNSQmO8=
|
||||
github.com/eyedeekay/checki2cp v0.0.12 h1:ytAlEx0w928H6pE4IPDVuRsRQjJ30wUjhR0sLIGlOH0=
|
||||
github.com/eyedeekay/checki2cp v0.0.12/go.mod h1:ZilEsKkjp1K0e9qfUUdrHnz8teb1LU70L8JQzNSQmO8=
|
||||
github.com/eyedeekay/checki2cp v0.0.13 h1:lSOtS7LzInJIPrMbBkoLhlQHloRFMx0u5nFaQl2pDrI=
|
||||
github.com/eyedeekay/checki2cp v0.0.13/go.mod h1:3dCAyHmQ0WRd6xsBpL/W62gTcXU4P3kWfigrjeDZpAQ=
|
||||
github.com/eyedeekay/checki2cp v0.0.15 h1:Vlwp9opuQJSgp139VVrLkKXRwLYYrXiBkqed35ZbqzY=
|
||||
github.com/eyedeekay/checki2cp v0.0.15/go.mod h1:3dCAyHmQ0WRd6xsBpL/W62gTcXU4P3kWfigrjeDZpAQ=
|
||||
github.com/eyedeekay/checki2cp v0.0.17 h1:md/CZMugwVrdkppReKoRmrkpELE1qE8gIlSFD8EuYlk=
|
||||
github.com/eyedeekay/checki2cp v0.0.17/go.mod h1:kdHq1LqZxi2qarfyospSHrh4Aju5SydX+2AzlJKhSJM=
|
||||
github.com/eyedeekay/eephttpd v0.0.0-20190903000420-52f5a8485a4e/go.mod h1:wFPQsNBnY95LkuujFEZARo7slafRwoF0D97FFHBoZro=
|
||||
github.com/eyedeekay/go-ccw v0.0.0-20200403222455-d0e01222fd2a h1:zPI9ngyid7Wr92EHYanSOee6z0rWSlyKPt1nnOmZCu4=
|
||||
github.com/eyedeekay/go-ccw v0.0.0-20200403222455-d0e01222fd2a/go.mod h1:k3EtNXTNE8UHnYqq/Ny7QiVPZIFtdiCuckEPT0qkR14=
|
||||
github.com/eyedeekay/go-fpw v0.0.0-20200403201858-3d24733073ff h1:nmfiBxYeXYnUUB7sYoez7VT7mB99hFeHeZtXE69ot9A=
|
||||
github.com/eyedeekay/go-fpw v0.0.0-20200403201858-3d24733073ff/go.mod h1:F4d0cXDXTK6ZsAnxmATan3VyDV4k9P9ciCGRKt/fVik=
|
||||
github.com/eyedeekay/go-fpw v0.0.0-20200404005604-8ccf7dc81580 h1:Eo210WM4t+DLJ5rBmj1fnUAuCEM614zIvVUO7RIeTRw=
|
||||
github.com/eyedeekay/go-fpw v0.0.0-20200404005604-8ccf7dc81580/go.mod h1:RyCx7KuH+5ryvIpUF7SpxiChLtjeuPbVFCIzf8shIFc=
|
||||
github.com/eyedeekay/go-fpw v0.0.0-20200512000155-818dd5b71e7a h1:Hiv9cEmUjhUbHNzF9l8XyyYGskXFIGs0KJvcxGrzQik=
|
||||
github.com/eyedeekay/go-fpw v0.0.0-20200512000155-818dd5b71e7a/go.mod h1:RyCx7KuH+5ryvIpUF7SpxiChLtjeuPbVFCIzf8shIFc=
|
||||
github.com/eyedeekay/go-fpw v0.0.0-20200512022837-c8b4dcdc74d4 h1:fZggjpJu/JsYTCn1BjT1SICuEcab8Cyvz3BwI9aDIUw=
|
||||
github.com/eyedeekay/go-fpw v0.0.0-20200512022837-c8b4dcdc74d4/go.mod h1:RyCx7KuH+5ryvIpUF7SpxiChLtjeuPbVFCIzf8shIFc=
|
||||
github.com/eyedeekay/go-i2cp v0.0.0-20190716135428-6d41bed718b0 h1:rnn9OlD/3+tATEZNuiMR1C84O5CX8bZL2qqgttprKrw=
|
||||
github.com/eyedeekay/go-i2cp v0.0.0-20190716135428-6d41bed718b0/go.mod h1:+P0fIhkqIYjo7exMJRTlSteRMbRyHbiBiKw+YlPWk+c=
|
||||
github.com/eyedeekay/go-i2pcontrol v0.0.0-20200110011336-510cca77e350/go.mod h1:bhIQsVpbNNXMtcoZ9UF4hLQleOjaCgKGXiRRhNc8TOA=
|
||||
github.com/eyedeekay/goSam v0.1.1-0.20190814204230-d4c9b8c57dd6 h1:+5eM/MhjGMWCGQCCqn9pb1bmvoRewweWhOaE6fA7kZ0=
|
||||
github.com/eyedeekay/goSam v0.1.1-0.20190814204230-d4c9b8c57dd6/go.mod h1:kGTfZrncJ4CwMX3d1qA6bcMJTOcuTbOqgWg7WrFNAQ0=
|
||||
github.com/eyedeekay/httptunnel v0.0.0-20190831065052-9eab288b8a82/go.mod h1:VeXBZz04xj4eUGAcD8ygn2WFxY/dAvRbSNYMWoDzMxc=
|
||||
github.com/eyedeekay/httptunnel v0.0.0-20190831071439-0ff3d5f798fb/go.mod h1:SnCAM9CskhwSFkzDfh+H5yNTbvhcTeKekkuX0ejCcSk=
|
||||
github.com/eyedeekay/httptunnel v0.0.0-20200116022455-631ab90f707d h1:ggsfRJcekoacUcTR2tqeBaIi/b/Zug4+nuff+m5nheU=
|
||||
github.com/eyedeekay/httptunnel v0.0.0-20200116022455-631ab90f707d/go.mod h1:zLeRR3eJaYINzWRjbnXc84VuopURbgjIbw6HQ/Q1qgM=
|
||||
github.com/eyedeekay/lorca v0.1.9-0.20200403221704-ea2ffcadfc1b h1:OsqPoSiY5lf1trNgwEZoIrcSDT1hGV51bPbAkZ6Dzps=
|
||||
github.com/eyedeekay/lorca v0.1.9-0.20200403221704-ea2ffcadfc1b/go.mod h1:bVmnIbIRlOcoV285KIRSe4bUABKi7R7384Ycuum6e4A=
|
||||
github.com/eyedeekay/outproxy v0.0.0-20190908174238-22bd71d43733/go.mod h1:jUBr6XRbiuUBe/sSbVdO5upU4mp8842bdpXDsQY54Rc=
|
||||
github.com/eyedeekay/portcheck v0.0.0-20190218044454-bb8718669680/go.mod h1:8VVIH19/CU2VFJB8P6e58Mo9nvDqqKgllS0oQY3F83U=
|
||||
github.com/eyedeekay/ramp v0.0.0-20190429201811-305b382042ab h1:EfTRHxGSbiaEyxNzvKRBWVIDw3mD8xXGxj4gvwFzY7Q=
|
||||
github.com/eyedeekay/ramp v0.0.0-20190429201811-305b382042ab/go.mod h1:h7mvUAMgZ/rtRDUOkvKTK+8LnDMeUhJSoa5EPdB51fc=
|
||||
github.com/eyedeekay/sam-forwarder v0.0.0-20190814201550-7c0d7cb0d56c/go.mod h1:Ptrm1d4a3KC5/cN264Gn6OntYOmcuJ8Pkyd7+hA01gw=
|
||||
github.com/eyedeekay/sam-forwarder v0.0.0-20190831071254-d67c0c0e311f/go.mod h1:u4K8aGwSIuMSQ/OzsH7zkshnEvCQgUupfexLXZIjsDI=
|
||||
github.com/eyedeekay/sam-forwarder v0.0.0-20190905212604-029317222e15/go.mod h1:kFP6jkqHUTGGW/nMUZLnRonkPWE9fyEc8/eSU1CqTFg=
|
||||
github.com/eyedeekay/sam-forwarder v0.0.0-20190908210105-71ca8cd65fda h1:Mpi42j17o2vXGZNmTAkv5pwXzVFKWkkAviSAjSF4xPs=
|
||||
github.com/eyedeekay/sam-forwarder v0.0.0-20190908210105-71ca8cd65fda/go.mod h1:crhQdi30uVnJ5Xn3JAPoMxvyWg6yo5LOfH4JZ+VIaxA=
|
||||
github.com/eyedeekay/sam3 v0.0.0-20190613034117-99ad6522ebe3/go.mod h1:Vrxh+71E3HVYqyRlT5Jg+E26sSuu8UNTLB4p8qyT408=
|
||||
github.com/eyedeekay/sam3 v0.0.0-20190730185140-f8d54526ea25/go.mod h1:Y3igFVzN4ybqkkpfUWULGhw7WRp8lieq0ORXbLBbcZM=
|
||||
github.com/eyedeekay/sam3 v0.32.2 h1:xODDY5nBVg0oK7KaYk7ofkXFoHPsmI1umhSv1TZlS7s=
|
||||
github.com/eyedeekay/sam3 v0.32.2/go.mod h1:Y3igFVzN4ybqkkpfUWULGhw7WRp8lieq0ORXbLBbcZM=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200729053534-6fdefaab976b h1:o3AMSGxze29dkXAs7bjFTNg/wO1SR29aH9+DLg1Q3Ys=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200729142507-09254e0fcd4a h1:DP3ZHtWFnq15iGkQ/NAskdxTwyUNhU/TQYGof2FytiQ=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:wSZgKbze5193l1gvlEMGmC2T9BSmfK/ZFx+w7GpPScE=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200729232301-a53636329828 h1:ID7+uAh7hFjYhsnENytlvQToWBQjh0L7rzQn/4Iv7OQ=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200729232301-a53636329828/go.mod h1:mFi4fRolEjIWy0BYMrlrBzoXsUM8NbwwGXNQnbtAh6Q=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200801013618-d7f06aa455d4 h1:fsSYcXnqPTvP8mRGDaxDF1U3fzRwiiegbYyh56TnuFQ=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200801013618-d7f06aa455d4/go.mod h1:mFi4fRolEjIWy0BYMrlrBzoXsUM8NbwwGXNQnbtAh6Q=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200801044052-02d339203f7c h1:ilkSjOMPWMjjeYuCLOeGq3a7pVlSzcZndNC6XjAOp2g=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200801044052-02d339203f7c/go.mod h1:mFi4fRolEjIWy0BYMrlrBzoXsUM8NbwwGXNQnbtAh6Q=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200801171255-e52955df6c06 h1:RMPN939tthCSPX339wS+nLYwZu/CFfJ6ZQ0seFnThbg=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200801171255-e52955df6c06/go.mod h1:J4pHO/M5C5c5kD2nwCHuJc06i0mkOjSwIurnj7fVIPY=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200802020224-4ecb0983fab2 h1:34h7sCyBIqL5TbxPJy7LGUrpKUb8s/Db3gJBfd49eJk=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200802020224-4ecb0983fab2/go.mod h1:J4pHO/M5C5c5kD2nwCHuJc06i0mkOjSwIurnj7fVIPY=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200802032933-4aae53e45577 h1:aVjc4ct7XsrPXy4RGCntjg+Mp+DucCU6VjTh48W84GQ=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200802032933-4aae53e45577/go.mod h1:J4pHO/M5C5c5kD2nwCHuJc06i0mkOjSwIurnj7fVIPY=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200802035941-c66d7eb01340 h1:PaMh/zhViPFXIeJ4sMkRPPBDCuIEGeUaHO0eLNosT98=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200802035941-c66d7eb01340/go.mod h1:J4pHO/M5C5c5kD2nwCHuJc06i0mkOjSwIurnj7fVIPY=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200802064839-ff08f711c3f9 h1:ROVKA3xcRXkmgHaNoq/6xJgSZYSo8bzkXF3q1K6j9Wg=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200802064839-ff08f711c3f9/go.mod h1:J4pHO/M5C5c5kD2nwCHuJc06i0mkOjSwIurnj7fVIPY=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200802224726-ade60064998c h1:vne+x6MOOLls+wxN23VaJ3qgF8Qq3vdebK4OkpOlxIM=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200802224726-ade60064998c/go.mod h1:J4pHO/M5C5c5kD2nwCHuJc06i0mkOjSwIurnj7fVIPY=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200803002433-d08cdaba1810 h1:09MAije/deFIkcARbMKbAIG3IH2puZjLG5OV45y+F+I=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200803002433-d08cdaba1810/go.mod h1:J4pHO/M5C5c5kD2nwCHuJc06i0mkOjSwIurnj7fVIPY=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200804040541-f28536b381d0 h1:mP6OZ7FpPbkG6u7RqDxiDcLkRRGivsno2JWAgiwucfU=
|
||||
github.com/eyedeekay/zerobundle v0.0.0-20200804040541-f28536b381d0/go.mod h1:J4pHO/M5C5c5kD2nwCHuJc06i0mkOjSwIurnj7fVIPY=
|
||||
github.com/eyedeekay/zerobundle/parts v0.0.0-20200729142507-09254e0fcd4a h1:kS2ZOf/ZiHnV+JL/V5yxr4I9qDLSvKXBjmHUm/xCPRM=
|
||||
github.com/eyedeekay/zerobundle/parts/aa v0.0.0-20200729142507-09254e0fcd4a h1:SCBVcTjxLI1idb/Idgf3WJN9FdKKnnauoJCd8QRfMVE=
|
||||
github.com/eyedeekay/zerobundle/parts/aa v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:tVoCDPZqyc9Q5NKmU7m9jMHCFLuDhurZPsnnzv89pGE=
|
||||
github.com/eyedeekay/zerobundle/parts/aa v0.0.0-20200729225350-f5800a7c3c3f h1:82utnE2TpNxCQRNWclzglpdNvug0MHZxvHjzLTbnRdA=
|
||||
github.com/eyedeekay/zerobundle/parts/aa v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:tVoCDPZqyc9Q5NKmU7m9jMHCFLuDhurZPsnnzv89pGE=
|
||||
github.com/eyedeekay/zerobundle/parts/aa v0.0.0-20200801165455-baeb0e58fc5a h1:YB1v+KkQusKKe7UjXIV2vI87okJXmBC7UHjnY6BkL04=
|
||||
github.com/eyedeekay/zerobundle/parts/aa v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:tVoCDPZqyc9Q5NKmU7m9jMHCFLuDhurZPsnnzv89pGE=
|
||||
github.com/eyedeekay/zerobundle/parts/ab v0.0.0-20200729142507-09254e0fcd4a h1:1DgXjWc4ZXTnC4WGsHY8HAA8QdCrB67+/nZGXTQbIr4=
|
||||
github.com/eyedeekay/zerobundle/parts/ab v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:NKlWiAbDc3kJWP/G6OhSrqslLlslDCdv7nKoU0GTyxo=
|
||||
github.com/eyedeekay/zerobundle/parts/ab v0.0.0-20200729225350-f5800a7c3c3f h1:swREl2GOW6U1U+RNJfOXWeiKV29yFXKmGCJoKtfRAvU=
|
||||
github.com/eyedeekay/zerobundle/parts/ab v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:NKlWiAbDc3kJWP/G6OhSrqslLlslDCdv7nKoU0GTyxo=
|
||||
github.com/eyedeekay/zerobundle/parts/ab v0.0.0-20200801165455-baeb0e58fc5a h1:tRCO7vRlUEBN/RxmUomwAlKQtZ6gtRoDMDyP2fravKI=
|
||||
github.com/eyedeekay/zerobundle/parts/ab v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:aCWmPFXSHktdhMDHyIxJovmz23UfaQteyh9p7NEMdqk=
|
||||
github.com/eyedeekay/zerobundle/parts/ac v0.0.0-20200729142507-09254e0fcd4a h1:rwMHSafcl+31LFgF3ISBWsDwdpn3bjBir2Ro+61c7ow=
|
||||
github.com/eyedeekay/zerobundle/parts/ac v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:AuRFy8afdHaiMGYwzYHe5y/zMhR4jAmlVp1pkHnpqK8=
|
||||
github.com/eyedeekay/zerobundle/parts/ac v0.0.0-20200729225350-f5800a7c3c3f h1:cEHhuCYuI0RUPpCnCL5J6TEJ1HFE/+xZUr9Npu/fn3E=
|
||||
github.com/eyedeekay/zerobundle/parts/ac v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:AuRFy8afdHaiMGYwzYHe5y/zMhR4jAmlVp1pkHnpqK8=
|
||||
github.com/eyedeekay/zerobundle/parts/ac v0.0.0-20200801165455-baeb0e58fc5a h1:I9cfKFBva/vELjboNMnziXs3yBWAP4efOvpk/2BxRq0=
|
||||
github.com/eyedeekay/zerobundle/parts/ac v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:E8Mmkic2QrlcHaV75Hjne8f88lDpLNa/x96WEGcdHvA=
|
||||
github.com/eyedeekay/zerobundle/parts/ad v0.0.0-20200729142507-09254e0fcd4a h1:DcnJHPJytYcO3wJuNJsg8mHRh1n1EMbxCNfbdavs0Dc=
|
||||
github.com/eyedeekay/zerobundle/parts/ad v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:62U7cYEvzk7Ifxw/Ar5v4IuJhIk0tmmtBXzfQ9wvYZk=
|
||||
github.com/eyedeekay/zerobundle/parts/ad v0.0.0-20200729225350-f5800a7c3c3f h1:CF7HMHXP5DOnrXjX4qvUAA1L4duZXiebkUzXls+rGzA=
|
||||
github.com/eyedeekay/zerobundle/parts/ad v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:62U7cYEvzk7Ifxw/Ar5v4IuJhIk0tmmtBXzfQ9wvYZk=
|
||||
github.com/eyedeekay/zerobundle/parts/ad v0.0.0-20200801165455-baeb0e58fc5a h1:IKvjrgUqsAFv53gIC8XsanV+tO9m0DbH/qq3yJHmkYU=
|
||||
github.com/eyedeekay/zerobundle/parts/ad v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:arirCFNWdkg3MySrwkP6kn6iVe2CckYxe8G+hnJRt1E=
|
||||
github.com/eyedeekay/zerobundle/parts/ae v0.0.0-20200729142507-09254e0fcd4a h1:bdiHNCtlUCTTxRD2dx7Na/Rihl4KFZ3pSKKcAFNvQlU=
|
||||
github.com/eyedeekay/zerobundle/parts/ae v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:MKLWNSl5M4lATW82deXgDyqtLXwkef8qLgQi32iUios=
|
||||
github.com/eyedeekay/zerobundle/parts/ae v0.0.0-20200729225350-f5800a7c3c3f h1:pcG8Ij6x7p2Ipohwx4xhs5s6cOIIjKyW9F0x6HZXJVE=
|
||||
github.com/eyedeekay/zerobundle/parts/ae v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:MKLWNSl5M4lATW82deXgDyqtLXwkef8qLgQi32iUios=
|
||||
github.com/eyedeekay/zerobundle/parts/ae v0.0.0-20200801165455-baeb0e58fc5a h1:03H21zmL6cvAn5SON3+pq1Xn15zpnaYWONItSWO8Arg=
|
||||
github.com/eyedeekay/zerobundle/parts/ae v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:5SG9xD0lwrshQ9vddGUMRhhOg5ckglhFWnuRGCX2oA0=
|
||||
github.com/eyedeekay/zerobundle/parts/af v0.0.0-20200729142507-09254e0fcd4a h1:ISq9LKIkHsiJBko6QwXlxAO8Fzsxdphip/yWQ0X+FMQ=
|
||||
github.com/eyedeekay/zerobundle/parts/af v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:LpDs3WuJeg+W2ovaaaV/zki2+qUw1u8kivAkBrYNn3Y=
|
||||
github.com/eyedeekay/zerobundle/parts/af v0.0.0-20200729225350-f5800a7c3c3f h1:A0BCGzmYiI7j+0xnznR/oBUd9tlPBxzHbEoC5s6Xz8o=
|
||||
github.com/eyedeekay/zerobundle/parts/af v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:LpDs3WuJeg+W2ovaaaV/zki2+qUw1u8kivAkBrYNn3Y=
|
||||
github.com/eyedeekay/zerobundle/parts/af v0.0.0-20200801165455-baeb0e58fc5a h1:Tkgc2GkvJxTzt89jeN9vXFRCgYhLgj3l+QFMnXbLiHE=
|
||||
github.com/eyedeekay/zerobundle/parts/af v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:qdc81OrWUMbHJh5p6AwnHm/byMu5F37TZ77BL2UuJco=
|
||||
github.com/eyedeekay/zerobundle/parts/ag v0.0.0-20200729142507-09254e0fcd4a h1:g3WOL17K3aWxOaAKp9eg3tgRN54P2YyBpdWFRSfIdDQ=
|
||||
github.com/eyedeekay/zerobundle/parts/ag v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:F0f897NnR0kBLV6zRIEHp7lhHYzBo2QNG6RhSsm0j8g=
|
||||
github.com/eyedeekay/zerobundle/parts/ag v0.0.0-20200729225350-f5800a7c3c3f h1:HY02d4xi0ikUNOrbbIR+ZL7EgGvIqQHfOztCFa+l2PY=
|
||||
github.com/eyedeekay/zerobundle/parts/ag v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:F0f897NnR0kBLV6zRIEHp7lhHYzBo2QNG6RhSsm0j8g=
|
||||
github.com/eyedeekay/zerobundle/parts/ag v0.0.0-20200801165455-baeb0e58fc5a h1:r7vfoe6N3yuZHH0FO2jA8aUAj7C4b9QupBDMCPIFqgw=
|
||||
github.com/eyedeekay/zerobundle/parts/ag v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:jwWe41RVcOY1vPhdC+k6h5WGI6Zy4AjiyZgioOoglGo=
|
||||
github.com/eyedeekay/zerobundle/parts/ah v0.0.0-20200729142507-09254e0fcd4a h1:Fa6fCH5UJCBEZEvCHNM7mAVH1/XkUkEeD/TyYbeRcyA=
|
||||
github.com/eyedeekay/zerobundle/parts/ah v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:LQQiw6dlpSNb9vQFLHqOWUSGsNuPulqet/gLzgntWKk=
|
||||
github.com/eyedeekay/zerobundle/parts/ah v0.0.0-20200729225350-f5800a7c3c3f h1:iTjw3qHSXRs4s6v21eKw5TFBn/jamxivITVUnld/TWQ=
|
||||
github.com/eyedeekay/zerobundle/parts/ah v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:LQQiw6dlpSNb9vQFLHqOWUSGsNuPulqet/gLzgntWKk=
|
||||
github.com/eyedeekay/zerobundle/parts/ah v0.0.0-20200801165455-baeb0e58fc5a h1:Jfu5QObHI0BLhKi9Hudu1MTjfLuccyC6a8WtrVSh1N4=
|
||||
github.com/eyedeekay/zerobundle/parts/ah v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:dlc63NsWSrDaqa85np61lWEiobbpP/4qhtm/4S4gnZQ=
|
||||
github.com/eyedeekay/zerobundle/parts/ai v0.0.0-20200729142507-09254e0fcd4a h1:T4Cm1uKjtDU4Fly9vaPvOY4sf6VVkaERQhvyALnVnBw=
|
||||
github.com/eyedeekay/zerobundle/parts/ai v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:HD5UclEN5RPgVQ2Ba/RdNWhtQ1d12Gx72CKksezEdhc=
|
||||
github.com/eyedeekay/zerobundle/parts/ai v0.0.0-20200729225350-f5800a7c3c3f h1:OiWtQwfYKwrXJRXdaug/KZ49wKRpfCWQA6trHpo57Oo=
|
||||
github.com/eyedeekay/zerobundle/parts/ai v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:HD5UclEN5RPgVQ2Ba/RdNWhtQ1d12Gx72CKksezEdhc=
|
||||
github.com/eyedeekay/zerobundle/parts/ai v0.0.0-20200801165455-baeb0e58fc5a h1:LP1ZIS5T4drVnKunx/jTsS5ehaEqs0YW6ypJKPfKaVQ=
|
||||
github.com/eyedeekay/zerobundle/parts/ai v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:UWWZyb/ESoEsNduVilUxMj4DJ2kn8ldJL5E2gy2IPV8=
|
||||
github.com/eyedeekay/zerobundle/parts/aj v0.0.0-20200729142507-09254e0fcd4a h1:AITYqhm/b9RCxeCvRWFx8lu2Ds8FeII63hbNF7JvnIM=
|
||||
github.com/eyedeekay/zerobundle/parts/aj v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:oX+vQpNrt5jVdJwdFD+kVMDNfYpRNCB8E8me6xOrqos=
|
||||
github.com/eyedeekay/zerobundle/parts/aj v0.0.0-20200729225350-f5800a7c3c3f h1:jkwvPJhQg1SBE65G4D905Cjvl6uRIkM0UhowGzRo+LE=
|
||||
github.com/eyedeekay/zerobundle/parts/aj v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:oX+vQpNrt5jVdJwdFD+kVMDNfYpRNCB8E8me6xOrqos=
|
||||
github.com/eyedeekay/zerobundle/parts/aj v0.0.0-20200801165455-baeb0e58fc5a h1:sQq48QEVd4AJ0jdA+fpPG/7eSn6G3LK9v53YOA01omg=
|
||||
github.com/eyedeekay/zerobundle/parts/aj v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:PTleyTXt8iqQtqp00m7DojOP/O9CD4B0ep5zTHJxiCc=
|
||||
github.com/eyedeekay/zerobundle/parts/ak v0.0.0-20200729142507-09254e0fcd4a h1:+aFtyD7v1mfjtuqdBDwPV0wA31GSB3l+BSkYL3l1xZk=
|
||||
github.com/eyedeekay/zerobundle/parts/ak v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:uUp6ltyxP5+9AD4A+ythEBdkglMRkhgGV8SM+eXZqTw=
|
||||
github.com/eyedeekay/zerobundle/parts/ak v0.0.0-20200729225350-f5800a7c3c3f h1:jqfyCNiR8ZsYrtzBMrJeNRPzxshV2NRo2a1KX5SQ52A=
|
||||
github.com/eyedeekay/zerobundle/parts/ak v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:uUp6ltyxP5+9AD4A+ythEBdkglMRkhgGV8SM+eXZqTw=
|
||||
github.com/eyedeekay/zerobundle/parts/ak v0.0.0-20200801165455-baeb0e58fc5a h1:7cERcjt6rArcqrL2I36LN/wYF/gWFH3r8pCOL/Ytmxk=
|
||||
github.com/eyedeekay/zerobundle/parts/ak v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:3hUQinkmOKFMCBur/VjKTMSsFU9Q5R6vpDttyLpXDTA=
|
||||
github.com/eyedeekay/zerobundle/parts/al v0.0.0-20200729142507-09254e0fcd4a h1:h+8wlDouDmrZW2NZwRy5UaHAewkZps4KYpJs5bZljo0=
|
||||
github.com/eyedeekay/zerobundle/parts/al v0.0.0-20200729142507-09254e0fcd4a/go.mod h1:lZDRMeWc47sspGEW0wOGtUqEh+WWA2z5GGTCEFgddVI=
|
||||
github.com/eyedeekay/zerobundle/parts/al v0.0.0-20200729225350-f5800a7c3c3f h1:b1OxCdkxZq3altokLgnTImPGwUwIwdASUlkKGRoYAe4=
|
||||
github.com/eyedeekay/zerobundle/parts/al v0.0.0-20200729225350-f5800a7c3c3f/go.mod h1:lZDRMeWc47sspGEW0wOGtUqEh+WWA2z5GGTCEFgddVI=
|
||||
github.com/eyedeekay/zerobundle/parts/al v0.0.0-20200801165455-baeb0e58fc5a h1:Un1Yacddsyd8zF8ZhOn4BltbjqLcXIfhBc6xo6lHcpU=
|
||||
github.com/eyedeekay/zerobundle/parts/al v0.0.0-20200801165455-baeb0e58fc5a/go.mod h1:9FNKW4YG3sCm/UyMa4ZpYUJFA4K1xdMXN0bl7xwt5HE=
|
||||
github.com/frankban/quicktest v1.4.0 h1:rCSCih1FnSWJEel/eub9wclBSqpF2F/PuvxUWGWnbO8=
|
||||
github.com/frankban/quicktest v1.4.0/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ=
|
||||
github.com/fsnotify/fsnotify v1.4.3-0.20170329110642-4da3e2cfbabc/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/garyburd/redigo v1.1.1-0.20170914051019-70e1b1943d4f/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
|
||||
github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
|
||||
github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
|
||||
github.com/glycerine/go-unsnap-stream v0.0.0-20190901134440-81cf024a9e0a/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
|
||||
github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
|
||||
github.com/glycerine/goconvey v0.0.0-20190315024820-982ee783a72e/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
|
||||
github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
|
||||
github.com/go-gl/gl v0.0.0-20181026044259-55b76b7df9d2/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
|
||||
github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
|
||||
github.com/go-gl/glfw v0.0.0-20181014061658-691ee1b84c51/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||
github.com/go-gl/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
||||
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
|
||||
github.com/go-stack/stack v1.6.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
|
||||
github.com/golang/gddo v0.0.0-20190419222130-af0f2af80721/go.mod h1:xEhNfoBDX1hzLm2Nf80qUvZ2sVwoMZ8d6IE2SrsQfh4=
|
||||
github.com/golang/gddo v0.0.0-20200324184333-3c2cc9a6329d/go.mod h1:sam69Hju0uq+5uvLJUMDlsKlQ21Vrs1Kd/1YFPNYdOU=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/lint v0.0.0-20170918230701-e5d664eb928e/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=
|
||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
||||
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/go-cmp v0.1.1-0.20171103154506-982329095285/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
|
||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||
github.com/gopherjs/gopherjs v0.0.0-20190309154008-847fc94819f9/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||
github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
|
||||
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||
github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd/go.mod h1:qkLSc0A5EXSP6B04TrN4oQoxqFI7A8XvoXSlJi8cwk8=
|
||||
github.com/gosuri/uilive v0.0.3/go.mod h1:qkLSc0A5EXSP6B04TrN4oQoxqFI7A8XvoXSlJi8cwk8=
|
||||
github.com/gosuri/uiprogress v0.0.0-20170224063937-d0567a9d84a1/go.mod h1:C1RTYn4Sc7iEyf6j8ft5dyoZ4212h8G1ol9QQluh5+0=
|
||||
github.com/gosuri/uiprogress v0.0.1/go.mod h1:C1RTYn4Sc7iEyf6j8ft5dyoZ4212h8G1ol9QQluh5+0=
|
||||
github.com/gregjones/httpcache v0.0.0-20170920190843-316c5e0ff04e/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
||||
github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69 h1:7xsUJsB2NrdcttQPa7JLEaGzvdbk7KvfrjgHZXOQRo0=
|
||||
github.com/gtank/cryptopasta v0.0.0-20170601214702-1f550f6f2f69/go.mod h1:YLEMZOtU+AZ7dhN9T/IpGhXVGly2bvkJQ+zxj3WeVQo=
|
||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||
github.com/hashicorp/hcl v0.0.0-20170914154624-68e816d1c783/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
|
||||
github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4=
|
||||
github.com/huandu/xstrings v1.2.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
|
||||
github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
|
||||
github.com/inconshreveable/log15 v0.0.0-20170622235902-74a0988b5f80/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o=
|
||||
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||
github.com/jpillora/go-tcp-proxy v1.0.0/go.mod h1:dDLgFeNeCec5CsLCmJlat+bb/oNDHc3d90G+anWRcBQ=
|
||||
github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
||||
github.com/justinas/nosurf v0.0.0-20190416172904-05988550ea18/go.mod h1:Aucr5I5chr4OCuuVB4LTuHVrKHBuyRSo7vM2hqrcb7E=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
||||
github.com/klauspost/compress v1.9.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
||||
github.com/klauspost/compress v1.10.5 h1:7q6vHIqubShURwQz8cQK6yIe/xC3IF0Vm7TGfqjewrc=
|
||||
github.com/klauspost/compress v1.10.5/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||
github.com/klauspost/compress v1.10.10 h1:a/y8CglcM7gLGYmlbP/stPE5sR3hbhFRUjCBfd/0B3I=
|
||||
github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
|
||||
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||
github.com/klauspost/pgzip v1.2.1/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
||||
github.com/klauspost/pgzip v1.2.3 h1:Ce2to9wvs/cuJ2b86/CKQoTYr9VHfpanYosZ0UBJqdw=
|
||||
github.com/klauspost/pgzip v1.2.3/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
||||
github.com/klauspost/pgzip v1.2.4 h1:TQ7CNpYKovDOmqzRHKxJh0BeaBI7UdQZYc6p7pMQh1A=
|
||||
github.com/klauspost/pgzip v1.2.4/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
|
||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
|
||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/lukechampine/stm v0.0.0-20191022212748-05486c32d236/go.mod h1:wTLsd5FC9rts7GkMpsPGk64CIuea+03yaLAp19Jmlg8=
|
||||
github.com/magiconair/properties v1.7.4-0.20170902060319-8d7837e64d3c/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/majestrate/i2p-tools v0.0.0-20170507194519-afc8e46afa95/go.mod h1:e/TZ1O6X9t0qitnKc3xvHq8VXDpm/FmYuFf21epEkUc=
|
||||
github.com/mattn/go-colorable v0.0.10-0.20170816031813-ad5389df28cd/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||
github.com/mattn/go-isatty v0.0.2/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||
github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||
github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
|
||||
github.com/mattn/go-sqlite3 v1.7.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/mattn/go-sqlite3 v1.13.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/mattn/go-sqlite3 v2.0.2+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||
github.com/mholt/archiver v3.1.1+incompatible h1:1dCVxuqs0dJseYEhi5pl7MYPH9zDa1wBi7mF09cbNkU=
|
||||
github.com/mholt/archiver v3.1.1+incompatible/go.mod h1:Dh2dOXnSdiLxRiPoVfIr/fI1TwETms9B8CTWfeh7ROU=
|
||||
github.com/mholt/archiver/v3 v3.3.0 h1:vWjhY8SQp5yzM9P6OJ/eZEkmi3UAbRrxCq48MxjAzig=
|
||||
github.com/mholt/archiver/v3 v3.3.0/go.mod h1:YnQtqsp+94Rwd0D/rk5cnLrxusUBUXg+08Ebtr1Mqao=
|
||||
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw=
|
||||
github.com/mitchellh/mapstructure v0.0.0-20170523030023-d0303fe80992/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||
github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg=
|
||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||
github.com/mwitkow/go-http-dialer v0.0.0-20161116154839-378f744fb2b8 h1:BhQQWYKJwXPtAhm12d4gQU4LKS9Yov22yOrDc2QA7ho=
|
||||
github.com/mwitkow/go-http-dialer v0.0.0-20161116154839-378f744fb2b8/go.mod h1:ntWhh7pzdiiRKBMxUB5iG+Q2gmZBxGxpX1KyK6N8kX8=
|
||||
github.com/nwaples/rardecode v1.0.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
|
||||
github.com/nwaples/rardecode v1.1.0 h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ=
|
||||
github.com/nwaples/rardecode v1.1.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
|
||||
github.com/pelletier/go-toml v1.0.1-0.20170904195809-1d6b12b7cb29/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||
github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 h1:JhzVVoYvbOACxoUmOs6V/G4D5nPVUW73rKvXxP4XUJc=
|
||||
github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE=
|
||||
github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
|
||||
github.com/pierrec/cmdflag v0.0.2/go.mod h1:a3zKGZ3cdQUfxjd0RGMLZr8xI3nvpJOB+m6o/1X5BmU=
|
||||
github.com/pierrec/lz4 v1.0.1 h1:w6GMGWSsCI04fTM8wQRdnW74MuJISakuUU0onU0TYB4=
|
||||
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
|
||||
github.com/pierrec/lz4 v2.5.2+incompatible h1:WCjObylUIOlKy/+7Abdn34TLIkXiA4UWUMhxq9m9ZXI=
|
||||
github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
|
||||
github.com/pierrec/lz4/v3 v3.3.2 h1:QTUOCbMNDbK4PYtkuHyOBd28C0UhPBw3T4OH4WpFDik=
|
||||
github.com/pierrec/lz4/v3 v3.3.2/go.mod h1:280XNCGS8jAcG++AHdd6SeWnzyJ1w9oow2vbORyey8Q=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
||||
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
|
||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
||||
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
|
||||
github.com/schollz/progressbar/v2 v2.13.2/go.mod h1:6YZjqdthH6SCZKv2rqGryrxPtfmRB/DWZxSMfCXPyD8=
|
||||
github.com/sger/go-hashdir v0.0.1 h1:ii/IIGYNJCpvSqTV63LbfASPpQqazRRS9ErvmBAUNw0=
|
||||
github.com/sger/go-hashdir v0.0.1/go.mod h1:LmCpMSJQKVSNBt2rFKz/upjHTGfwNxn5MAmIAUd4qXg=
|
||||
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 h1:bUGsEnyNbVPw06Bs80sCeARAlK8lhwqGyi6UT8ymuGk=
|
||||
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
|
||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||
github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||
github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
|
||||
github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff/go.mod h1:KSQcGKpxUMHk3nbYzs/tIBAM2iDooCn0BmttHOJEbLs=
|
||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
github.com/spf13/afero v0.0.0-20170901052352-ee1bd8ee15a1/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||
github.com/spf13/cast v1.1.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg=
|
||||
github.com/spf13/jwalterweatherman v0.0.0-20170901151539-12bd96e66386/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||
github.com/spf13/pflag v1.0.1-0.20170901120850-7aff26db30c1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/spf13/viper v1.0.0/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/syncthing/syncthing v0.14.48-rc.4/go.mod h1:nw3siZwHPA6M8iSfjDCWQ402eqvEIasMQOE8nFOxy7M=
|
||||
github.com/tfriedel6/canvas v0.9.2/go.mod h1:O1YsCm9agdCl48M82l/1tUszUh1nR5zfpLcHxM5D7Cw=
|
||||
github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
|
||||
github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
|
||||
github.com/tinylib/msgp v1.1.1/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
|
||||
github.com/ulikunitz/xz v0.5.6/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8=
|
||||
github.com/ulikunitz/xz v0.5.7 h1:YvTNdFzX6+W5m9msiYg/zpkSURPPtOlzbqYjrFn7Yt4=
|
||||
github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||
github.com/veandco/go-sdl2 v0.3.3/go.mod h1:FB+kTpX9YTE+urhYiClnRzpOXbiWgaU3+5F2AB78DPg=
|
||||
github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
||||
github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
||||
github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
||||
github.com/willf/bloom v0.0.0-20170505221640-54e3b963ee16/go.mod h1:MmAltL9pDMNTrvUkxdg0k0q5I0suxmuwp3KbyrZLOZ8=
|
||||
github.com/willf/bloom v2.0.3+incompatible/go.mod h1:MmAltL9pDMNTrvUkxdg0k0q5I0suxmuwp3KbyrZLOZ8=
|
||||
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo=
|
||||
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos=
|
||||
github.com/ybbus/jsonrpc v2.1.2+incompatible/go.mod h1:XJrh1eMSzdIYFbM08flv0wp5G35eRniyeGut1z+LSiE=
|
||||
github.com/zieckey/goini v0.0.0-20180118150432-0da17d361d26 h1:E0lEWrifmR0ACbGf5PLji1XbW6rtIXLHCXO/YOqi0AE=
|
||||
github.com/zieckey/goini v0.0.0-20180118150432-0da17d361d26/go.mod h1:TQpdgg7I9+PFIkatlx/dnZyZb4iZyCUx1HJj4rXi3+E=
|
||||
github.com/zserge/lorca v0.1.8/go.mod h1:gTrVdXKyWxNhc8aUb1Uu3s0mY343arR1T6jUtxmBxR8=
|
||||
github.com/zserge/lorca v0.1.9 h1:vbDdkqdp2/rmeg8GlyCewY2X8Z+b0s7BqWyIQL/gakc=
|
||||
github.com/zserge/lorca v0.1.9/go.mod h1:bVmnIbIRlOcoV285KIRSe4bUABKi7R7384Ycuum6e4A=
|
||||
github.com/zserge/webview v0.0.0-20190123072648-16c93bcaeaeb/go.mod h1:a1CV8KR4Dd1eP2g+mEijGOp+HKczwdKHWyx0aPHKvo4=
|
||||
gitlab.com/golang-commonmark/html v0.0.0-20180917080848-cfaf75183c4a/go.mod h1:JT4uoTz0tfPoyVH88GZoWDNm5NHJI2VbUW+eyPClueI=
|
||||
gitlab.com/golang-commonmark/linkify v0.0.0-20180917065525-c22b7bdb1179/go.mod h1:Gn+LZmCrhPECMD3SOKlE+BOHwhOYD9j7WT9NUtkCrC8=
|
||||
gitlab.com/golang-commonmark/markdown v0.0.0-20181102083822-772775880e1f/go.mod h1:SIHlEr9462fpIfTrVWf3GqQDxnA65Vm3BMMsUtuA6W0=
|
||||
gitlab.com/golang-commonmark/mdurl v0.0.0-20180912090424-e5bce34c34f2/go.mod h1:wQk4rLkWrdOPjUAtqJRJ10hIlseLSVYWP95PLrjDF9s=
|
||||
gitlab.com/golang-commonmark/puny v0.0.0-20180912090636-2cd490539afe/go.mod h1:P9LSM1KVzrIstFgUaveuwiAm8PK5VTB3yJEU8kqlbrU=
|
||||
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||
go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
|
||||
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
|
||||
go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
|
||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472 h1:Gv7RPwsi3eZ2Fgewe3CBsuOebPwO27PoXzRpJPsvSSM=
|
||||
golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/exp v0.0.0-20181106170214-d68db9428509/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/image v0.0.0-20181109002202-aa35264064ba/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/mobile v0.0.0-20181026062114-a27dd33d354d/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||
golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190318221613-d196dffd7c2b/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20191125084936-ffdde1057850/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0 h1:MsuvTghUPjX762sGLnGsxC3HM0B5r83wEtYcYR8/vRs=
|
||||
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/oauth2 v0.0.0-20170912212905-13449ad91cb2/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/sync v0.0.0-20170517211232-f52d1811a629/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190830142957-1e83adbbebd0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190910064555-bbd175535a8b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191105231009-c1f44814a5cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191126131656-8a8471f7e56d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/time v0.0.0-20170424234030-8be79e1e0910/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190830223141-573d9926052a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/api v0.0.0-20170921000349-586095a6e407/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
|
||||
google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||
google.golang.org/genproto v0.0.0-20170918111702-1e559d0a00ee/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
google.golang.org/grpc v1.2.1-0.20170921194603-d4b75ebd4f9f/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
|
||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
|
168
httptunnel.go
Normal file
168
httptunnel.go
Normal file
@@ -0,0 +1,168 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/eyedeekay/httptunnel"
|
||||
"github.com/eyedeekay/httptunnel/multiproxy"
|
||||
"github.com/eyedeekay/zerobundle"
|
||||
|
||||
"context"
|
||||
"flag"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
var i2cpConf = `i2cp.tcp.host=127.0.0.1
|
||||
i2cp.tcp.port=7654
|
||||
`
|
||||
|
||||
var (
|
||||
tunnelName = flag.String("service-name", "sam-browser-proxy", "Name of the service(can be anything)")
|
||||
aggressiveIsolation = flag.Bool("mode-aggressive", false, "Create a new client for every single eepSite, rather than making use of contextual identities")
|
||||
controlPortString = flag.String("control-addr", "127.0.0.1:7951", ":port of the SAM bridge")
|
||||
proxyPortString = flag.String("proxy-addr", "127.0.0.1:4444", ":port of the SAM bridge")
|
||||
samHostString = flag.String("bridge-host", "127.0.0.1", "host: of the SAM bridge")
|
||||
samPortString = flag.String("bridge-port", "7656", ":port of the SAM bridge")
|
||||
watchProfiles = flag.String("watch-profiles", "~/.mozilla/.firefox.profile.i2p.default/user.js,~/.mozilla/.firefox.profile.i2p.debug/user.js", "Monitor and control these Firefox profiles")
|
||||
destfile = flag.String("dest-file", "invalid.tunkey", "Use a long-term destination key")
|
||||
debugConnection = flag.Bool("conn-debug", false, "Print connection debug info")
|
||||
inboundTunnelLength = flag.Int("in-tun-length", 2, "Tunnel Length(default 3)")
|
||||
outboundTunnelLength = flag.Int("out-tun-length", 2, "Tunnel Length(default 3)")
|
||||
inboundTunnels = flag.Int("in-tunnels", 2, "Inbound Tunnel Count(default 2)")
|
||||
outboundTunnels = flag.Int("out-tunnels", 2, "Outbound Tunnel Count(default 2)")
|
||||
inboundBackups = flag.Int("in-backups", 1, "Inbound Backup Count(default 1)")
|
||||
outboundBackups = flag.Int("out-backups", 1, "Inbound Backup Count(default 1)")
|
||||
inboundVariance = flag.Int("in-variance", 0, "Inbound Backup Count(default 0)")
|
||||
outboundVariance = flag.Int("out-variance", 0, "Inbound Backup Count(default 0)")
|
||||
dontPublishLease = flag.Bool("no-publish", true, "Don't publish the leaseset(Client mode)")
|
||||
encryptLease = flag.Bool("encrypt-lease", false, "Encrypt the leaseset(default false, inert)")
|
||||
reduceIdle = flag.Bool("reduce-idle", false, "Reduce tunnels on extended idle time")
|
||||
useCompression = flag.Bool("use-compression", true, "Enable gzip compression")
|
||||
reduceIdleTime = flag.Int("reduce-idle-time", 2000000, "Reduce tunnels after time(Ms)")
|
||||
reduceIdleQuantity = flag.Int("reduce-idle-tunnels", 1, "Reduce tunnels to this level")
|
||||
// runCommand = flag.String("run-command", "", "Execute command using the *_PROXY environment variables")
|
||||
// runArguments = flag.String("run-arguments", "", "Pass arguments to run-command")
|
||||
suppressLifetime = flag.Bool("suppress-lifetime-output", true, "Suppress \"Tunnel lifetime\" output")
|
||||
)
|
||||
|
||||
func WriteI2CPConf() error {
|
||||
dir, err := zerobundle.UnpackZeroDir()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
os.Setenv("I2CP_HOME", dir)
|
||||
os.Setenv("GO_I2CP_CONF", "/.i2cp.conf")
|
||||
home := os.Getenv("I2CP_HOME")
|
||||
conf := os.Getenv("GO_I2CP_CONF")
|
||||
if err := ioutil.WriteFile(filepath.Join(home, conf), []byte(i2cpConf), 0644); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func proxyMain(ctx context.Context) {
|
||||
profiles := strings.Split(*watchProfiles, ",")
|
||||
|
||||
srv := &http.Server{
|
||||
ReadTimeout: 600 * time.Second,
|
||||
WriteTimeout: 10 * time.Second,
|
||||
Addr: *proxyPortString,
|
||||
}
|
||||
var err error
|
||||
srv.Handler, err = i2pbrowserproxy.NewHttpProxy(
|
||||
i2pbrowserproxy.SetHost(*samHostString),
|
||||
i2pbrowserproxy.SetPort(*samPortString),
|
||||
i2pbrowserproxy.SetProxyAddr(*proxyPortString),
|
||||
i2pbrowserproxy.SetControlAddr(*controlPortString),
|
||||
i2pbrowserproxy.SetDebug(*debugConnection),
|
||||
i2pbrowserproxy.SetInLength(uint(*inboundTunnelLength)),
|
||||
i2pbrowserproxy.SetOutLength(uint(*outboundTunnelLength)),
|
||||
i2pbrowserproxy.SetInQuantity(uint(*inboundTunnels)),
|
||||
i2pbrowserproxy.SetOutQuantity(uint(*outboundTunnels)),
|
||||
i2pbrowserproxy.SetInBackups(uint(*inboundBackups)),
|
||||
i2pbrowserproxy.SetOutBackups(uint(*outboundBackups)),
|
||||
i2pbrowserproxy.SetInVariance(*inboundVariance),
|
||||
i2pbrowserproxy.SetOutVariance(*outboundVariance),
|
||||
i2pbrowserproxy.SetUnpublished(*dontPublishLease),
|
||||
i2pbrowserproxy.SetReduceIdle(*reduceIdle),
|
||||
i2pbrowserproxy.SetCompression(*useCompression),
|
||||
i2pbrowserproxy.SetReduceIdleTime(uint(*reduceIdleTime)),
|
||||
i2pbrowserproxy.SetReduceIdleQuantity(uint(*reduceIdleQuantity)),
|
||||
i2pbrowserproxy.SetKeysPath(*destfile),
|
||||
i2pbrowserproxy.SetProxyMode(*aggressiveIsolation),
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
ctrlsrv := &http.Server{
|
||||
ReadHeaderTimeout: 600 * time.Second,
|
||||
WriteTimeout: 600 * time.Second,
|
||||
Addr: *controlPortString,
|
||||
}
|
||||
ctrlsrv.Handler, err = i2phttpproxy.NewSAMHTTPController(profiles, srv)
|
||||
|
||||
c := make(chan os.Signal, 1)
|
||||
signal.Notify(c, os.Interrupt)
|
||||
|
||||
go func() {
|
||||
for sig := range c {
|
||||
if sig == os.Interrupt {
|
||||
srv.Handler.(*i2pbrowserproxy.SAMMultiProxy).Close()
|
||||
srv.Shutdown(ctx)
|
||||
ctrlsrv.Shutdown(ctx)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
cln, err := net.Listen("tcp4", *controlPortString)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
go func() {
|
||||
log.Println("Starting control server on", cln.Addr())
|
||||
if err := ctrlsrv.Serve(cln); err != nil {
|
||||
if err == http.ErrServerClosed {
|
||||
return
|
||||
}
|
||||
log.Fatal("Serve:", err)
|
||||
}
|
||||
log.Println("Stopping control server on", cln.Addr())
|
||||
}()
|
||||
|
||||
ln, err := net.Listen("tcp4", *proxyPortString)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
go func() {
|
||||
log.Println("Starting proxy server on", ln.Addr())
|
||||
if err := srv.Serve(ln); err != nil {
|
||||
if err == http.ErrServerClosed {
|
||||
return
|
||||
}
|
||||
log.Fatal("Serve:", err)
|
||||
}
|
||||
log.Println("Stopping proxy server on", ln.Addr())
|
||||
}()
|
||||
|
||||
go counter()
|
||||
|
||||
<-ctx.Done()
|
||||
}
|
||||
|
||||
func counter() {
|
||||
var x int
|
||||
for {
|
||||
if !*suppressLifetime {
|
||||
log.Println("Identity is", x, "minute(s) old")
|
||||
time.Sleep(1 * time.Minute)
|
||||
x++
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
130
lib/firefox.go
Normal file
130
lib/firefox.go
Normal file
@@ -0,0 +1,130 @@
|
||||
package i2pfirefox
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"path/filepath"
|
||||
"syscall"
|
||||
|
||||
. "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func UserFind() string {
|
||||
if os.Geteuid() == 0 {
|
||||
log.Fatal("Do not run this application as root!")
|
||||
}
|
||||
if un, err := os.UserHomeDir(); err == nil {
|
||||
os.MkdirAll(filepath.Join(un, "i2p"), 0755)
|
||||
os.MkdirAll(filepath.Join(un, "i2p", "opt"), 0755)
|
||||
os.MkdirAll(filepath.Join(un, "i2p", "firefox-profiles", NOM), 0755)
|
||||
os.MkdirAll(filepath.Join(un, "i2p", "rhizome"), 0755)
|
||||
return un
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
var UserDir = filepath.Join(UserFind(), "i2p", "firefox-profiles", NOM)
|
||||
var GingerDir = filepath.Join(UserFind(), "i2p", "rhizome")
|
||||
|
||||
func WriteExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(UserDir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(UserDir, val.Name()), "ignored")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(UserDir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
}
|
||||
|
||||
func WriteProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(UserDir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(UserDir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(UserDir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = WriteExtension(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
}
|
||||
|
||||
func FirefoxMain() {
|
||||
firstrun := WriteProfile(FS)
|
||||
prefs := filepath.Join(UserDir, "/user.js")
|
||||
if _, err := os.Stat(prefs); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(prefs, []byte(PREFS), 0644); err == nil {
|
||||
log.Println("wrote", prefs)
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
if firstrun {
|
||||
FIREFOX, ERROR := SecureExtendedFirefox(UserDir, false, EXTENSIONS, EXTENSIONHASHES, ARGS...)
|
||||
if ERROR != nil {
|
||||
log.Fatal(ERROR)
|
||||
}
|
||||
defer FIREFOX.Close()
|
||||
<-FIREFOX.Done()
|
||||
} else {
|
||||
FIREFOX, ERROR := BasicFirefox(UserDir, false, ARGS...)
|
||||
if ERROR != nil {
|
||||
log.Fatal(ERROR)
|
||||
}
|
||||
defer FIREFOX.Close()
|
||||
|
||||
sigs := make(chan os.Signal, 1)
|
||||
done := make(chan bool, 1)
|
||||
|
||||
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
||||
|
||||
go func() {
|
||||
sig := <-sigs
|
||||
fmt.Println()
|
||||
fmt.Println(sig)
|
||||
done <- true
|
||||
}()
|
||||
|
||||
fmt.Println("awaiting signal")
|
||||
<-done
|
||||
fmt.Println("exiting")
|
||||
<-FIREFOX.Done()
|
||||
}
|
||||
}
|
33
lib/pure.go
Normal file
33
lib/pure.go
Normal file
@@ -0,0 +1,33 @@
|
||||
// +build !variant
|
||||
|
||||
package i2pfirefox
|
||||
|
||||
var NOM = "pure"
|
||||
|
||||
var ARGS = []string{
|
||||
/*"--example-arg",*/
|
||||
}
|
||||
|
||||
var PREFS = `
|
||||
user_pref("privacy.firstparty.isolate", true); // [SET] [SAFE=false] [!PRIV=true] whether to enable First Party Isolation (FPI) - higly suggested to set this to true- IF DISABLING FPI, READ RELEVANT SECTIONS OF USER.JS!
|
||||
user_pref("privacy.resistFingerprinting", true); // [SET] [SAFE=false] [!PRIV=true] whether to enable Firefox built-in ability to resist fingerprinting by web servers (used to uniquely identify the browser)) - higly suggested to set this to true
|
||||
user_pref("privacy.resistFingerprinting.letterboxing", true); // [SET] [!PRIV=true] whether to set the viewport size to a generic dimension in order to resist fingerprinting) - suggested to set this to true, however doing so may make the viewport smaller than the window
|
||||
user_pref("browser.display.use_document_fonts", 0); // [SET] [SAFE=1] [!PRIV=0] whether to allow websites to use fonts they specify - 0=no, 1=yes - setting this to 0 will uglify many websites - value can be easily flipped with the Toggle Fonts add-on
|
||||
user_pref("browser.download.forbid_open_with", true); // whether to allow the 'open with' option when downloading a file
|
||||
user_pref("browser.library.activity-stream.enabled", false); // whether to enable Activity Stream recent Highlights in the Library
|
||||
|
||||
user_pref("network.proxy.type", 1); // [SET] [SAFE=1] [PRIV=1] [ALTSAFE=5] [ALTPRIV=5] 1==http, 5=socks
|
||||
user_pref("network.proxy.http", "127.0.0.1"); // [SET] 127.0.0.1
|
||||
user_pref("network.proxy.http_port", 4444); // [SET] 4444
|
||||
user_pref("network.proxy.ssl", "127.0.0.1"); // [SET] 127.0.0.1
|
||||
user_pref("network.proxy.ssl_port", 4444); // [SET] 4444
|
||||
user_pref("network.proxy.ftp", "127.0.0.1"); // [SET] 127.0.0.1
|
||||
user_pref("network.proxy.ftp_port", 4444); // [SET] 4444
|
||||
user_pref("network.proxy.socks", "127.0.0.1"); // [SET] 127.0.0.1
|
||||
user_pref("network.proxy.socks_port", 4444); // [SET] 4444
|
||||
user_pref("network.proxy.share_proxy_settings", true); // [SET] [SAFE=true] [PRIV=true] does not actually apply to http, but leave it set anyway so that we preserve the SOCKS option
|
||||
user_pref("network.proxy.socks_remote_dns", true); // [SET] [SAFE=true] [PRIV=true]
|
||||
user_pref("network.proxy.allow_hijacking_localhost", true) // [SET] [SAFE=true] [PRIV=true] Required for blackholing localhost requests when using anonymous proxies.
|
||||
`
|
||||
|
||||
var EXTENSIONPREFS = `{}`
|
14
lib/pureextensions.go
Normal file
14
lib/pureextensions.go
Normal file
@@ -0,0 +1,14 @@
|
||||
// +build !variant
|
||||
|
||||
package i2pfirefox
|
||||
|
||||
var EXTENSIONS = []string{
|
||||
"i2ppb@eyedeekay.github.io.xpi",
|
||||
"uBlock0@raymondhill.net.xpi",
|
||||
"uMatrix@raymondhill.net.xpi",
|
||||
}
|
||||
var EXTENSIONHASHES = []string{
|
||||
"f7eb75e5c41d94b593fa71cb839d07c14e9517f5fa1cb440f8a798df2bb08e17",
|
||||
"997aac00064665641298047534c9392492ef09f0cbf177b6a30d4fa288081579",
|
||||
"991f0fa5c64172b8a2bc0a010af60743eba1c18078c490348e1c6631882cbfc7",
|
||||
}
|
19
lib/variant.go
Normal file
19
lib/variant.go
Normal file
@@ -0,0 +1,19 @@
|
||||
// +build variant
|
||||
|
||||
package i2pfirefox
|
||||
|
||||
var ARGS = []string{
|
||||
/*"--example-arg",*/
|
||||
}
|
||||
|
||||
var PREFS = `
|
||||
user_pref("privacy.firstparty.isolate", true); // [SET] [SAFE=false] [!PRIV=true] whether to enable First Party Isolation (FPI) - higly suggested to set this to true- IF DISABLING FPI, READ RELEVANT SECTIONS OF USER.JS!
|
||||
user_pref("privacy.resistFingerprinting", true); // [SET] [SAFE=false] [!PRIV=true] whether to enable Firefox built-in ability to resist fingerprinting by web servers (used to uniquely identify the browser)) - higly suggested to set this to true
|
||||
user_pref("privacy.resistFingerprinting.letterboxing", true); // [SET] [!PRIV=true] whether to set the viewport size to a generic dimension in order to resist fingerprinting) - suggested to set this to true, however doing so may make the viewport smaller than the window
|
||||
user_pref("browser.display.use_document_fonts", 0); // [SET] [SAFE=1] [!PRIV=0] whether to allow websites to use fonts they specify - 0=no, 1=yes - setting this to 0 will uglify many websites - value can be easily flipped with the Toggle Fonts add-on
|
||||
user_pref("browser.download.forbid_open_with", true); // whether to allow the 'open with' option when downloading a file
|
||||
user_pref("browser.library.activity-stream.enabled", false); // whether to enable Activity Stream recent Highlights in the Library
|
||||
user_pref("network.proxy.allow_hijacking_localhost", true) // [SET] [SAFE=true] [PRIV=true] Required for blackholing localhost requests when using anonymous proxies.
|
||||
`
|
||||
|
||||
var EXTENSIONPREFS = `{}`
|
18
lib/variantextensions.go
Normal file
18
lib/variantextensions.go
Normal file
@@ -0,0 +1,18 @@
|
||||
// +build variant
|
||||
|
||||
package i2pfirefox
|
||||
|
||||
var NOM = "variant"
|
||||
|
||||
var EXTENSIONS = []string{
|
||||
"i2ppb@eyedeekay.github.io.xpi",
|
||||
"{b11bea1f-a888-4332-8d8a-cec2be7d24b9}.xpi",
|
||||
"uBlock0@raymondhill.net.xpi",
|
||||
"uMatrix@raymondhill.net.xpi",
|
||||
}
|
||||
var EXTENSIONHASHES = []string{
|
||||
"f7eb75e5c41d94b593fa71cb839d07c14e9517f5fa1cb440f8a798df2bb08e17",
|
||||
"f53f00ec9e689c7ddb4aaeec56bf50e61161ce7fbaaf2d2b49032c4c648120a2",
|
||||
"997aac00064665641298047534c9392492ef09f0cbf177b6a30d4fa288081579",
|
||||
"991f0fa5c64172b8a2bc0a010af60743eba1c18078c490348e1c6631882cbfc7",
|
||||
}
|
170
main.go
170
main.go
@@ -1,111 +1,111 @@
|
||||
//go:generate go run -tags generate gen.go
|
||||
//go:generate go run -tags generate gen.go extensions.go
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"time"
|
||||
|
||||
"github.com/eyedeekay/checki2cp"
|
||||
. "github.com/eyedeekay/GingerShrew/import"
|
||||
. "github.com/eyedeekay/go-fpw"
|
||||
. "github.com/eyedeekay/i2pfirefox/lib"
|
||||
"github.com/eyedeekay/zerobundle"
|
||||
)
|
||||
|
||||
var EXTENSIONS = []string{
|
||||
"i2ppb@eyedeekay.github.io.xpi",
|
||||
"{b11bea1f-a888-4332-8d8a-cec2be7d24b9}.xpi",
|
||||
"uBlock0@raymondhill.net.xpi",
|
||||
"uMatrix@raymondhill.net.xpi",
|
||||
}
|
||||
var EXTENSIONHASHES = []string{
|
||||
"bca6f385637c76445775af6271f8e9621966283f2f648cef9db9c635b6662f6d",
|
||||
"f53f00ec9e689c7ddb4aaeec56bf50e61161ce7fbaaf2d2b49032c4c648120a2",
|
||||
"997aac00064665641298047534c9392492ef09f0cbf177b6a30d4fa288081579",
|
||||
"991f0fa5c64172b8a2bc0a010af60743eba1c18078c490348e1c6631882cbfc7",
|
||||
}
|
||||
var ARGS = []string{
|
||||
/*"--example-arg",*/
|
||||
type handler struct {
|
||||
}
|
||||
|
||||
var PREFS = `user_pref("privacy.firstparty.isolate", true); // [SET] [SAFE=false] [!PRIV=true] whether to enable First Party Isolation (FPI) - higly suggested to set this to true- IF DISABLING FPI, READ RELEVANT SECTIONS OF USER.JS!
|
||||
user_pref("privacy.resistFingerprinting", true); // [SET] [SAFE=false] [!PRIV=true] whether to enable Firefox built-in ability to resist fingerprinting by web servers (used to uniquely identify the browser)) - higly suggested to set this to true
|
||||
user_pref("privacy.resistFingerprinting.letterboxing", true); // [SET] [!PRIV=true] whether to set the viewport size to a generic dimension in order to resist fingerprinting) - suggested to set this to true, however doing so may make the viewport smaller than the window
|
||||
user_pref("browser.display.use_document_fonts", 0); // [SET] [SAFE=1] [!PRIV=0] whether to allow websites to use fonts they specify - 0=no, 1=yes - setting this to 0 will uglify many websites - value can be easily flipped with the Toggle Fonts add-on
|
||||
user_pref("browser.download.forbid_open_with", true); // whether to allow the 'open with' option when downloading a file
|
||||
user_pref("browser.library.activity-stream.enabled", false); // whether to enable Activity Stream recent Highlights in the Library`
|
||||
|
||||
var userdir = "./i2pfox"
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) {
|
||||
if len(val.Name()) > 3 {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := userdir + "/extensions/" + val.Name()
|
||||
if _, err := os.Stat(extension); !os.IsNotExist(err) {
|
||||
os.Remove(extension)
|
||||
}
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
} else {
|
||||
log.Println("'"+userdir+"/"+val.Name()+"'", "ignored")
|
||||
}
|
||||
func (h *handler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
||||
fmt.Fprintf(w, "hello\n")
|
||||
/*In the future, we may use this as a sort of loopback for privately testing the browser
|
||||
fingerprint. At first this will be 100% user-initiated, but it may be useful to query such
|
||||
a service periodically, in order to inform the user when a fingerprint change has occurred
|
||||
and prompt them to potentially re-set their browser to it's original state.
|
||||
for name, headers := range req.Header {
|
||||
for _, h := range headers {
|
||||
fmt.Fprintf(w, "%v: %v\n", name, h)
|
||||
}
|
||||
} else {
|
||||
log.Println("'"+userdir+"/"+val.Name()+"'", "ignored", "contents", val.Sys())
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(userdir+"/extensions", 0755)
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(userdir+"/"+val.Name(), val.Mode())
|
||||
} else {
|
||||
writeExtension(val, FS)
|
||||
}
|
||||
func hello() error {
|
||||
server := &http.Server{Addr: "localhost:", Handler: &handler{}}
|
||||
|
||||
go func() {
|
||||
if err := server.ListenAndServe(); err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
}()
|
||||
|
||||
// Setting up signal capturing
|
||||
// stop := make(chan os.Signal, 1)
|
||||
// signal.Notify(stop, os.Interrupt)
|
||||
|
||||
// Waiting for SIGINT (pkill -2)
|
||||
// <-stop
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
if err := server.Shutdown(ctx); err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func proxyCheck() bool {
|
||||
conn, err := net.Dial("tcp4", "localhost:4444")
|
||||
log.Println("Doing dial check")
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
log.Println("Dial check true, proxy is up")
|
||||
defer conn.Close()
|
||||
return true
|
||||
}
|
||||
|
||||
func main() {
|
||||
if ok, err := checki2p.ConditionallyLaunchI2P(); ok {
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
if err := hello(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
chromium := flag.Bool("chromium", false, "use a chromium-based browser instead of a firefox-based browser.")
|
||||
flag.Parse()
|
||||
ARGS = append(ARGS, flag.Args()...)
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
if runtime.GOOS == "linux" {
|
||||
if !*chromium {
|
||||
if err := UnpackTBZ(GingerDir); err != nil {
|
||||
log.Fatal("Error unpacking embedded browser")
|
||||
} else {
|
||||
os.Setenv("FIREFOX_BIN", filepath.Join(GingerDir, "gingershrew", "gingershrew"))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.Fatal("Undefined I2P launching error")
|
||||
}
|
||||
writeProfile(FS)
|
||||
prefs := userdir + "/user.js"
|
||||
if _, err := os.Stat(prefs); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(prefs, []byte(PREFS), 0644); err == nil {
|
||||
log.Println("wrote", prefs)
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
if LocateFirefox() == "" {
|
||||
*chromium = true
|
||||
}
|
||||
}
|
||||
FIREFOX, ERROR := SecureExtendedFirefox(userdir, false, EXTENSIONS, EXTENSIONHASHES, ARGS...)
|
||||
if ERROR != nil {
|
||||
log.Fatal(ERROR)
|
||||
if err := WriteI2CPConf(); err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
if err := zerobundle.ZeroMain(); err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
time.Sleep(time.Second * 2)
|
||||
if !proxyCheck() {
|
||||
go proxyMain(ctx)
|
||||
}
|
||||
if !*chromium {
|
||||
firefoxMain()
|
||||
} else {
|
||||
chromiumMain()
|
||||
}
|
||||
defer FIREFOX.Close()
|
||||
<-FIREFOX.Done()
|
||||
}
|
||||
|
1
sum
Normal file
1
sum
Normal file
@@ -0,0 +1 @@
|
||||
28d475b59554cf62a6b787687c49f29b493b5f02b434630fadbf5e776eb0a123 i2pfirefox-darwin
|
10
sums
Normal file
10
sums
Normal file
@@ -0,0 +1,10 @@
|
||||
go run -a -tags netgo -ldflags '-w -extldflags "-static"' -tags generate gen.go extensions.go
|
||||
sha256sum ifox/i2ppb@eyedeekay.github.io.xpi
|
||||
f7eb75e5c41d94b593fa71cb839d07c14e9517f5fa1cb440f8a798df2bb08e17 ifox/i2ppb@eyedeekay.github.io.xpi
|
||||
sha256sum 'ifox/{b11bea1f-a888-4332-8d8a-cec2be7d24b9}.xpi'
|
||||
f53f00ec9e689c7ddb4aaeec56bf50e61161ce7fbaaf2d2b49032c4c648120a2 ifox/{b11bea1f-a888-4332-8d8a-cec2be7d24b9}.xpi
|
||||
sha256sum ifox/uBlock0@raymondhill.net.xpi
|
||||
997aac00064665641298047534c9392492ef09f0cbf177b6a30d4fa288081579 ifox/uBlock0@raymondhill.net.xpi
|
||||
sha256sum ifox/uMatrix@raymondhill.net.xpi
|
||||
991f0fa5c64172b8a2bc0a010af60743eba1c18078c490348e1c6631882cbfc7 ifox/uMatrix@raymondhill.net.xpi
|
||||
#sha256sum 'ifox/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi'
|
Reference in New Issue
Block a user