Giter Site home page Giter Site logo

goby-lang / goby Goto Github PK

View Code? Open in Web Editor NEW
3.5K 85.0 170.0 8.14 MB

Goby - Yet another programming language written in Go

License: MIT License

Go 98.34% Makefile 0.04% Shell 0.11% Ruby 1.49% Dockerfile 0.02%
ruby golang interpreter bytecode object-oriented api-server goby goby-language goby-codes

goby's Introduction

Goby

Build Status GoDoc Go Report Card codecov Readme Score Snap Status Open Source Helpers Reviewed by Hound

Goby is an object-oriented interpreter language deeply inspired by Ruby as well as its core implementation by 100% pure Go. Moreover, it has standard libraries to provide several features such as the Plugin system. Note that we do not intend to reproduce whole of the honorable works of Ruby syntax/implementation/libraries.

The expected use case for Goby would be backend development. With this goal, it equips (but not limited to) the following features:

  • thread/channel mechanism powered by Go's goroutine
  • Builtin database library (currently only support PostgreSQL adapter)
  • JSON support
  • Plugin system that can load existing Go packages dynamically (Only for Linux and MacOS right now)
  • Accessing Go objects from Goby directly

Note: Goby had formerly been known as "Rooby", which was renamed in May 2017.

Table of contents

Demo screen and sample Goby app

Click to see the demo below (powered by asciinema and GIPHY).

New! Check-out our sample app built with Goby. Source code is also available here.

Structure

3D Visualization

A 3D visualization of Goby codebase, powered by GoCity

Goby 3D Visualization

Major Features

  • Plugin system
    • Allows using Go libraries (packages) dynamically
    • Allows calling Go's methods from Goby directly (only on Linux for now)
  • Builtin multi-threaded server and DB library
  • REPL (run goby -i)

Here's a complete list of all the features.

Installation

Confirmed Goby runs on Mac OS and Linux for now. Try Goby on Windows and let us know the result.

A. Via Homebrew (binary installation for Mac OS)

Note: Please check the latest release before installing Goby via Homebrew

brew tap goby-lang/goby
brew install goby

In the case, $GOBY_ROOT is automatically configured.

B. From Source

Try this if you'd like to contribute Goby! Skip 1 if you already have Golang in your environment.

  1. Prepare Golang environment
    • Install Golang >= 1.14
    • Make sure $GOPATH in your shell's config file( like .bashrc) is correct
    • Add your $GOPATH/bin to $PATH
    • Add export GO111MODULE=on to your shell profile
  2. Run go get github.com/goby-lang/goby
  3. Set the Goby project's exact root path $GOBY_ROOT manually, which should be:
$GOPATH/src/github.com/goby-lang/goby

C. Installation on a Linux system

In order to install Go, Goby and PostgreSQL on a Linux system, see the wiki page.

Verifying Goby installation

  1. Run goby -v to see the version.
  2. Run goby -i to launch igb REPL.
  3. Type require "uri" in igb.

FYI: You can just run brew test goby to check Homebrew installation.

If you have any issue installing Goby, please let us know via GitHub issues

Using Docker

Goby has official docker image as well. You can try the Plugin System using docker.

Syntax highlighting

The Goby syntax is currently a subset of the Ruby one, with an exception (get_block), therefore, it's possible to attain syntax highlighting on any platform/editor by simply switching it to Ruby for the currently opened file.

Sublime Text 3

Sublime Text 3 users can use the Only Goby package, by typing the following in a terminal:

git clone [email protected]:saveriomiroddi/only-goby-for-sublime-text "$HOME/.config/sublime-text-3/Packages/only-goby-for-sublime-text"

this will automatically apply the Goby syntax highlighting to the .gb files.

Vim

Vim users can use the vim-goby-syntax-highlighting definition, by typing the following in a terminal:

mkdir -p "$HOME/.vim/syntax"
wget -O "$HOME/.vim/syntax/goby.vim" https://raw.githubusercontent.com/saveriomiroddi/vim-goby-syntax-highlighting/master/goby.vim
echo 'au BufNewFile,BufRead *.gb    setf goby' >> "$HOME/.vim/filetype.vim"

this will automatically apply the Goby syntax highlighting to the .gb files.

SpaceVim

SpaceVim users can load the lang#goby layer by adding following configuration:

[[layers]]
  name = "lang#goby"

Sample codes

More sample Goby codes can be found in sample directory.

Joining to Goby

Join us on Slack!

See the guideline.

Maintainers

  • @st0012
  • @hachi8833
  • @saveriomiroddi

Designer

Supporters

Sponsors

Powered by

JetBrains Goland

Supporting Goby by sending your first PR! See contribution guideline

References

The followings are the essential resources to create Goby; I highly recommend you to check them first if you'd be interested in building your own languages:

goby's People

Contributors

284km avatar 64kramsystem avatar adelcambre avatar adlerhsieh avatar aisk avatar alexius-huang avatar amohamedali avatar appleboy avatar d6o avatar ear7h avatar eliothedeman avatar evandandrea avatar hachi8833 avatar hanachin avatar haraldnordgren avatar janczer avatar jaynagpaul avatar kachick avatar lara avatar llk23r avatar mattn avatar mweitzel avatar quasilyte avatar rwhitworth avatar sd10 avatar shes50103 avatar st0012 avatar sumlare avatar whilei avatar xdamman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

goby's Issues

Embedded module support

(Related to #66)

It'd be very nice if embedded module is supported in Goby.

In Ruby, most fundamental methods like Object or Kernel are implemented as module: perhaps to simplify the implementations of such basic classes.

  • Embedded modules written in Go
  • Embedded modules written in Goby (if possible)

First release

Planned beta release day: 8/31

In first release we focus on feature support. You can assume at most conditions rooby is more slower than ruby, but we will optimize rooby's performance in later versions.

Required

Features

  • Homebrew formula (thanks to @adlerhsieh)
  • Change extension name to .gb
  • Namespace support (Foo::Bar)
  • ARGV
  • Built in http library
  • Require system (should be similar to Ruby....?)
  • File IO class
  • Sample api server
  • Range Type
  • Docker image
  • Thread support
  • Channel support
  • Go plugin support and not limited to main package
  • Flow controls (most are compiler's work)
    • while
    • next
    • break

Docs

  • Bytecode specifications
  • Full API document for built in types
  • Full API document for built in libraries
  • Write down release procedure

Not sure if we can make it

  • Use parser generator
  • Simple web framework
  • Exception handling

Merge Object and BaseObject interfaces

Currently we have two interfaces to represent objects in Goby. One is Object which represents any internal objects in the vm. The other one is BaseObject, which represents objects that can be accessed in Goby, like String, Integer.

And these two interface is sort of duplicated, their only difference is that BaseObject requires structs to have returnClass() method. This makes method and error can't be BaseObject, which means if we make these two structs have class then we can remove one of the interface. Besides, method and error do need to be accessible.

(Personally I prefer making Object require returnClass() and remove BaseObject interface.)

What do you think? @adlerhsieh @janczer

Goby stops responding when quotation marks are not paired

Happened to find that the following code makes Goby stop responding:

a = "abcxyz
puts(a)

Just to create the test code for the error cases:

func TestStringErrorCase(t *testing.T) {
	tests := []struct {
		input    string
		expected interface{}
	}{
		{`"abc`, `unterminated string meets end of file`},
		{`'abc`, `unterminated string meets end of file`},
		{`abc"`, `unterminated string meets end of file`},
		{`abc'`, `unterminated string meets end of file`},
	}

	for _, tt := range tests {
		evaluated := testEval(t, tt.input)
		if !isError(evaluated) {
			t.Fatalf("Should return an error for %s", tt.input)
		}

		if evaluated.(*Error).Message != tt.expected {
			t.Fatalf("Error message should be '%s'\n result %s", tt.expected, evaluated)
		}

	}
}

Http library

Current status:

  • Have URI module and .parse method that returns URI::HTTP or URI::HTTPS instance.
  • Have Net::HTTP class and very simple .get method.

We still need:

  • Support URI object as Net::HTTP.get's argument.
  • Net::HTTPGenericRequest class and Net::HTTP::Get, Net::HTTP::Post which inherits it.
  • Net::HTTPResponse class
  • Methods of Net::HTTP:
    • .start
    • .new
    • .post_form
    • #get_response
    • #get
    • #post
    • #request

Reference: https://ruby-doc.org/stdlib-2.4.1/libdoc/net/http/rdoc/Net/HTTP.html

Goby's String class should be multilingual-conscious

Current strings are counted as byte:

puts("🍣".size)   # => 4
puts("我学".size) # => 6
puts("🍣".length)   # => 4
puts("我学".length) # => 6

This comes from the string type in Go.

type StringObject struct {
	Class *RString
	Value string
}

I'd suggest that changing string type to rune type or like that as a default, to support each on multilingual strings.


memorandum: Looks like the minimum specification of Goby is needed soon:

  • Goby's encoding is implicitly fixed to UTF-8, while Ruby's String has #encoding to change with.
  • Perhaps character literal like "\u{00A0}" or numeric literal like 1_000_000 are going to be needed in the future, and such literals would affect lexer/parser implementations.
  • Implementing without specification would lead inconsistency among implementations.

FYI: Ruby had long been missing the official specification until ISO/IEC 30170:2012 was established https://www.iso.org/standard/59579.html.
The latest specification http://kikakurui.com/x3/X3017-2013-01.html is unfortunately written in Japanese.

Error in Run gbc file!

$ ../Rooby -c sample-1.ro

this generate sample-1.gbc file!

$ ls

sample-1.gbc  sample-2.ro  sample-4.ro  sample-6.ro
sample-1.ro   sample-3.ro  sample-5.ro  stack.ro

$ ../Rooby sample-1.gbc

$ ./sample-1.gbc

./sample-1.gbc: line 1: syntax error near unexpected token `newline'
./sample-1.gbc: line 1: `<Def:set>'

why not run compiled file?

Parser for `for statement`

Possible for statement:

for element in array do
    element.do_stuff
end
for i in 0..5 do
    puts(i)
end

How parser should parse for statement?

Implementing $GOBY_ROOT

  • Add a post-install message to brew install goby asking users to set $GOBY_ROOT
  • When executing goby, it looks for $GOBY_ROOT. If it is not set, display a help message and exit.
  • When executing goby, it looks for standard libraries in $GOBY_ROOT/lib/[version] directory. If it does not exist, it creates and copies the lib there.

Got occasionally "fatal error: concurrent map read and map write" on Apach Bench

I'd open the issue now because the 'thread' branch has been merged into 'master' branch.
The frequency of the panic fatal error: concurrent map read and map write is getting less and less, but occasionally occurs.

(Goby's make test is getting more stable than before.)

$ make test
./test.sh
?     github.com/goby-lang/goby [no test files]
?     github.com/goby-lang/goby/ast [no test files]
ok    github.com/goby-lang/goby/bytecode  1.038s  coverage: 94.7% of statements
ok    github.com/goby-lang/goby/lexer 1.021s  coverage: 96.3% of statements
ok    github.com/goby-lang/goby/parser  1.037s  coverage: 71.4% of statements
ok    github.com/goby-lang/goby/token 1.022s  coverage: 100.0% of statements
ok    github.com/goby-lang/goby/vm  2.359s  coverage: 85.9% of statements
Sleeping for 0.5 sec to wait server.gb being ready...
2017/06/19 14:35:17 SimpleServer start listening on port: 3000
This is ApacheBench, Version 2.3 <$Revision: 1757674 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
fatal error: concurrent map read and map write

goroutine 9 [running]:
runtime.throw(0x1372dac, 0x21)
  /usr/local/opt/go/libexec/src/runtime/panic.go:596 +0x95 fp=0xc42005b828 sp=0xc42005b808
runtime.mapaccess2_faststr(0x13074e0, 0xc42001afc0, 0xc4201b02e0, 0xe, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/runtime/hashmap_fast.go:326 +0x50a fp=0xc42005b888 sp=0xc42005b828
github.com/goby-lang/goby/vm.initializeString(0xc4201b02e0, 0xe, 0x0)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/string.go:53 +0x5b fp=0xc42005b8e8 sp=0xc42005b888
github.com/goby-lang/goby/vm.initObject(0x12efae0, 0xc42022e090, 0x1, 0xc4201b042c)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/simple_server.go:184 +0x1b4 fp=0xc42005b938 sp=0xc42005b8e8
github.com/goby-lang/goby/vm.initRequest(0x14cd0a0, 0xc4202f8000, 0xc42000b300, 0x0)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/simple_server.go:141 +0x3bf fp=0xc42005bb00 sp=0xc42005b938
github.com/goby-lang/goby/vm.newHandler.func1(0x14cd0a0, 0xc4202f8000, 0xc42000b300)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/simple_server.go:113 +0x2d9 fp=0xc42005bbb8 sp=0xc42005bb00
net/http.HandlerFunc.ServeHTTP(0xc420164140, 0x14cd0a0, 0xc4202f8000, 0xc42000b300)
  /usr/local/opt/go/libexec/src/net/http/server.go:1942 +0x44 fp=0xc42005bbe0 sp=0xc42005bbb8
github.com/goby-lang/goby/Godeps/_workspace/src/github.com/gorilla/mux.(*Router).ServeHTTP(0xc420016f50, 0x14cd0a0, 0xc4202f8000, 0xc42000b300)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/Godeps/_workspace/src/github.com/gorilla/mux/mux.go:98 +0x255 fp=0xc42005bcd0 sp=0xc42005bbe0
net/http.(*ServeMux).ServeHTTP(0x14faae0, 0x14cd0a0, 0xc4202f8000, 0xc42000b300)
  /usr/local/opt/go/libexec/src/net/http/server.go:2238 +0x130 fp=0xc42005bd10 sp=0xc42005bcd0
net/http.serverHandler.ServeHTTP(0xc4200b2370, 0x14cd0a0, 0xc4202f8000, 0xc42000b300)
  /usr/local/opt/go/libexec/src/net/http/server.go:2568 +0x92 fp=0xc42005bd58 sp=0xc42005bd10
net/http.(*conn).serve(0xc4201661e0, 0x14cd620, 0xc42013dbc0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1825 +0x612 fp=0xc42005bfc8 sp=0xc42005bd58
runtime.goexit()
  /usr/local/opt/go/libexec/src/runtime/asm_amd64.s:2197 +0x1 fp=0xc42005bfd0 sp=0xc42005bfc8
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 1 [IO wait]:
net.runtime_pollWait(0x20291c8, 0x72, 0x0)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c068, 0x72, 0x0, 0xc420328000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c068, 0xffffffffffffffff, 0x0)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).accept(0xc42017c000, 0x0, 0x14c8760, 0xc420328000)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:430 +0x1e5
net.(*TCPListener).accept(0xc42000e3e8, 0xc42031c080, 0x1300b60, 0xffffffffffffffff)
  /usr/local/opt/go/libexec/src/net/tcpsock_posix.go:136 +0x2e
net.(*TCPListener).AcceptTCP(0xc42000e3e8, 0xc4201157c0, 0xc4201157c8, 0xc4201157b8)
  /usr/local/opt/go/libexec/src/net/tcpsock.go:215 +0x49
net/http.tcpKeepAliveListener.Accept(0xc42000e3e8, 0x137b3f8, 0xc42031c000, 0x14cd6e0, 0xc420155140)
  /usr/local/opt/go/libexec/src/net/http/server.go:3044 +0x2f
net/http.(*Server).Serve(0xc4200b2370, 0x14cd1a0, 0xc42000e3e8, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:2643 +0x228
net/http.(*Server).ListenAndServe(0xc4200b2370, 0xc4200b2370, 0xc420152de6)
  /usr/local/opt/go/libexec/src/net/http/server.go:2585 +0xb0
net/http.ListenAndServe(0xc420152de6, 0x5, 0x0, 0x0, 0x4, 0xc420152de6)
  /usr/local/opt/go/libexec/src/net/http/server.go:2787 +0x7f
github.com/goby-lang/goby/vm.builtinSimpleServerInstanceMethods.func1.1(0xc420108cc0, 0x15174d0, 0x0, 0x0, 0x0, 0xc420125e00, 0xc420122345)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/simple_server.go:84 +0x562
github.com/goby-lang/goby/vm.(*thread).evalBuiltInMethod(0xc420108cc0, 0x14ccde0, 0xc4201640c0, 0xc42012d6c0, 0x2, 0x0, 0x3, 0x0)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/thread.go:128 +0x202
github.com/goby-lang/goby/vm.glob..func63(0xc420108cc0, 0xc420081320, 0xc4200d7f60, 0x2, 0x2)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/instruction.go:331 +0x365
github.com/goby-lang/goby/vm.(*thread).execInstruction(0xc420108cc0, 0xc420081320, 0xc420109f80)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/thread.go:74 +0x8c
github.com/goby-lang/goby/vm.(*thread).evalCallFrame(0xc420108cc0, 0xc420081320)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/thread.go:41 +0x60
github.com/goby-lang/goby/vm.(*thread).startFromTopFrame(0xc420108cc0)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/thread.go:35 +0x55
github.com/goby-lang/goby/vm.(*VM).startFromTopFrame(0xc42010bf10)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/vm.go:165 +0x2e
github.com/goby-lang/goby/vm.(*VM).ExecBytecodes(0xc42010bf10, 0xc420122000, 0x355, 0x7fff5fbfddf5, 0x17)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/vm.go:123 +0x774
main.main()
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/goby.go:56 +0x3f5

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
  /usr/local/opt/go/libexec/src/runtime/asm_amd64.s:2197 +0x1

goroutine 5 [syscall]:
os/signal.signal_recv(0x0)
  /usr/local/opt/go/libexec/src/runtime/sigqueue.go:116 +0xff
os/signal.loop()
  /usr/local/opt/go/libexec/src/os/signal/signal_unix.go:22 +0x22
created by os/signal.init.1
  /usr/local/opt/go/libexec/src/os/signal/signal_unix.go:28 +0x41

goroutine 6 [select, locked to thread]:
runtime.gopark(0x137b9b8, 0x0, 0x13697a6, 0x6, 0x18, 0x2)
  /usr/local/opt/go/libexec/src/runtime/proc.go:271 +0x13a
runtime.selectgoImpl(0xc42004af50, 0x0, 0x18)
  /usr/local/opt/go/libexec/src/runtime/select.go:423 +0x1364
runtime.selectgo(0xc42004af50)
  /usr/local/opt/go/libexec/src/runtime/select.go:238 +0x1c
runtime.ensureSigM.func1()
  /usr/local/opt/go/libexec/src/runtime/signal_unix.go:434 +0x265
runtime.goexit()
  /usr/local/opt/go/libexec/src/runtime/asm_amd64.s:2197 +0x1

goroutine 7 [chan receive]:
github.com/goby-lang/goby/vm.builtinSimpleServerInstanceMethods.func1.1.1(0xc4201563c0)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/simple_server.go:75 +0x57
created by github.com/goby-lang/goby/vm.builtinSimpleServerInstanceMethods.func1.1
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/simple_server.go:79 +0x3fc

goroutine 8 [runnable]:
github.com/goby-lang/goby/vm.(*thread).evalBuiltInMethod(0xc420256bd0, 0x14ccde0, 0xc4200d6a60, 0x14f17c0, 0x0, 0x1, 0x1, 0x0)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/thread.go:122 +0x73
github.com/goby-lang/goby/vm.glob..func63(0xc420256bd0, 0xc42027e540, 0xc4200d7b20, 0x2, 0x2)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/instruction.go:331 +0x365
github.com/goby-lang/goby/vm.(*thread).execInstruction(0xc420256bd0, 0xc42027e540, 0xc420109050)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/thread.go:74 +0x8c
github.com/goby-lang/goby/vm.(*thread).evalCallFrame(0xc420256bd0, 0xc42027e540)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/thread.go:41 +0x60
github.com/goby-lang/goby/vm.(*thread).startFromTopFrame(0xc420256bd0)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/thread.go:35 +0x55
github.com/goby-lang/goby/vm.(*thread).builtInMethodYield(0xc420256bd0, 0xc420156240, 0xc42005fb88, 0x2, 0x2, 0xc42004bb90)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/thread.go:88 +0x1c5
github.com/goby-lang/goby/vm.newHandler.func1(0x14cd0a0, 0xc4200f20e0, 0xc420174100)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/simple_server.go:114 +0x371
net/http.HandlerFunc.ServeHTTP(0xc420164140, 0x14cd0a0, 0xc4200f20e0, 0xc420174100)
  /usr/local/opt/go/libexec/src/net/http/server.go:1942 +0x44
github.com/goby-lang/goby/Godeps/_workspace/src/github.com/gorilla/mux.(*Router).ServeHTTP(0xc420016f50, 0x14cd0a0, 0xc4200f20e0, 0xc420174100)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/Godeps/_workspace/src/github.com/gorilla/mux/mux.go:98 +0x255
net/http.(*ServeMux).ServeHTTP(0x14faae0, 0x14cd0a0, 0xc4200f20e0, 0xc420174100)
  /usr/local/opt/go/libexec/src/net/http/server.go:2238 +0x130
net/http.serverHandler.ServeHTTP(0xc4200b2370, 0x14cd0a0, 0xc4200f20e0, 0xc420174100)
  /usr/local/opt/go/libexec/src/net/http/server.go:2568 +0x92
net/http.(*conn).serve(0xc420166140, 0x14cd620, 0xc420180040)
  /usr/local/opt/go/libexec/src/net/http/server.go:1825 +0x612
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 10 [runnable]:
syscall.Syscall(0x3, 0x7, 0xc420190000, 0x1000, 0x52, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/syscall/asm_darwin_amd64.s:16 +0x5
syscall.read(0x7, 0xc420190000, 0x1000, 0x1000, 0x72, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/syscall/zsyscall_darwin_amd64.go:973 +0x55
syscall.Read(0x7, 0xc420190000, 0x1000, 0x1000, 0xffffffffffffffff, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/syscall/syscall_unix.go:162 +0x49
net.(*netFD).Read(0xc42017c150, 0xc420190000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:246 +0x13b
net.(*conn).Read(0xc42000e400, 0xc420190000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc42013dd80, 0xc420190000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420156720)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420156720, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420156720, 0xc42000b400, 0x100, 0xf8, 0x135f480, 0xc420040c00, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201552f0, 0xc420050ac8, 0xc420050ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201552f0, 0xc42000b400, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420156720, 0x0, 0xc42000b400, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166280, 0x14cd620, 0xc42013dd40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166280, 0x14cd620, 0xc42013dd40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 11 [runnable]:
sync.runtime_SemacquireMutex(0x1517634)
  /usr/local/opt/go/libexec/src/runtime/sema.go:62 +0x34
sync.(*Mutex).Lock(0x1517630)
  /usr/local/opt/go/libexec/src/sync/mutex.go:87 +0x9d
sync.(*RWMutex).Lock(0x1517630)
  /usr/local/opt/go/libexec/src/sync/rwmutex.go:86 +0x2d
github.com/gorilla/context.Set(0xc420174200, 0x12ef060, 0xc42017e138, 0x1308080, 0xc420184300)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/gorilla/context/context.go:21 +0x31
github.com/goby-lang/goby/Godeps/_workspace/src/github.com/gorilla/mux.setVars(0xc420174200, 0x1308080, 0xc420184300)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/Godeps/_workspace/src/github.com/gorilla/mux/mux.go:262 +0x76
github.com/goby-lang/goby/Godeps/_workspace/src/github.com/gorilla/mux.(*Router).ServeHTTP(0xc420016f50, 0x14cd0a0, 0xc420304000, 0xc420174200)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/Godeps/_workspace/src/github.com/gorilla/mux/mux.go:86 +0x322
net/http.(*ServeMux).ServeHTTP(0x14faae0, 0x14cd0a0, 0xc420304000, 0xc420174200)
  /usr/local/opt/go/libexec/src/net/http/server.go:2238 +0x130
net/http.serverHandler.ServeHTTP(0xc4200b2370, 0x14cd0a0, 0xc420304000, 0xc420174200)
  /usr/local/opt/go/libexec/src/net/http/server.go:2568 +0x92
net/http.(*conn).serve(0xc420166320, 0x14cd620, 0xc4201801c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1825 +0x612
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 12 [runnable]:
sync.(*Mutex).Unlock(0xc42013dfd8)
  /usr/local/opt/go/libexec/src/sync/mutex.go:104 +0xb4
context.propagateCancel(0x14cd620, 0xc42013dfc0, 0x14ca3e0, 0xc4201cbe80)
  /usr/local/opt/go/libexec/src/context/context.go:259 +0xf1
context.WithCancel(0x14cd620, 0xc42013dfc0, 0xc420051c78, 0x4, 0xc420356088)
  /usr/local/opt/go/libexec/src/context/context.go:231 +0x186
net/http.(*conn).readRequest(0xc4201663c0, 0x14cd620, 0xc42013dfc0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:972 +0x59f
net/http.(*conn).serve(0xc4201663c0, 0x14cd620, 0xc42013dfc0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 13 [runnable]:
reflect.Value.FieldByIndex(0x133cca0, 0xc42017a140, 0x99, 0xc42017e278, 0x1, 0x1, 0x0, 0x14d1f60, 0x12efae0)
  /usr/local/opt/go/libexec/src/reflect/value.go:789 +0x2af
reflect.Value.FieldByName(0x133cca0, 0xc42017a140, 0x99, 0x12bd06f, 0x6, 0xc420160d00, 0x200000003, 0xc420160d00)
  /usr/local/opt/go/libexec/src/reflect/value.go:814 +0x103
github.com/goby-lang/goby/Godeps/_workspace/src/github.com/fatih/structs.(*Struct).FillMap(0xc420180a40, 0xc420184510)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/Godeps/_workspace/src/github.com/fatih/structs/structs.go:98 +0x126
github.com/goby-lang/goby/Godeps/_workspace/src/github.com/fatih/structs.(*Struct).Map(0xc420180a40, 0xc42017a140)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/Godeps/_workspace/src/github.com/fatih/structs/structs.go:83 +0x65
github.com/goby-lang/goby/Godeps/_workspace/src/github.com/fatih/structs.Map(0x133cca0, 0xc42017a140, 0x133cca0)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/Godeps/_workspace/src/github.com/fatih/structs/structs.go:448 +0x43
github.com/goby-lang/goby/vm.initRequest(0x14cd0a0, 0xc4203040e0, 0xc420174300, 0x0)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/simple_server.go:137 +0x2c4
github.com/goby-lang/goby/vm.newHandler.func1(0x14cd0a0, 0xc4203040e0, 0xc420174300)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/vm/simple_server.go:113 +0x2d9
net/http.HandlerFunc.ServeHTTP(0xc420164140, 0x14cd0a0, 0xc4203040e0, 0xc420174300)
  /usr/local/opt/go/libexec/src/net/http/server.go:1942 +0x44
github.com/goby-lang/goby/Godeps/_workspace/src/github.com/gorilla/mux.(*Router).ServeHTTP(0xc420016f50, 0x14cd0a0, 0xc4203040e0, 0xc420174300)
  /Users/hachi8833/deve/golang/gopath/sys/src/github.com/goby-lang/goby/Godeps/_workspace/src/github.com/gorilla/mux/mux.go:98 +0x255
net/http.(*ServeMux).ServeHTTP(0x14faae0, 0x14cd0a0, 0xc4203040e0, 0xc420174300)
  /usr/local/opt/go/libexec/src/net/http/server.go:2238 +0x130
net/http.serverHandler.ServeHTTP(0xc4200b2370, 0x14cd0a0, 0xc4203040e0, 0xc420174300)
  /usr/local/opt/go/libexec/src/net/http/server.go:2568 +0x92
net/http.(*conn).serve(0xc420166460, 0x14cd620, 0xc420180340)
  /usr/local/opt/go/libexec/src/net/http/server.go:1825 +0x612
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 14 [runnable]:
net/http.(*connReader).unlock(0xc420180500)
  /usr/local/opt/go/libexec/src/net/http/server.go:639 +0x40
net/http.(*connReader).startBackgroundRead(0xc420180500)
  /usr/local/opt/go/libexec/src/net/http/server.go:653 +0xe0
net/http.(*conn).serve(0xc420166500, 0x14cd620, 0xc4201804c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1815 +0x5dc
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 15 [runnable]:
net.runtime_pollWait(0x2028bc8, 0x72, 0xc)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c3e8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c3e8, 0xc4201ac000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c380, 0xc4201ac000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e428, 0xc4201ac000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420180680, 0xc4201ac000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420182360)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420182360, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420182360, 0xc420174600, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd960)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201841b0, 0xc4201a7ac8, 0xc4201a7ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201841b0, 0xc420174600, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420182360, 0x0, 0xc420174600, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201665a0, 0x14cd620, 0xc420180640, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201665a0, 0x14cd620, 0xc420180640)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 16 [runnable]:
net.runtime_pollWait(0x2028b08, 0x72, 0xd)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c458, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c458, 0xc4201ae000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c3f0, 0xc4201ae000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e430, 0xc4201ae000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420180800, 0xc4201ae000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420182420)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420182420, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420182420, 0xc420174700, 0x100, 0xf8, 0x135f480, 0xc420040c00, 0x15bd960)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420184210, 0xc4201a8ac8, 0xc4201a8ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420184210, 0xc420174700, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420182420, 0x0, 0xc420174700, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166640, 0x14cd620, 0xc4201807c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166640, 0x14cd620, 0xc4201807c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 18 [runnable]:
net.runtime_pollWait(0x2028a48, 0x72, 0xe)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c4c8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c4c8, 0xc4201b8000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c460, 0xc4201b8000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e438, 0xc4201b8000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b2080, 0xc4201b8000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4060)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4060, 0xa, 0x1, 0x0, 0xc4201a29f8, 0x1010966, 0x2025988)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4060, 0xc4201ba000, 0x100, 0xf8, 0x135f480, 0xc420168001, 0x10000015bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b6030, 0xc4201a2ac8, 0xc4201a2ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b6030, 0xc4201ba000, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4060, 0x0, 0xc4201ba000, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166780, 0x14cd620, 0xc4201b2040, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166780, 0x14cd620, 0xc4201b2040)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 19 [runnable]:
net.runtime_pollWait(0x2028988, 0x72, 0xf)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c538, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c538, 0xc4201bc000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c4d0, 0xc4201bc000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e440, 0xc4201bc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b2200, 0xc4201bc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4120)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4120, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4120, 0xc4201ba100, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b6090, 0xc4201a3ac8, 0xc4201a3ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b6090, 0xc4201ba100, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4120, 0x0, 0xc4201ba100, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166820, 0x14cd620, 0xc4201b21c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166820, 0x14cd620, 0xc4201b21c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 20 [runnable]:
syscall.Syscall(0x3, 0x10, 0xc4201c6000, 0x1000, 0x52, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/syscall/asm_darwin_amd64.s:16 +0x5
syscall.read(0x10, 0xc4201c6000, 0x1000, 0x1000, 0x72, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/syscall/zsyscall_darwin_amd64.go:973 +0x55
syscall.Read(0x10, 0xc4201c6000, 0x1000, 0x1000, 0xffffffffffffffff, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/syscall/syscall_unix.go:162 +0x49
net.(*netFD).Read(0xc42017c540, 0xc4201c6000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:246 +0x13b
net.(*conn).Read(0xc42000e448, 0xc4201c6000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b2380, 0xc4201c6000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b41e0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b41e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b41e0, 0xc4201ba200, 0x100, 0xf8, 0x135f480, 0xc420040c00, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b60f0, 0xc4201a4ac8, 0xc4201a4ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b60f0, 0xc4201ba200, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b41e0, 0x0, 0xc4201ba200, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201668c0, 0x14cd620, 0xc4201b2340, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201668c0, 0x14cd620, 0xc4201b2340)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 21 [IO wait]:
net.runtime_pollWait(0x2028808, 0x72, 0x11)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c618, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c618, 0xc4201c8000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c5b0, 0xc4201c8000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e450, 0xc4201c8000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420194580, 0xc4201c8000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201568a0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201568a0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201568a0, 0xc42000b800, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155710, 0xc4201c2ac8, 0xc4201c2ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155710, 0xc42000b800, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201568a0, 0x0, 0xc42000b800, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166960, 0x14cd620, 0xc420194540, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166960, 0x14cd620, 0xc420194540)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 34 [IO wait]:
net.runtime_pollWait(0x2028748, 0x72, 0x12)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc068, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc068, 0xc4201de000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc000, 0xc4201de000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0000, 0xc4201de000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420194700, 0xc4201de000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420156960)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420156960, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420156960, 0xc42000b900, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155770, 0xc4201c3ac8, 0xc4201c3ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155770, 0xc42000b900, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420156960, 0x0, 0xc42000b900, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2000, 0x14cd620, 0xc4201946c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2000, 0x14cd620, 0xc4201946c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 35 [IO wait]:
net.runtime_pollWait(0x2028688, 0x72, 0x13)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc0d8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc0d8, 0xc4201e6000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc070, 0xc4201e6000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0008, 0xc4201e6000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201ca180, 0xc4201e6000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e4060)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e4060, 0x20a, 0x1, 0x0, 0xc4201be9f8, 0x1010966, 0x20261d8)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e4060, 0xc42007e100, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ce0f0, 0xc4201beac8, 0xc4201beac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ce0f0, 0xc42007e100, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e4060, 0x0, 0xc42007e100, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d20a0, 0x14cd620, 0xc4201ca140, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d20a0, 0x14cd620, 0xc4201ca140)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 36 [IO wait]:
net.runtime_pollWait(0x20285c8, 0x72, 0x14)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc148, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc148, 0xc4201e8000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc0e0, 0xc4201e8000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0010, 0xc4201e8000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201ca380, 0xc4201e8000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e4120)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e4120, 0x1011a0a, 0xc4201bf9a0, 0x2060000, 0x1054380, 0xc4201bf998, 0xa8)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e4120, 0xc42007e200, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ce1b0, 0xc4201bfac8, 0xc4201bfac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ce1b0, 0xc42007e200, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e4120, 0x0, 0xc42007e200, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2140, 0x14cd620, 0xc4201ca340, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2140, 0x14cd620, 0xc4201ca340)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 37 [IO wait]:
net.runtime_pollWait(0x2028508, 0x72, 0x15)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc1b8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc1b8, 0xc4201ea000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc150, 0xc4201ea000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0018, 0xc4201ea000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201ca580, 0xc4201ea000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e41e0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e41e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e41e0, 0xc42007e300, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ce270, 0xc4201c0ac8, 0xc4201c0ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ce270, 0xc42007e300, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e41e0, 0x0, 0xc42007e300, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d21e0, 0x14cd620, 0xc4201ca540, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d21e0, 0x14cd620, 0xc4201ca540)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 22 [IO wait]:
net.runtime_pollWait(0x2028448, 0x72, 0x16)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c688, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c688, 0xc4201ec000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c620, 0xc4201ec000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e458, 0xc4201ec000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201ca700, 0xc4201ec000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e42a0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e42a0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e42a0, 0xc42007e400, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ce2d0, 0xc4201c1ac8, 0xc4201c1ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ce2d0, 0xc42007e400, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e42a0, 0x0, 0xc42007e400, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166a00, 0x14cd620, 0xc4201ca6c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166a00, 0x14cd620, 0xc4201ca6c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 23 [IO wait]:
net.runtime_pollWait(0x2028388, 0x72, 0x17)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c6f8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c6f8, 0xc4201f6000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c690, 0xc4201f6000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e460, 0xc4201f6000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201ca880, 0xc4201f6000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e4360)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e4360, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e4360, 0xc42007e500, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ce330, 0xc4201f2ac8, 0xc4201f2ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ce330, 0xc42007e500, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e4360, 0x0, 0xc42007e500, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166aa0, 0x14cd620, 0xc4201ca840, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166aa0, 0x14cd620, 0xc4201ca840)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 24 [IO wait]:
net.runtime_pollWait(0x20282c8, 0x72, 0x18)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c768, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c768, 0xc4201f8000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c700, 0xc4201f8000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e468, 0xc4201f8000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420194a00, 0xc4201f8000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420156a20)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420156a20, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420156a20, 0xc42000ba00, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201558f0, 0xc4201c4ac8, 0xc4201c4ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201558f0, 0xc42000ba00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420156a20, 0x0, 0xc42000ba00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166b40, 0x14cd620, 0xc4201949c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166b40, 0x14cd620, 0xc4201949c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 38 [IO wait]:
net.runtime_pollWait(0x2064fa8, 0x72, 0x19)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc228, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc228, 0xc4201fa000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc1c0, 0xc4201fa000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0020, 0xc4201fa000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420194b80, 0xc4201fa000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420156ae0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420156ae0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420156ae0, 0xc42000bb00, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155950, 0xc4201c5ac8, 0xc4201c5ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155950, 0xc42000bb00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420156ae0, 0x0, 0xc42000bb00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2280, 0x14cd620, 0xc420194b40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2280, 0x14cd620, 0xc420194b40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 39 [IO wait]:
net.runtime_pollWait(0x2064ee8, 0x72, 0x1a)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc298, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc298, 0xc4201fc000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc230, 0xc4201fc000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0028, 0xc4201fc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420194d00, 0xc4201fc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420156ba0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420156ba0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420156ba0, 0xc42000bc00, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201559b0, 0xc4201eeac8, 0xc4201eeac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201559b0, 0xc42000bc00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420156ba0, 0x0, 0xc42000bc00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2320, 0x14cd620, 0xc420194cc0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2320, 0x14cd620, 0xc420194cc0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 40 [IO wait]:
net.runtime_pollWait(0x2064e28, 0x72, 0x1b)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc308, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc308, 0xc4201fe000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc2a0, 0xc4201fe000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0030, 0xc4201fe000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420194e80, 0xc4201fe000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420156c60)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420156c60, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420156c60, 0xc42000bd00, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155a10, 0xc4201efac8, 0xc4201efac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155a10, 0xc42000bd00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420156c60, 0x0, 0xc42000bd00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d23c0, 0x14cd620, 0xc420194e40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d23c0, 0x14cd620, 0xc420194e40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 41 [IO wait]:
net.runtime_pollWait(0x2064d68, 0x72, 0x1c)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc378, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc378, 0xc420200000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc310, 0xc420200000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0038, 0xc420200000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195000, 0xc420200000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420156d20)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420156d20, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420156d20, 0xc42000be00, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155a70, 0xc4201f0ac8, 0xc4201f0ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155a70, 0xc42000be00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420156d20, 0x0, 0xc42000be00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2460, 0x14cd620, 0xc420194fc0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2460, 0x14cd620, 0xc420194fc0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 42 [IO wait]:
net.runtime_pollWait(0x2064ca8, 0x72, 0x1d)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc3e8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc3e8, 0xc420204000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc380, 0xc420204000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0040, 0xc420204000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195180, 0xc420204000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420156de0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420156de0, 0x20a, 0x100, 0xff, 0xc4201f19f8, 0x10108e2, 0x2024260)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420156de0, 0xc42000bf00, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155ad0, 0xc4201f1ac8, 0xc4201f1ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155ad0, 0xc42000bf00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420156de0, 0x0, 0xc42000bf00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2500, 0x14cd620, 0xc420195140, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2500, 0x14cd620, 0xc420195140)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 43 [IO wait]:
net.runtime_pollWait(0x2064be8, 0x72, 0x1e)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc458, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc458, 0xc42020e000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc3f0, 0xc42020e000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0048, 0xc42020e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195300, 0xc42020e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420156ea0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420156ea0, 0xa, 0x1, 0x0, 0xc42020a9f8, 0x1010966, 0x2026bf0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420156ea0, 0xc420210000, 0x100, 0xf8, 0x135f480, 0xc420168001, 0x10000015bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155b30, 0xc42020aac8, 0xc42020aac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155b30, 0xc420210000, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420156ea0, 0x0, 0xc420210000, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d25a0, 0x14cd620, 0xc4201952c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d25a0, 0x14cd620, 0xc4201952c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 44 [IO wait]:
net.runtime_pollWait(0x2064b28, 0x72, 0x1f)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc4c8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc4c8, 0xc420214000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc460, 0xc420214000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0050, 0xc420214000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201cad80, 0xc420214000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e4420)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e4420, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e4420, 0xc42007e600, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ce630, 0xc4201f3ac8, 0xc4201f3ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ce630, 0xc42007e600, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e4420, 0x0, 0xc42007e600, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2640, 0x14cd620, 0xc4201cad40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2640, 0x14cd620, 0xc4201cad40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 45 [IO wait]:
net.runtime_pollWait(0x2064a68, 0x72, 0x20)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc538, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc538, 0xc420216000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc4d0, 0xc420216000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0058, 0xc420216000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201caf80, 0xc420216000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e44e0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e44e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e44e0, 0xc42007e700, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ce6f0, 0xc4201f4ac8, 0xc4201f4ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ce6f0, 0xc42007e700, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e44e0, 0x0, 0xc42007e700, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d26e0, 0x14cd620, 0xc4201caf40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d26e0, 0x14cd620, 0xc4201caf40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 46 [IO wait]:
net.runtime_pollWait(0x20649a8, 0x72, 0x21)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc5a8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc5a8, 0xc420218000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc540, 0xc420218000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0060, 0xc420218000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201cb180, 0xc420218000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e45a0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e45a0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e45a0, 0xc42007e800, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ce7b0, 0xc4201f5ac8, 0xc4201f5ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ce7b0, 0xc42007e800, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e45a0, 0x0, 0xc42007e800, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2780, 0x14cd620, 0xc4201cb140, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2780, 0x14cd620, 0xc4201cb140)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 50 [IO wait]:
net.runtime_pollWait(0x20648e8, 0x72, 0x22)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a068, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a068, 0xc420222000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a000, 0xc420222000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c000, 0xc420222000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195480, 0xc420222000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420156f60)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420156f60, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420156f60, 0xc420210100, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155b90, 0xc42020bac8, 0xc42020bac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155b90, 0xc420210100, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420156f60, 0x0, 0xc420210100, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e000, 0x14cd620, 0xc420195440, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e000, 0x14cd620, 0xc420195440)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 51 [IO wait]:
net.runtime_pollWait(0x2064828, 0x72, 0x23)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a0d8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a0d8, 0xc420226000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a070, 0xc420226000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c008, 0xc420226000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195600, 0xc420226000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157020)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157020, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157020, 0xc420210200, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155bf0, 0xc42020cac8, 0xc42020cac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155bf0, 0xc420210200, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157020, 0x0, 0xc420210200, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e0a0, 0x14cd620, 0xc4201955c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e0a0, 0x14cd620, 0xc4201955c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 52 [IO wait]:
net.runtime_pollWait(0x2064768, 0x72, 0x24)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a148, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a148, 0xc420228000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a0e0, 0xc420228000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c010, 0xc420228000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195780, 0xc420228000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201570e0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201570e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201570e0, 0xc420210300, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155c50, 0xc42020dac8, 0xc42020dac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155c50, 0xc420210300, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201570e0, 0x0, 0xc420210300, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e140, 0x14cd620, 0xc420195740, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e140, 0x14cd620, 0xc420195740)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 53 [IO wait]:
net.runtime_pollWait(0x20646a8, 0x72, 0x25)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a1b8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a1b8, 0xc42022a000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a150, 0xc42022a000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c018, 0xc42022a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195900, 0xc42022a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201571a0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201571a0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201571a0, 0xc420210400, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155cb0, 0xc420206ac8, 0xc420206ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155cb0, 0xc420210400, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201571a0, 0x0, 0xc420210400, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e1e0, 0x14cd620, 0xc4201958c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e1e0, 0x14cd620, 0xc4201958c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 54 [IO wait]:
net.runtime_pollWait(0x20645e8, 0x72, 0x26)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a228, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a228, 0xc42022c000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a1c0, 0xc42022c000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c020, 0xc42022c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195a80, 0xc42022c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157260)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157260, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157260, 0xc420210500, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155d10, 0xc420207ac8, 0xc420207ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155d10, 0xc420210500, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157260, 0x0, 0xc420210500, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e280, 0x14cd620, 0xc420195a40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e280, 0x14cd620, 0xc420195a40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 55 [IO wait]:
net.runtime_pollWait(0x2064528, 0x72, 0x27)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a298, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a298, 0xc420230000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a230, 0xc420230000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c028, 0xc420230000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195c00, 0xc420230000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157320)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157320, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157320, 0xc420210600, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155d70, 0xc420208ac8, 0xc420208ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155d70, 0xc420210600, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157320, 0x0, 0xc420210600, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e320, 0x14cd620, 0xc420195bc0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e320, 0x14cd620, 0xc420195bc0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 56 [IO wait]:
net.runtime_pollWait(0x2064468, 0x72, 0x28)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a308, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a308, 0xc420232000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a2a0, 0xc420232000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c030, 0xc420232000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195d80, 0xc420232000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201573e0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201573e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201573e0, 0xc420210700, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155dd0, 0xc420209ac8, 0xc420209ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155dd0, 0xc420210700, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201573e0, 0x0, 0xc420210700, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e3c0, 0x14cd620, 0xc420195d40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e3c0, 0x14cd620, 0xc420195d40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 57 [IO wait]:
net.runtime_pollWait(0x20643a8, 0x72, 0x29)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a378, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a378, 0xc42023c000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a310, 0xc42023c000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c038, 0xc42023c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420195f00, 0xc42023c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201574a0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201574a0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201574a0, 0xc420210800, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155e30, 0xc420238ac8, 0xc420238ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155e30, 0xc420210800, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201574a0, 0x0, 0xc420210800, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e460, 0x14cd620, 0xc420195ec0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e460, 0x14cd620, 0xc420195ec0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 58 [IO wait]:
net.runtime_pollWait(0x20642e8, 0x72, 0x2a)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a3e8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a3e8, 0xc42023e000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a380, 0xc42023e000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c040, 0xc42023e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b2980, 0xc42023e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b42a0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b42a0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b42a0, 0xc4201ba300, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b64b0, 0xc4201a5ac8, 0xc4201a5ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b64b0, 0xc4201ba300, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b42a0, 0x0, 0xc4201ba300, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e500, 0x14cd620, 0xc4201b2940, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e500, 0x14cd620, 0xc4201b2940)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 59 [IO wait]:
net.runtime_pollWait(0x2064228, 0x72, 0x2b)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a458, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a458, 0xc420240000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a3f0, 0xc420240000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c048, 0xc420240000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b2b80, 0xc420240000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4360)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4360, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4360, 0xc4201ba400, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b6570, 0xc420234ac8, 0xc420234ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b6570, 0xc4201ba400, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4360, 0x0, 0xc4201ba400, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e5a0, 0x14cd620, 0xc4201b2b40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e5a0, 0x14cd620, 0xc4201b2b40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 60 [IO wait]:
net.runtime_pollWait(0x2064168, 0x72, 0x2c)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a4c8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a4c8, 0xc420244000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a460, 0xc420244000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c050, 0xc420244000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242080, 0xc420244000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157560)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157560, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157560, 0xc420210900, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155e90, 0xc420239ac8, 0xc420239ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155e90, 0xc420210900, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157560, 0x0, 0xc420210900, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e640, 0x14cd620, 0xc420242040, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e640, 0x14cd620, 0xc420242040)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 61 [IO wait]:
net.runtime_pollWait(0x20640a8, 0x72, 0x2d)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a538, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a538, 0xc420246000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a4d0, 0xc420246000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c058, 0xc420246000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242200, 0xc420246000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157620)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157620, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157620, 0xc420210a00, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155ef0, 0xc42023aac8, 0xc42023aac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155ef0, 0xc420210a00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157620, 0x0, 0xc420210a00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e6e0, 0x14cd620, 0xc4202421c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e6e0, 0x14cd620, 0xc4202421c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 62 [IO wait]:
net.runtime_pollWait(0x20a0f00, 0x72, 0x2e)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a5a8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a5a8, 0xc420248000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a540, 0xc420248000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c060, 0xc420248000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242380, 0xc420248000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201576e0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201576e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201576e0, 0xc420210b00, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155f50, 0xc42023bac8, 0xc42023bac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155f50, 0xc420210b00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201576e0, 0x0, 0xc420210b00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e780, 0x14cd620, 0xc420242340, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e780, 0x14cd620, 0xc420242340)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 63 [IO wait]:
net.runtime_pollWait(0x20a0e40, 0x72, 0x2f)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a618, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a618, 0xc420252000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a5b0, 0xc420252000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c068, 0xc420252000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242500, 0xc420252000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201577a0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201577a0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201577a0, 0xc420210c00, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420155fb0, 0xc42024eac8, 0xc42024eac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420155fb0, 0xc420210c00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201577a0, 0x0, 0xc420210c00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e820, 0x14cd620, 0xc4202424c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e820, 0x14cd620, 0xc4202424c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 64 [IO wait]:
net.runtime_pollWait(0x20a0d80, 0x72, 0x30)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a688, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a688, 0xc420254000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a620, 0xc420254000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c070, 0xc420254000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b2f80, 0xc420254000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4420)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4420, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4420, 0xc4201ba500, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b67b0, 0xc420235ac8, 0xc420235ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b67b0, 0xc4201ba500, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4420, 0x0, 0xc4201ba500, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e8c0, 0x14cd620, 0xc4201b2f40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e8c0, 0x14cd620, 0xc4201b2f40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 65 [IO wait]:
net.runtime_pollWait(0x20a0cc0, 0x72, 0x31)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a6f8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a6f8, 0xc420258000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a690, 0xc420258000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c078, 0xc420258000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242680, 0xc420258000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157860)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157860, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157860, 0xc420210d00, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256030, 0xc42024fac8, 0xc42024fac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256030, 0xc420210d00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157860, 0x0, 0xc420210d00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021e960, 0x14cd620, 0xc420242640, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021e960, 0x14cd620, 0xc420242640)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 66 [IO wait]:
net.runtime_pollWait(0x20a0c00, 0x72, 0x32)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a768, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a768, 0xc42025a000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a700, 0xc42025a000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c080, 0xc42025a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b3200, 0xc42025a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b44e0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b44e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b44e0, 0xc4201ba600, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b68d0, 0xc420236ac8, 0xc420236ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b68d0, 0xc4201ba600, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b44e0, 0x0, 0xc4201ba600, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021ea00, 0x14cd620, 0xc4201b31c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021ea00, 0x14cd620, 0xc4201b31c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 67 [IO wait]:
net.runtime_pollWait(0x20a0b40, 0x72, 0x33)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a7d8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a7d8, 0xc42025c000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a770, 0xc42025c000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c088, 0xc42025c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242800, 0xc42025c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157920)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157920, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157920, 0xc420210e00, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256090, 0xc420250ac8, 0xc420250ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256090, 0xc420210e00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157920, 0x0, 0xc420210e00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021eaa0, 0x14cd620, 0xc4202427c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021eaa0, 0x14cd620, 0xc4202427c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 68 [IO wait]:
net.runtime_pollWait(0x20a0a80, 0x72, 0x34)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a848, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a848, 0xc42025e000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a7e0, 0xc42025e000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c090, 0xc42025e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)Total of 74 requests completed

  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242980, 0xc42025e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201579e0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201579e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201579e0, 0xc420210f00, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4202560f0, 0xc420251ac8, 0xc420251ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4202560f0, 0xc420210f00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201579e0, 0x0, 0xc420210f00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021eb40, 0x14cd620, 0xc420242940, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021eb40, 0x14cd620, 0xc420242940)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 69 [IO wait]:
net.runtime_pollWait(0x20a09c0, 0x72, 0x35)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a8b8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a8b8, 0xc420262000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a850, 0xc420262000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c098, 0xc420262000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242b00, 0xc420262000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157aa0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157aa0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157aa0, 0xc420211000, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256150, 0xc42024aac8, 0xc42024aac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256150, 0xc420211000, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157aa0, 0x0, 0xc420211000, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021ebe0, 0x14cd620, 0xc420242ac0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021ebe0, 0x14cd620, 0xc420242ac0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 70 [IO wait]:
net.runtime_pollWait(0x20a0900, 0x72, 0x36)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a928, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a928, 0xc420264000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a8c0, 0xc420264000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c0a0, 0xc420264000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242c80, 0xc420264000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157b60)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157b60, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157b60, 0xc420211100, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4202561b0, 0xc42024bac8, 0xc42024bac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4202561b0, 0xc420211100, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157b60, 0x0, 0xc420211100, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021ec80, 0x14cd620, 0xc420242c40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021ec80, 0x14cd620, 0xc420242c40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 71 [IO wait]:
net.runtime_pollWait(0x20a0840, 0x72, 0x37)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021a998, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021a998, 0xc420266000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a930, 0xc420266000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c0a8, 0xc420266000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242e00, 0xc420266000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157c20)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157c20, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157c20, 0xc420211200, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256210, 0xc42024cac8, 0xc42024cac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256210, 0xc420211200, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157c20, 0x0, 0xc420211200, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021ed20, 0x14cd620, 0xc420242dc0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021ed20, 0x14cd620, 0xc420242dc0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 72 [IO wait]:
net.runtime_pollWait(0x20a0780, 0x72, 0x38)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021aa08, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021aa08, 0xc420268000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021a9a0, 0xc420268000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c0b0, 0xc420268000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420242f80, 0xc420268000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157ce0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157ce0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157ce0, 0xc420211300, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256270, 0xc42024dac8, 0xc42024dac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256270, 0xc420211300, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157ce0, 0x0, 0xc420211300, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021edc0, 0x14cd620, 0xc420242f40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021edc0, 0x14cd620, 0xc420242f40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 73 [IO wait]:
net.runtime_pollWait(0x20a06c0, 0x72, 0x39)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021aa78, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021aa78, 0xc420274000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021aa10, 0xc420274000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c0b8, 0xc420274000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420243100, 0xc420274000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157da0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157da0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157da0, 0xc420211400, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4202562d0, 0xc420270ac8, 0xc420270ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4202562d0, 0xc420211400, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157da0, 0x0, 0xc420211400, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021ee60, 0x14cd620, 0xc4202430c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021ee60, 0x14cd620, 0xc4202430c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 74 [IO wait]:
net.runtime_pollWait(0x20a0600, 0x72, 0x3a)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021aae8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021aae8, 0xc420276000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021aa80, 0xc420276000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c0c0, 0xc420276000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420243280, 0xc420276000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157e60)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157e60, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157e60, 0xc420211500, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256330, 0xc420271ac8, 0xc420271ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256330, 0xc420211500, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157e60, 0x0, 0xc420211500, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021ef00, 0x14cd620, 0xc420243240, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021ef00, 0x14cd620, 0xc420243240)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 75 [IO wait]:
net.runtime_pollWait(0x20a0540, 0x72, 0x3b)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021ab58, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021ab58, 0xc420278000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021aaf0, 0xc420278000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c0c8, 0xc420278000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420243400, 0xc420278000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420157f20)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420157f20, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420157f20, 0xc420211600, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256390, 0xc420272ac8, 0xc420272ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256390, 0xc420211600, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420157f20, 0x0, 0xc420211600, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021efa0, 0x14cd620, 0xc4202433c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021efa0, 0x14cd620, 0xc4202433c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 76 [IO wait]:
net.runtime_pollWait(0x20a0480, 0x72, 0x3c)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021abc8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021abc8, 0xc42027a000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021ab60, 0xc42027a000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c0d0, 0xc42027a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b3880, 0xc42027a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b45a0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b45a0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b45a0, 0xc4201ba700, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b6cf0, 0xc420237ac8, 0xc420237ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b6cf0, 0xc4201ba700, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b45a0, 0x0, 0xc4201ba700, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021f040, 0x14cd620, 0xc4201b3840, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021f040, 0x14cd620, 0xc4201b3840)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 77 [IO wait]:
net.runtime_pollWait(0x20a03c0, 0x72, 0x3d)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021ac38, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021ac38, 0xc420280000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021abd0, 0xc420280000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c0d8, 0xc420280000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420243580, 0xc420280000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc42027e000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc42027e000, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc42027e000, 0xc420211700, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4202563f0, 0xc420273ac8, 0xc420273ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4202563f0, 0xc420211700, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc42027e000, 0x0, 0xc420211700, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021f0e0, 0x14cd620, 0xc420243540, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021f0e0, 0x14cd620, 0xc420243540)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 78 [IO wait]:
net.runtime_pollWait(0x20a0300, 0x72, 0x3e)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021aca8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021aca8, 0xc420282000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021ac40, 0xc420282000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c0e0, 0xc420282000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b3b00, 0xc420282000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4660)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4660, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4660, 0xc4201ba800, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b6e10, 0xc42026cac8, 0xc42026cac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b6e10, 0xc4201ba800, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4660, 0x0, 0xc4201ba800, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021f180, 0x14cd620, 0xc4201b3ac0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021f180, 0x14cd620, 0xc4201b3ac0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 79 [IO wait]:
net.runtime_pollWait(0x20a0240, 0x72, 0x3f)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42021ad18, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42021ad18, 0xc42028c000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42021acb0, 0xc42028c000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42021c0e8, 0xc42028c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420243700, 0xc42028c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc42027e0c0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc42027e0c0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc42027e0c0, 0xc420211800, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256450, 0xc420288ac8, 0xc420288ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256450, 0xc420211800, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc42027e0c0, 0x0, 0xc420211800, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42021f220, 0x14cd620, 0xc4202436c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42021f220, 0x14cd620, 0xc4202436c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 25 [IO wait]:
net.runtime_pollWait(0x20a0180, 0x72, 0x40)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c7d8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c7d8, 0xc420290000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c770, 0xc420290000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e470, 0xc420290000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b3d00, 0xc420290000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4720)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4720, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4720, 0xc4201ba900, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b6ed0, 0xc42026dac8, 0xc42026dac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b6ed0, 0xc4201ba900, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4720, 0x0, 0xc4201ba900, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166be0, 0x14cd620, 0xc4201b3cc0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166be0, 0x14cd620, 0xc4201b3cc0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 26 [IO wait]:
net.runtime_pollWait(0x20a00c0, 0x72, 0x41)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c848, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c848, 0xc420292000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c7e0, 0xc420292000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e478, 0xc420292000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420243980, 0xc420292000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc42027e180)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc42027e180, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc42027e180, 0xc420211900, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256570, 0xc420289ac8, 0xc420289ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256570, 0xc420211900, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc42027e180, 0x0, 0xc420211900, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166c80, 0x14cd620, 0xc420243940, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166c80, 0x14cd620, 0xc420243940)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 27 [IO wait]:
net.runtime_pollWait(0x20a0000, 0x72, 0x42)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c8b8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c8b8, 0xc420294000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c850, 0xc420294000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e480, 0xc420294000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201b3e80, 0xc420294000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b47e0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b47e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b47e0, 0xc4201baa00, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b6f30, 0xc42026eac8, 0xc42026eac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b6f30, 0xc4201baa00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b47e0, 0x0, 0xc4201baa00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166d20, 0x14cd620, 0xc4201b3e40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166d20, 0x14cd620, 0xc4201b3e40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 28 [IO wait]:
net.runtime_pollWait(0x202e188, 0x72, 0x43)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c928, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c928, 0xc420298000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c8c0, 0xc420298000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e488, 0xc420298000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420296000, 0xc420298000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b48a0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b48a0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b48a0, 0xc4201bab00, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b6f90, 0xc42026fac8, 0xc42026fac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b6f90, 0xc4201bab00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b48a0, 0x0, 0xc4201bab00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166dc0, 0x14cd620, 0xc4201b3fc0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166dc0, 0x14cd620, 0xc4201b3fc0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 29 [IO wait]:
net.runtime_pollWait(0x202e0c8, 0x72, 0x44)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c998, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c998, 0xc42029a000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c930, 0xc42029a000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e490, 0xc42029a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420296180, 0xc42029a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4960)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4960, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4960, 0xc4201bac00, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b6ff0, 0xc420284ac8, 0xc420284ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b6ff0, 0xc4201bac00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4960, 0x0, 0xc4201bac00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166e60, 0x14cd620, 0xc420296140, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166e60, 0x14cd620, 0xc420296140)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 30 [IO wait]:
net.runtime_pollWait(0x202e008, 0x72, 0x45)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017ca08, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017ca08, 0xc42029c000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c9a0, 0xc42029c000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e498, 0xc42029c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420296300, 0xc42029c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4a20)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4a20, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4a20, 0xc4201bad00, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b7050, 0xc420285ac8, 0xc420285ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b7050, 0xc4201bad00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4a20, 0x0, 0xc4201bad00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166f00, 0x14cd620, 0xc4202962c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166f00, 0x14cd620, 0xc4202962c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 31 [IO wait]:
net.runtime_pollWait(0x202df48, 0x72, 0x46)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017ca78, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017ca78, 0xc42029e000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017ca10, 0xc42029e000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e4a0, 0xc42029e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420296480, 0xc42029e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4ae0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4ae0, 0x1518a0a, 0x20a0fc0, 0xa8, 0xc420286a00, 0x1024c96, 0x20a0ff0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4ae0, 0xc4201bae00, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b70b0, 0xc420286ac8, 0xc420286ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b70b0, 0xc4201bae00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4ae0, 0x0, 0xc4201bae00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420166fa0, 0x14cd620, 0xc420296440, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420166fa0, 0x14cd620, 0xc420296440)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 32 [IO wait]:
net.runtime_pollWait(0x202de88, 0x72, 0x47)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017cae8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017cae8, 0xc4202a0000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017ca80, 0xc4202a0000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e4a8, 0xc4202a0000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420296600, 0xc4202a0000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4ba0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4ba0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4ba0, 0xc4201baf00, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b7110, 0xc420287ac8, 0xc420287ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b7110, 0xc4201baf00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4ba0, 0x0, 0xc4201baf00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420167040, 0x14cd620, 0xc4202965c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420167040, 0x14cd620, 0xc4202965c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 33 [IO wait]:
net.runtime_pollWait(0x202ddc8, 0x72, 0x48)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017cb58, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017cb58, 0xc4202aa000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017caf0, 0xc4202aa000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e4b0, 0xc4202aa000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420296780, 0xc4202aa000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4c60)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4c60, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4c60, 0xc4201bb000, 0x100, 0xf8, 0x135f480, 0xc420072000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b7170, 0xc4202a6ac8, 0xc4202a6ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b7170, 0xc4201bb000, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4c60, 0x0, 0xc4201bb000, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201670e0, 0x14cd620, 0xc420296740, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201670e0, 0x14cd620, 0xc420296740)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 82 [IO wait]:
net.runtime_pollWait(0x202dd08, 0x72, 0x49)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017cbc8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017cbc8, 0xc4202ac000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017cb60, 0xc4202ac000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e4b8, 0xc4202ac000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201cb300, 0xc4202ac000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e4660)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e4660, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e4660, 0xc42007e900, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ce810, 0xc4202a2ac8, 0xc4202a2ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ce810, 0xc42007e900, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e4660, 0x0, 0xc42007e900, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420167180, 0x14cd620, 0xc4201cb2c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420167180, 0x14cd620, 0xc4201cb2c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 83 [IO wait]:
net.runtime_pollWait(0x202dc48, 0x72, 0x4a)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017cc38, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017cc38, 0xc4202ae000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017cbd0, 0xc4202ae000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e4c0, 0xc4202ae000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420243f80, 0xc4202ae000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc42027e240)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc42027e240, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc42027e240, 0xc420211a00, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256930, 0xc42028aac8, 0xc42028aac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256930, 0xc420211a00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc42027e240, 0x0, 0xc420211a00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc420167220, 0x14cd620, 0xc420243f40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc420167220, 0x14cd620, 0xc420243f40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 47 [IO wait]:
net.runtime_pollWait(0x202db88, 0x72, 0x4b)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc618, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc618, 0xc4202b2000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc5b0, 0xc4202b2000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0068, 0xc4202b2000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201cb500, 0xc4202b2000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e4720)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e4720, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e4720, 0xc42007ea00, 0x100, 0xf8, 0x135f480, 0xc420040c00, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ce8d0, 0xc4202a3ac8, 0xc4202a3ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ce8d0, 0xc42007ea00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e4720, 0x0, 0xc42007ea00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2820, 0x14cd620, 0xc4201cb4c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2820, 0x14cd620, 0xc4201cb4c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 48 [IO wait]:
net.runtime_pollWait(0x202dac8, 0x72, 0x4c)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc688, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc688, 0xc4202b4000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc620, 0xc4202b4000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0070, 0xc4202b4000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4202b0100, 0xc4202b4000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc42027e300)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc42027e300, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc42027e300, 0xc420211b00, 0x100, 0xf8, 0x135f480, 0xc420040c00, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256990, 0xc42028bac8, 0xc42028bac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256990, 0xc420211b00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc42027e300, 0x0, 0xc420211b00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d28c0, 0x14cd620, 0xc4202b00c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d28c0, 0x14cd620, 0xc4202b00c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 49 [IO wait]:
net.runtime_pollWait(0x202da08, 0x72, 0x4d)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc6f8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc6f8, 0xc4202be000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc690, 0xc4202be000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0078, 0xc4202be000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4202b0280, 0xc4202be000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc42027e3c0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc42027e3c0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc42027e3c0, 0xc420211c00, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4202569f0, 0xc4202baac8, 0xc4202baac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4202569f0, 0xc420211c00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc42027e3c0, 0x0, 0xc420211c00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2960, 0x14cd620, 0xc4202b0240, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2960, 0x14cd620, 0xc4202b0240)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 98 [IO wait]:
net.runtime_pollWait(0x202d948, 0x72, 0x4e)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc768, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc768, 0xc4202c2000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc700, 0xc4202c2000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0080, 0xc4202c2000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4202b0400, 0xc4202c2000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc42027e480)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc42027e480, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc42027e480, 0xc420211d00, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd000)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc420256a50, 0xc4202bbac8, 0xc4202bbac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc420256a50, 0xc420211d00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc42027e480, 0x0, 0xc420211d00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2a00, 0x14cd620, 0xc4202b03c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2a00, 0x14cd620, 0xc4202b03c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 99 [IO wait]:
net.runtime_pollWait(0x202d888, 0x72, 0x4f)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc7d8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc7d8, 0xc4202c4000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc770, 0xc4202c4000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0088, 0xc4202c4000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420296900, 0xc4202c4000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4d20)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4d20, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4d20, 0xc4201bb100, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b71d0, 0xc4202a7ac8, 0xc4202a7ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b71d0, 0xc4201bb100, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4d20, 0x0, 0xc4201bb100, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2aa0, 0x14cd620, 0xc4202968c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2aa0, 0x14cd620, 0xc4202968c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 100 [IO wait]:
net.runtime_pollWait(0x202d7c8, 0x72, 0x50)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc848, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc848, 0xc4202ce000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc7e0, 0xc4202ce000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0090, 0xc4202ce000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201cb900, 0xc4202ce000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e47e0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e47e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e47e0, 0xc42007eb00, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201ceb10, 0xc4202a4ac8, 0xc4202a4ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201ceb10, 0xc42007eb00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e47e0, 0x0, 0xc42007eb00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2b40, 0x14cd620, 0xc4201cb8c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2b40, 0x14cd620, 0xc4201cb8c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 101 [IO wait]:
net.runtime_pollWait(0x202d708, 0x72, 0x51)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc8b8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc8b8, 0xc4202d0000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc850, 0xc4202d0000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d0098, 0xc4202d0000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420296a80, 0xc4202d0000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201b4de0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201b4de0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201b4de0, 0xc4201bb200, 0x100, 0xf8, 0x135f480, 0xc420168400, 0x15bde10)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201b7230, 0xc4202a8ac8, 0xc4202a8ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201b7230, 0xc4201bb200, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201b4de0, 0x0, 0xc4201bb200, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2be0, 0x14cd620, 0xc420296a40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2be0, 0x14cd620, 0xc420296a40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 102 [IO wait]:
net.runtime_pollWait(0x202d648, 0x72, 0x52)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc928, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc928, 0xc4202dc000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc8c0, 0xc4202dc000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d00a0, 0xc4202dc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201cbd80, 0xc4202dc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e4960)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e4960, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e4960, 0xc42007ed00, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201cecf0, 0xc4202b6ac8, 0xc4202b6ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201cecf0, 0xc42007ed00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e4960, 0x0, 0xc42007ed00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2c80, 0x14cd620, 0xc4201cbd40, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2c80, 0x14cd620, 0xc4201cbd40)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 103 [IO wait]:
net.runtime_pollWait(0x202d588, 0x72, 0x53)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc4201cc998, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc4201cc998, 0xc4202da000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc4201cc930, 0xc4202da000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc4201d00a8, 0xc4202da000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc4201cbc00, 0xc4202da000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc4201e48a0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc4201e48a0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc4201e48a0, 0xc42007ec00, 0x100, 0xf8, 0x135f480, 0xc420168000, 0x15bd4b0)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201cec90, 0xc4202a5ac8, 0xc4202a5ac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201cec90, 0xc42007ec00, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc4201e48a0, 0x0, 0xc42007ec00, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc4201d2d20, 0x14cd620, 0xc4201cbbc0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc4201d2d20, 0x14cd620, 0xc4201cbbc0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 84 [IO wait]:
net.runtime_pollWait(0x2029108, 0x72, 0x5)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c0d8, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c0d8, 0xc420180091, 0x1)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c070, 0xc420180091, 0x1, 0x1, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e3f0, 0xc420180091, 0x1, 0x1, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).backgroundRead(0xc420180080)
  /usr/local/opt/go/libexec/src/net/http/server.go:656 +0x58
created by net/http.(*connReader).startBackgroundRead
  /usr/local/opt/go/libexec/src/net/http/server.go:652 +0xdf

goroutine 80 [runnable]:
net/http.(*connReader).backgroundRead(0xc42013dc00)
  /usr/local/opt/go/libexec/src/net/http/server.go:655
created by net/http.(*connReader).startBackgroundRead
  /usr/local/opt/go/libexec/src/net/http/server.go:652 +0xdf

goroutine 114 [IO wait]:
net.runtime_pollWait(0x2028ec8, 0x72, 0x8)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42017c228, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42017c228, 0xc420180211, 0x1)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42017c1c0, 0xc420180211, 0x1, 0x1, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc42000e408, 0xc420180211, 0x1, 0x1, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).backgroundRead(0xc420180200)
  /usr/local/opt/go/libexec/src/net/http/server.go:656 +0x58
created by net/http.(*connReader).startBackgroundRead
  /usr/local/opt/go/libexec/src/net/http/server.go:652 +0xdf

goroutine 130 [IO wait]:
net.runtime_pollWait(0x202d4c8, 0x72, 0x54)
  /usr/local/opt/go/libexec/src/runtime/netpoll.go:164 +0x59
net.(*pollDesc).wait(0xc42030c068, 0x72, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:75 +0x38
net.(*pollDesc).waitRead(0xc42030c068, 0xc420358000, 0x1000)
  /usr/local/opt/go/libexec/src/net/fd_poll_runtime.go:80 +0x34
net.(*netFD).Read(0xc42030c000, 0xc420358000, 0x1000, 0x1000, 0x0, 0x14c9de0, 0x14c6480)
  /usr/local/opt/go/libexec/src/net/fd_unix.go:250 +0x1b7
net.(*conn).Read(0xc420314000, 0xc420358000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/net.go:181 +0x70
net/http.(*connReader).Read(0xc420306100, 0xc420358000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:754 +0x140
bufio.(*Reader).fill(0xc420354060)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:97 +0x117
bufio.(*Reader).ReadSlice(0xc420354060, 0xa, 0x1, 0x0, 0xc42032e9f8, 0x1010966, 0x202c890)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:338 +0xbb
bufio.(*Reader).ReadLine(0xc420354060, 0xc42035a000, 0x100, 0xf8, 0x135f480, 0xc420186b01, 0x1000001353140)
  /usr/local/opt/go/libexec/src/bufio/bufio.go:367 +0x37
net/textproto.(*Reader).readLineSlice(0xc4201840f0, 0xc42032eac8, 0xc42032eac8, 0x10116c8, 0x100, 0x135f480)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:55 +0x5f
net/textproto.(*Reader).ReadLine(0xc4201840f0, 0xc42035a000, 0x72, 0x8000000000000000, 0x0)
  /usr/local/opt/go/libexec/src/net/textproto/reader.go:36 +0x2f
net/http.readRequest(0xc420354060, 0x0, 0xc42035a000, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/request.go:918 +0xa5
net/http.(*conn).readRequest(0xc42031c000, 0x14cd620, 0xc4203060c0, 0x0, 0x0, 0x0)
  /usr/local/opt/go/libexec/src/net/http/server.go:934 +0x213
net/http.(*conn).serve(0xc42031c000, 0x14cd620, 0xc4203060c0)
  /usr/local/opt/go/libexec/src/net/http/server.go:1763 +0x49a
created by net/http.(*Server).Serve
  /usr/local/opt/go/libexec/src/net/http/server.go:2668 +0x2ce

goroutine 115 [runnable]:
net/http.(*connReader).backgroundRead(0xc420180380)
  /usr/local/opt/go/libexec/src/net/http/server.go:655
created by net/http.(*connReader).startBackgroundRead
  /usr/local/opt/go/libexec/src/net/http/server.go:652 +0xdf

goroutine 146 [runnable]:
net/http.(*connReader).backgroundRead(0xc420180500)
  /usr/local/opt/go/libexec/src/net/http/server.go:655
created by net/http.(*connReader).startBackgroundRead
  /usr/local/opt/go/libexec/src/net/http/server.go:652 +0xdf
apr_socket_recv: Connection reset by peer (54)
make: *** [test] Error 54

Support nil

We already have internal representation for nil but lexer/parser haven't support this keyword.

erb-like template engine

Since go's template engines all need to be compiled, it's not possible to create a template engine that to them. So the only way to have a template engine is to create one with Goby. And I found a simplified implementation of erubis, I think we can try to implement something like this.
But we'll need satisfy to some prerequisites before doing this:

  • A CGI-like library
  • Regex class
  • String#gsub, #scan, #empty
  • ||= syntactic sugar

cc @adlerhsieh

Alpha REPL issues

Checked on master branch, with the binary executable from make install.

  • Empty echo backs are shown in some cases:

170627_0607_xarbp6

showing #=> at the head of echo back would be better for usability.

  • exit not working (needs ^C to exit instead for now):
>> exit
UndefinedMethodError: Undefined Method 'exit' for <Instance of: Object>
ERROR: UndefinedMethodError: Undefined Method 'exit' for <Instance of: Object>
  • Command history with up arrow key is not working for now:
>> ^[[A^[[A
  • Pasting multiple lines works, but extra >> >> >> >> is shown when a multiple-line block is pasted:

image

  • Pasting statements at once returns multiple >> at the end; >> should be echo back by line instead:

image

  • Pasting Sample-1 got an error at line 20:

puts(bar.get + baz.get + foo.get) #=> 16
UndefinedMethodError: Undefined Method '+' for
ERROR: UndefinedMethodError: Undefined Method '+' for

In addition, puts(bar.get) or puts(bar) after pasting returns nothing.

Looks like current REPL works on individual statements, but discards the generated object when multiple lines.

image

In addition, I guess it reveals that several methods or expressions do not return any objects.
(Sample-2 works on Ruby's irb)
Ruby's irb assumes that any expressions return objects.

Rename the language to something that's not a homophone of "Ruby."

As an American, if I read, "rooby," I read it such that it sounds exactly like "ruby."

I imagine a verbal conversation to go something like:

Bob: Hey I found this new language called "Rooby."
Sandi Metz: Yeah... I think I know something about that.
Bob: No, it's "rooby" with two o's. It's written in Go.
Alan Turing: Go, like the ancient Chinese board game?
Bob: ... where am I?

If you renamed it to "goby" you'd get all the cleverness of a portmanteau and a built-in mascot.

Have a test to run against https://github.com/ruby/spec

Whilst I appreciate you do not target full language compliance / spec, having some awareness of where it deviates would be good.

There may be some language edge-cases which have been dealt with in ruby that might be good to be aware of and tested against.

Add line numbers to AST node

I'd like to help with the development of rooby, and this feature seems pretty simple to implement. I was wondering if I could take a go at it.

Library management

  • Library in Goby is called package
  • There should be GOBY_PATH for third-party packages and GOBY_ROOT for standard packages
  • User's use packages.yml to specify the github repo and commit sha of required packages
    • We should create a new ticket for this
  • There would be three kinds of libraries:
    • Third-party packages written in goby
    • Standard packages written in goby
    • Standard packages written in go

TBD:

  • How to write tests for require mechanism
    Package lookup rule (not for now)

Add comment to code generator

The compilation mechanism is quite complex and some naming is confusing (like block statement), so it's necessary to add more document for others to understand the code.

Multiple assignment

Just to memorize that multiple assignment is unimplemented on Goby for now.

  • 1
a, b = "foo", "bar" # => panic on Goby, works on Ruby
  • 2
def multi
  return 1, 2
end

a, b = multi  # => panic on Goby, works on Ruby
puts a
puts b

Looks the priority is not high.

Panic on including two modules twice

The following encounters panic runtime: goroutine stack exceeds 1000000000-byte limit fatal error: stack overflow while it works on Ruby:

module Foo
  def ten
    10
  end
end

module Bar
  def twenty
    20
  end
end

class Baz
  include(Bar)
  include(Foo)
end

class Baz
  include(Bar)
  include(Foo)
end

But the following works both on Goby and Ruby:

module Foo
  def ten
    10
  end
end

class Baz
  include(Foo)
end

class Baz
  include(Foo)
end

The following works as well on Goby and Ruby:

module Foo
  def ten
    10
  end
end

module Bar
  def twenty
    20
  end
end

class Baz
  include(Bar)
  include(Foo)
end

Undefined method on `attr_reader` should not cause panic

 class Foo
   attr_reader("bar")
 end

 a = Foo.new
 a.bar = "fuz"
  • Ruby:

13sandbox.gb:9:in <main>': undefined method bar=' for #Foo:0x007ff1f610dac0 (NoMethodError)

  • Goby:

Internal Error: interface conversion: vm.Object is *vm.RClass, not *vm.RObject
panic: interface conversion: vm.Object is *vm.RClass, not *vm.RObject [recovered]
panic: interface conversion: vm.Object is *vm.RClass, not *vm.RObject [recovered]
panic: interface conversion: vm.Object is *vm.RClass, not *vm.RObject [recovered]
panic: interface conversion: vm.Object is *vm.RClass, not *vm.RObject


But the following outputs as expected:

 class Foo
 end

 a = Foo.new
 a.bar = "fuz"
  • Goby:

17sandbox.gb:6:in <main>': undefined method bar=' for #Foo:0x007ff0cf118b50 (NoMethodError)

  • Ruby:

goby 1 $goby 17sandbox.gb
UndefinedMethodError: Undefined Method 'bar=' for

Comments after `def` causes panic

class Foo
  def my_method # the comment causes panic
    49
  end
end
class Foo # the comment is safe
  def my_method
    49 # the comment is safe
  end # the comment is safe
end #the comment is safe

Support method call without parens?

Currently any method call in goby needs parens to wrap parameters like foo(1), this is not a big issue in normal cases. However, in convention some method calls like include, require in Ruby don't need to wrap params with parentheses, we treat them as a configuration more than a method call.

require "foo" #=> This is actually require("foo")

class Bar
  include Foo #=> This is actually include(Foo)
end

So I need some feedback about if goby should support this kind of syntax or we should always use parens. 🙏

Question: class can inherit module?

I have a small question.

I found you can inherit modules to class as if modules were a class.

The following works on the latest Goby build, but I just wonder if this behavior is OK.

module Foo
  def self.my
    999
  end
  def ten
    100
  end
  def five
     7
  end
end

class Bar < Foo
  def five
    5
  end
end

a = Bar.new
puts(a.ten * a.five ) # => 500
puts(Bar::Foo.my)  # => 999

If you run the code with Ruby, you receive "superclass must be a Class (Module given) (TypeError)."
If you change module to class in line 1, it works with Ruby.

Microservice example

In the README, the project aims to allow developers to create api server or a microservice. Is this project mainly to use golang standard library while using ruby like syntax? Curious if there are any examples of a microservice using goby.

Add tests for vm's error conditions

Currently our coverage is stuck around 80% because out tests don't care about error conditions. So I think we should add tests for those conditions and remove some really edge error cases (which I add earlier for easier debugging).

File Extension Name

Since we're renaming it to Goby, we can decide if we're still using the .ro extension file name.

Maybe something like .gb or .gy can be good. They are currently not in use. .goby is a another alternative. .go is definitely not a good choice.

Personally I will choose .gb.

New syntax supports

  • Method call without parens around args
  • Method argument's default value
  • Support symbol
  • keyword argument
  • Question or Bang mark in method name (like exists?, empty?)

"puts" without parens fails silently

I was surprised when I wrote my first goby script, and nothing happened.

It looked something like this:

puts "sup homies"

There was no output, no error. I scratched my head for a while, and after looking at the samples, noticed that parens are required.

It's strange, since other functions give an error when you call them without parens. Is puts special?

Range of Integer class

I manually checked the edge cases of Integer class with the latest master:

a =  999999999999999999             # works
a =  9999999999999999999            # => panic: could not parse "9999999999999999999" as integer

# upper limit
a =  9223372036854775807            # equivalent to 0x7FFFFFFFFFFFFFFF  (in 64-1 bit length)

# overrun
a =  9223372036854775807 + 1        # => -9223372036854775808 (negative number)
a =  9223372036854775808            # => panic: could not parse "9223372036854775808" as integer

# lower limit
a = -9223372036854775807            # equivalent to f8000000000000001  (in 64 bit length including sign)

# overrun
a = -9223372036854775807 - 1        # => -9223372036854775808
a = -9223372036854775807 - 2        # =>  9223372036854775807
a = -9223372036854775808            # => panic: could not parse "9223372036854775808" as integer

I don't think this is a bug but comes from Go's spec, as well as a specification matter of Goby. It might be good to add above to Integer's API doc.


Future: It might help us: https://golang.org/pkg/math/big/

Ruby 2.4 finally ceased the legacy FixNum and BigNum classes and migrated them to Integer, so I think switching between Integer and BigNum again in Goby might not be good.

Performance improvements

  • inline method cache
  • inline constant cache
  • String interning (two level cache table)
  • stack-split

`#new` Method for Built-In Classes

Currently the #new method only works for classes users create. It does not work for built-in classes like String, Integer, or Hash.

The following is an error message from executing String.new:

screen shot 2017-06-11 at 5 55 25 pm

Refactor goby compiler

Refactor bytecode/generator.go, especially these two methods:

  • compileExpression(is *instructionSet,​ exp ast.​Expression,​ scope *scope,​ table *localTable)
    starts at line 200 in bytecode/​generator.​go
  • compileStatement(is *instructionSet,​ statement ast.​Statement,​ scope *scope,​ table *localTable)
    starts at line 108 in bytecode/​generator.​go

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.