diff --git a/browsers/simbrowser/market_share.go b/browsers/simbrowser/market_share.go index 516c167f5..200e1aeb7 100644 --- a/browsers/simbrowser/market_share.go +++ b/browsers/simbrowser/market_share.go @@ -29,7 +29,6 @@ const ( Firefox = "Firefox" Safari = "Safari" Edge = "Edge" - InternetExplorer = "InternetExplorer" ThreeSixtySecureBrowser = "ThreeSixtySecure" QQBrowser = "QQBrowser" ) @@ -44,8 +43,6 @@ func browserByType(t BrowserType) (*Browser, error) { return &safari, nil case Edge: return &edge, nil - case InternetExplorer: - return &explorer, nil case ThreeSixtySecureBrowser: return &threeSixty, nil case QQBrowser: @@ -69,22 +66,22 @@ func (bc browserChoice) Weight() int { return int(bc.marketShare * 100) } var ( marketShareLock sync.RWMutex marketShareData = map[CountryCode][]browserChoice{ - // https://gs.statcounter.com/browser-market-share/desktop/worldwide#monthly-201910-202009-bar + // https://gs.statcounter.com/browser-market-share/desktop/worldwide/#monthly-202301-202308-bar globally: { - {chrome, 0.70}, - {firefox, 0.08}, - {safari, 0.08}, - {edge, 0.05}, + {chrome, 0.65}, + {safari, 0.12}, + {edge, 0.11}, + {firefox, 0.06}, }, - // https://gs.statcounter.com/browser-market-share/desktop/china#monthly-201910-202009-bar + // https://gs.statcounter.com/browser-market-share/desktop/china/#monthly-202301-202308-bar // We switched Chrome and 360 because we felt that was more accurate. Sogou Explorer is not // represented because it is not supported by utls. "CN": { - {threeSixty, 0.39}, - {chrome, 0.25}, - {firefox, 0.08}, - {qq, 0.07}, - {explorer, 0.05}, + {threeSixty, 0.38}, + {edge, 0.21}, + {chrome, 0.19}, + {qq, 0.09}, + {firefox, 0.03}, }, } ) diff --git a/browsers/simbrowser/market_share_test.go b/browsers/simbrowser/market_share_test.go index 7079a8b3c..912ebf794 100644 --- a/browsers/simbrowser/market_share_test.go +++ b/browsers/simbrowser/market_share_test.go @@ -3,16 +3,17 @@ package simbrowser import ( "testing" - "github.com/getlantern/yaml" "github.com/stretchr/testify/require" + + "github.com/getlantern/yaml" ) func TestMarketShareDataYamlRoundTrip(t *testing.T) { msd := MarketShareData{ - Chrome: 0.4, - Firefox: 0.3, - Edge: 0.2, - InternetExplorer: 0.1, + Chrome: 0.4, + Firefox: 0.3, + Edge: 0.2, + Safari: 0.1, } b, err := yaml.Marshal(msd) diff --git a/browsers/simbrowser/simbrowser.go b/browsers/simbrowser/simbrowser.go index c93962ede..d3fe9e6b5 100644 --- a/browsers/simbrowser/simbrowser.go +++ b/browsers/simbrowser/simbrowser.go @@ -33,7 +33,6 @@ var ( chrome = Browser{Chrome, 30 * time.Minute, tls.HelloChrome_Auto} firefox = Browser{Firefox, 24 * time.Hour, tls.HelloFirefox_Auto} edge = Browser{Edge, 10 * time.Hour, tls.HelloEdge_Auto} - explorer = Browser{InternetExplorer, 600 * time.Minute, tls.HelloExplorer_11} threeSixty = Browser{ThreeSixtySecureBrowser, 9 * time.Hour, tls.Hello360_Auto} qq = Browser{QQBrowser, 30 * time.Minute, tls.HelloQQ_Auto} safari = Browser{Safari, 24 * time.Hour, tls.HelloSafari_Auto} @@ -106,7 +105,8 @@ func ChooseForUser(ctx context.Context, uc common.UserConfig) Browser { } choice := deterministic.MakeWeightedChoice(uc.GetUserID(), weightedChoices) - return choice.(browserChoice).Browser + browser := choice.(browserChoice).Browser + return browser } func max(a, b time.Duration) time.Duration { diff --git a/chained/common.go b/chained/common.go index 00620b603..74ded6a40 100644 --- a/chained/common.go +++ b/chained/common.go @@ -8,10 +8,11 @@ package chained import ( "strconv" - "github.com/getlantern/common/config" - "github.com/getlantern/golog" tls "github.com/refraction-networking/utls" "google.golang.org/protobuf/proto" + + "github.com/getlantern/common/config" + "github.com/getlantern/golog" ) var log = golog.LoggerFor("chained") @@ -186,7 +187,7 @@ var availableClientHelloIDs = map[string]tls.ClientHelloID{ "HelloChrome_Auto": tls.HelloChrome_Auto, "HelloChrome_58": tls.HelloChrome_58, "HelloChrome_62": tls.HelloChrome_62, - "HelloChrome_106": tls.HelloChrome_106, + "HelloChrome_102": tls.HelloChrome_102, "HelloEdge_Auto": tls.HelloEdge_Auto, "Hello360_Auto": tls.Hello360_Auto, "HelloQQ_Auto": tls.HelloQQ_Auto, diff --git a/chained/hello_roller.go b/chained/hello_roller.go index 64e82f61d..82f7392a9 100644 --- a/chained/hello_roller.go +++ b/chained/hello_roller.go @@ -38,7 +38,11 @@ func (hs helloSpec) utlsSpec() (tls.ClientHelloID, *tls.ClientHelloSpec, error) return hs.id, nil, errors.New("sample hello is too small") } - spec, err := tls.FingerprintClientHello(hs.sample[tlsRecordHeaderLen:]) + fp := &tls.Fingerprinter{ + AllowBluntMimicry: false, + AlwaysAddPadding: false, + } + spec, err := fp.FingerprintClientHello(hs.sample[tlsRecordHeaderLen:]) if err != nil { return hs.id, nil, errors.New("failed to fingerprint sample hello: %v", err) } diff --git a/go.mod b/go.mod index 1109c463b..6d82ab27b 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,6 @@ replace github.com/elazarl/goproxy => github.com/getlantern/goproxy v0.0.0-20220 replace github.com/lucas-clemente/quic-go => github.com/getlantern/quic-go v0.31.1-0.20230104154904-d810c964a217 -replace github.com/refraction-networking/utls => github.com/getlantern/utls v0.0.0-20230801230015-21ad1b626d98 - replace github.com/keighl/mandrill => github.com/getlantern/mandrill v0.0.0-20221004112352-e7c04248adcb //replace github.com/getlantern/yinbi-server => ../yinbi-server @@ -65,7 +63,7 @@ require ( github.com/getlantern/golog v0.0.0-20230503153817-8e72de7e0a65 github.com/getlantern/hellosplitter v0.1.1 github.com/getlantern/hidden v0.0.0-20220104173330-f221c5a24770 - github.com/getlantern/http-proxy-lantern/v2 v2.8.2 + github.com/getlantern/http-proxy-lantern/v2 v2.8.3-0.20230817000022-0c0681432cb9 github.com/getlantern/httpseverywhere v0.0.0-20201210200013-19ae11fc4eca github.com/getlantern/i18n v0.0.0-20181205222232-2afc4f49bb1c github.com/getlantern/idletiming v0.0.0-20201229174729-33d04d220c4e @@ -112,7 +110,7 @@ require ( github.com/mitchellh/go-server-timing v1.0.1 github.com/mitchellh/mapstructure v1.5.0 github.com/pborman/uuid v1.2.1 - github.com/refraction-networking/utls v1.0.0 + github.com/refraction-networking/utls v1.3.3 github.com/samber/lo v1.38.1 github.com/shadowsocks/go-shadowsocks2 v0.1.5 github.com/stretchr/testify v1.8.3 @@ -125,7 +123,7 @@ require ( go.opentelemetry.io/otel/sdk v1.16.0 go.opentelemetry.io/otel/trace v1.16.0 go.uber.org/atomic v1.10.0 - golang.org/x/sys v0.8.0 + golang.org/x/sys v0.9.0 google.golang.org/protobuf v1.30.0 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 @@ -180,6 +178,7 @@ require ( github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 // indirect github.com/enobufs/go-nats v0.0.1 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/gaukas/godicttls v0.0.3 // indirect github.com/getlantern/byteexec v0.0.0-20220903142956-e6ed20032cfd // indirect github.com/getlantern/cmux v0.0.0-20230301223233-dac79088a4c0 // indirect github.com/getlantern/context v0.0.0-20220418194847-3d5e7a086201 // indirect @@ -226,7 +225,7 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.2 // indirect github.com/huandu/xstrings v1.3.2 // indirect github.com/kennygrant/sanitize v1.2.4 // indirect - github.com/klauspost/compress v1.16.0 // indirect + github.com/klauspost/compress v1.16.6 // indirect github.com/klauspost/cpuid v1.3.1 // indirect github.com/klauspost/pgzip v1.2.5 // indirect github.com/klauspost/reedsolomon v1.9.9 // indirect @@ -302,12 +301,12 @@ require ( go.opentelemetry.io/proto/otlp v0.19.0 // indirect go.uber.org/multierr v1.8.0 // indirect go.uber.org/zap v1.21.0 // indirect - golang.org/x/crypto v0.9.0 // indirect + golang.org/x/crypto v0.10.0 // indirect golang.org/x/exp v0.0.0-20221217163422-3c43f8badb15 // indirect golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.10.0 // indirect + golang.org/x/net v0.11.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/text v0.9.0 // indirect + golang.org/x/text v0.10.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.6.0 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index b4a3405c0..72d5868ce 100644 --- a/go.sum +++ b/go.sum @@ -152,7 +152,6 @@ github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96/go.mod h1:Wa6n8cY github.com/anacrolix/utp v0.1.0 h1:FOpQOmIwYsnENnz7tAGohA+r6iXpRjrq8ssKSre2Cp4= github.com/anacrolix/utp v0.1.0/go.mod h1:MDwc+vsGEq7RMw6lr2GKOEqjWny5hO5OZXRVNaBJ2Dk= github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c= @@ -288,6 +287,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/gaukas/godicttls v0.0.3 h1:YNDIf0d9adcxOijiLrEzpfZGAkNwLRzPaG6OjU7EITk= +github.com/gaukas/godicttls v0.0.3/go.mod h1:l6EenT4TLWgTdwslVb4sEMOCf7Bv0JAK67deKr9/NCI= github.com/getlantern/appdir v0.0.0-20160830121117-659a155d06e8/go.mod h1:3vR6+jQdWfWojZ77w+htCqEF5MO/Y2twJOpAvFuM9po= github.com/getlantern/appdir v0.0.0-20180320102544-7c0f9d241ea7/go.mod h1:3vR6+jQdWfWojZ77w+htCqEF5MO/Y2twJOpAvFuM9po= github.com/getlantern/borda v0.0.0-20230421223744-4e208135f082 h1:Ka9rIAgef8zYhBr/VgLrt5+Qs7zE33g0OButzpIGcSs= @@ -393,8 +394,8 @@ github.com/getlantern/hidden v0.0.0-20220104173330-f221c5a24770 h1:cSrD9ryDfTV2y github.com/getlantern/hidden v0.0.0-20220104173330-f221c5a24770/go.mod h1:GOQsoDnEHl6ZmNIL+5uVo+JWRFWozMEp18Izcb++H+A= github.com/getlantern/http-proxy v0.0.3-0.20230405160101-eb4bf4e4a733 h1:bAVwkX1pvHqqrxuoZ2ElGr2FElnjE/+yOpqUSOrVnJg= github.com/getlantern/http-proxy v0.0.3-0.20230405160101-eb4bf4e4a733/go.mod h1:zsMtNKXEfy+y3RBqe3wcd05VivKAswrIvlVsFrj7Fwk= -github.com/getlantern/http-proxy-lantern/v2 v2.8.2 h1:kET59ivzejmIODw1m/6J1f+MS/pesxYlyaiUaJbnXZc= -github.com/getlantern/http-proxy-lantern/v2 v2.8.2/go.mod h1:QTlMxJhd74PZqtDmZ4g99EYSWBVrWu5d/LBWV/mKRGE= +github.com/getlantern/http-proxy-lantern/v2 v2.8.3-0.20230817000022-0c0681432cb9 h1:gKlCFexSPVLBtkYck66wX48+BFS9pcmuaJ1NQe/tGTs= +github.com/getlantern/http-proxy-lantern/v2 v2.8.3-0.20230817000022-0c0681432cb9/go.mod h1:2HsMsUPrRYi4059BpzZTiUfnRy6B4E6NPc8RC91ILIo= github.com/getlantern/httpseverywhere v0.0.0-20201210200013-19ae11fc4eca h1:Of3VwFEfKbVnK5/VGy05XUbi6QvTs5Y2eLDfPv3O50E= github.com/getlantern/httpseverywhere v0.0.0-20201210200013-19ae11fc4eca/go.mod h1:TNC/xJFmctsSGyXqcnVWwCRCPD/4zGQP7yBVnLDRa/U= github.com/getlantern/i18n v0.0.0-20181205222232-2afc4f49bb1c h1:+JnT+Rwa/3rksc4Zi0u6fJ/WX+tPK58GtsrcXWVUU2U= @@ -521,8 +522,6 @@ github.com/getlantern/tlsresumption v0.0.0-20211216020551-6a3f901d86b9/go.mod h1 github.com/getlantern/tlsutil v0.2.0/go.mod h1:Vxsyr9DVnYwsqHaEzMYkg9fT8aBrnO2eI+gdICMQbQU= github.com/getlantern/tlsutil v0.5.3 h1:g1FjuG4/OTZe8kkbEmpSxvT9rXzYOG9jO4jHiDeQIxM= github.com/getlantern/tlsutil v0.5.3/go.mod h1:lVgvr4nxuQ1ocOho90UB6LnHFlpP16TXAGpHR8Z0QnI= -github.com/getlantern/utls v0.0.0-20230801230015-21ad1b626d98 h1:UCeiluJqJF+U8QkJHVzBNofpvxZb7hKI1EkQ9dBqFjA= -github.com/getlantern/utls v0.0.0-20230801230015-21ad1b626d98/go.mod h1:xleouNszTteqmcvv1JZiPuBY+MnTh/xV34mi0HYmiqk= github.com/getlantern/uuid v1.1.2-0.20190507182000-5c9436b8c718/go.mod h1:uX10hOzZUUDR+oYNSIks+RcozOEiwTNC/K2rw9SUi1k= github.com/getlantern/uuid v1.2.0 h1:pGrGaCV7XEaG6lvjWkwf8Y92BjB/9yFmkKsNFpRQ7rc= github.com/getlantern/uuid v1.2.0/go.mod h1:uX10hOzZUUDR+oYNSIks+RcozOEiwTNC/K2rw9SUi1k= @@ -763,9 +762,8 @@ github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0 github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.6 h1:91SKEy4K37vkp255cJ8QesJhjyRO0hn9i9G0GoUwLsk= +github.com/klauspost/compress v1.16.6/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.4/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= @@ -992,6 +990,10 @@ github.com/quic-go/quic-go v0.34.0 h1:OvOJ9LFjTySgwOTYUZmNoq0FzVicP8YujpV0kB7m2l github.com/quic-go/quic-go v0.34.0/go.mod h1:+4CVgVppm0FNjpG3UcX8Joi/frKOH7/ciD5yGcwOO1g= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/reflog/minisentinel v0.0.0-20210817104530-e0dd88cb8bc6/go.mod h1:UdPuN3+X0Rvf3yJ++7j0zj4P8EaI6YwQJS+JbBk2o8k= +github.com/refraction-networking/utls v0.0.0-20190415193640-32987941ebd3/go.mod h1:tz9gX959MEFfFN5whTIocCLUG57WiILqtdVxI8c6Wj0= +github.com/refraction-networking/utls v0.0.0-20190909200633-43c36d3c1f57/go.mod h1:tz9gX959MEFfFN5whTIocCLUG57WiILqtdVxI8c6Wj0= +github.com/refraction-networking/utls v1.3.3 h1:f/TBLX7KBciRyFH3bwupp+CE4fzoYKCirhdRcC490sw= +github.com/refraction-networking/utls v1.3.3/go.mod h1:DlecWW1LMlMJu+9qpzzQqdHDT/C2LAe03EdpLUz/RL8= github.com/retailnext/hllpp v1.0.0/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= github.com/rickar/props v0.0.0-20170718221555-0b06aeb2f037/go.mod h1:F1p8BNM4IXv2UcptwSp8HJOapKurodd/PYu1D6Gtn9Y= github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg= @@ -1211,12 +1213,12 @@ golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWP golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM= +golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1305,7 +1307,6 @@ golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211111160137-58aab5ef257a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= @@ -1313,8 +1314,9 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU= +golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1407,8 +1409,9 @@ golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1430,8 +1433,9 @@ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= +golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=